DeepSeek.ai为什么会成功? DeepSeek.ai成功的原因是什么? DeepSeek.ai有哪些不为人知的秘密? DeepSeek.ai火遍全球的几个事实:
MoE: Mixture of Experts (混合专家模型)。将模型划分多个专家模块来进行分工。训练中将不同专家模块分配到不同计算设备训练, 提升训练效率。推理时, 仅动态激活部分专家 (37B 参数), 而非全模型参数 (671B 参数), 减少计算负担。但是 MoE 经常会面临某些专家承担所有工作, 其他专家不被使用的问题, 业内会通过一如辅助损失来对此调控、平衡各个专家模块的工作量, 而 deepseek 通过无辅助损失的自然负载均衡 (引入一个无形的手而不是人为调控)、共享专家机制来解决该问题。
MLA: Multi-Head Latent Attention (多头潜注意力)。扩展了传统的多头注意力机制, 引入潜向量 (latent variables), 可以动态调整注意力机制, 捕捉任务中不同的隐含语义。在训练中减少内存和计算开销, 在推理中降低 KV 缓存占用空间。
MTP: Multi-Token Prediction (多令牌预测)。一般 LLM 一次生成 1 个 token, 采用单步预测。deepseek 在特定场景下能同时预测多个 token, 来提高信号密度。一方面能够减少上下文漂移、逻辑更连贯, 也能减少一些重复中间步骤, 在数学、代码和文本摘要场景能提升效率。
CoT: Chain of thought (思维链)。一种训练和推理方法, 将复杂的问题拆分成小步的中间逻辑, 细分逻辑链条。在训练阶段, Deepseek 用标注的 Long CoT 数据微调模型, 让模型生成更清晰的推理步骤, 在强化学习中用 CoT 设计奖励优化, 增强长链推理能力, 并且在此过程中观察到了模型的反思 (回溯推理路径)、多路径推理 (能给出多个解)、aha 时刻 (通过策略突破瓶颈) 等自发行为。
DualPipe (双重流水线): 传统训练信息流水线会产生一些等待时间、有“流水线气泡”, deepseek 设计了一个双重流水线, 让一个计算阶段在等待数据传输时可以切换到另一批数据, 充分利用空闲时间。
R1-Zero: Deepseek 在 V3 基础模型上, 仅通过强化学习 (Reinforcement Learning) 训练, 而不加入 SFT (Supervised fine tuning) 数据, 训练了 R1-Zero 模型, 探索了模型不依赖人类标注数据微调、自主推演的能力, 打开了新的思路。但 R1 模型仍然采取 SFT 数据优化推理和生成质量。
FP8 混合精度训练: 引入了 FP8 混合精度训练框架, 相比传统的 FP16 精度, 数据内存占用更少, 但在一些算子模块、权重中仍然保留了 FP16、FP32 的精度, 节省计算资源。
底层通信优化: 开发了高效的通信内核, 优化对带宽的利用, 保证数据传输效率, 并能支持大规模部署。
拿内燃机和汽车的发明打个比方, 德国人发明了内燃机和汽车, 美国人喜欢 Scaling Law, 排量越大马力越大, 于是从 2 升到 4 升, 甚至 8 升排量的车在美国都很常见, 所以美国肌肉车很耗油。虽然源头技术不是日本发明的, 但日本人擅长把一件事做精, 工程上做很多优化, 日本 2.5 升排量的车甚至可以做到和美国 5 升排量车一样的百公里加速指标。比如轻量化设计把大钢板换成钢条 (类似通过稀疏的办法减少大模型的参数量); 涡轮增压利用废气能量增加空气供给, 提高燃烧效率; 精密制造, 使得发动机零部件的配合更加紧密, 从而减少能量损失; 等等。
几个观点: