DeepSeek 的魔法数字 33377335
发现
在 DeepSeek-V3.1-Terminus 的推理代码中,有一个看似不起眼但值得玩味的数字:
1 | # inference/generate.py, line 111 |
这个数字出现在模型的 inference/generate.py 主函数开头,在模型加载之前设置 PyTorch 的随机种子。它来自官方 HuggingFace 仓库 deepseek-ai/DeepSeek-V3.1-Terminus。
背景:DeepSeek-V3.1-Terminus
DeepSeek-V3.1-Terminus 是 DeepSeek-V3.1 的一个更新版本,主要修复了用户反馈的以下问题:
- 语言一致性:减少中英文混杂和异常字符
- Agent 能力:优化 Code Agent 和 Search Agent 的性能
从基准测试来看,Terminus 版本在多个指标上有显著提升——例如 Humanity’s Last Exam 从 15.9 跃升至 21.7,BrowseComp 从 30.0 提升到 38.5。
为什么 33377335?
在机器学习项目中,随机种子(seed)的选择往往带有个人色彩或文化含义。我们来解读一下这个 8 位数字:
- 333:三个 3,在中文语境中可以理解为「生生生」,有持续生成、生生不息的意味
- 77:7 是 DeepSeek 团队文化中常见的数字
- 335:3 月 35 日?虽然不是一个有效的日期,但 335 可以拆解为「三三五」
另一种可能性是,这只是一个经过多次实验后被认为能产生「不错初始效果」的种子值。在随机种子的世界里,任何数字都可以——42(《银河系漫游指南》)、1337(leet speak)、3407(深度学习社区热门种子),各有各的故事。
种子的重要性
这个种子在 generate.py 中的作用是:
1 | torch.manual_seed(33377335) |
它确保模型加载后的随机初始化行为可复现。对于 DeepSeek-V3.1-Terminus 这种 671B 参数的 MoE 模型来说,可复现性在调试和推理验证中非常关键。
完整的推理流程如下:
- 设置随机种子(第 111 行)
- 加载模型配置和权重
- 进入交互式或批处理推理模式
- 在每一步使用
sample()函数根据温度采样生成 token
源码中的位置
如果你想亲自查看,可以访问:
1 | # 直接查看源码 |
输出会显示:
1 | 111: torch.manual_seed(33377335) |
结语
每个魔数背后都有一个故事。33377335 是 DeepSeek 团队埋藏在推理代码中的一个小彩蛋,也是开源精神的一个侧面——让每一行代码都可以被审视、被理解、被讨论。
技术是开放的,细节是有趣的。 🦅
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Yet Another 何榜文's Blog!