精读DeepSeek v3技术文档的Tech&Soul Seek

学术   2024-12-30 18:02   江苏  


2024年12月26日,DeepSeek AI正式发布了其最新的大型语言模型——DeepSeek-V3,直接在外网刷屏…每秒处理 60 个token,比V2快3倍!MoE架构,6710亿参数,激活370亿参数,训练基于14.8万亿高质量 token,完全开源并直接53页论文把训练细节和盘托出的那种…

QLoRA一作的一个词评价就是:优雅…在平衡性能和成本上,它成了DeepSeek官方绘图中唯一闯进“最佳性价比”三角区的模型…在多项测评上,DeepSeek V3达到了开源SOTA,超越Llama 3.1 405B,能和GPT-4o、Claude 3.5 Sonnet等TOP模型正面掰掰手腕—而其价格比Claude 3.5 Haiku还便宜,仅为Claude 3.5 Sonnet的9%…


昨天宋大宝同学读完了 DeepSeek v3 的文档,心中颇多感慨,忍不住想在这里记录一下他对这款“业界有望启示未来低精度训练走向”的开源大模型的观察与思考:


DeepSeek v3 的亮点绝不仅仅是“Float8”或“超长上下文”这么简单,而是贯穿了从数值精度、注意力机制、MoE 路由到大规模分布式训练的一整套系统性革新,仿佛在宣示一个更激进、更大胆、更工程化的时代正在到来。


首先不得不说,Float8 训练这件事本身就足够让我眼前一亮。DeepSeek v3 不像很多项目那样将 E4M3(前向)和 E5M2(反向)分离使用,而是一刀切地坚持只用 E4M3,辅以分块缩放来“最大化发挥三位尾数的威力”。对外行人来说,这可能听起来有点不可思议:这么低的数值精度,会不会在训练中出现巨大误差?然而作者们巧妙地在每四次 FP8 乘加后进行一次 FP32 累加,把可能造成的误差淹没在更高精度的主累加器里。一来一回之间,反而让整个系统行云流水,稳定度据称只比常规 BF16 做法牺牲了“可容忍的”精度,却能显著地减少内存与算力开销。这背后不仅是数值分析与硬件适配的功力,也体现了追求极限效率的工程思维。


再说他们的“潜在注意力”(Latent Attention)。我们都知道,当前大模型在推理端若想支持数万甚至十数万的上下文,KV Cache 的存储将会极其庞大。传统方式下,每生成一个新 token,都要把 K, V 继续拼接,再做一次大规模矩阵乘法。而 DeepSeek v3 的方案是把输入  先乘上降维矩阵 ,得到一个精简的 ,之后需要 K、V 的时候再做上采样。既减轻了缓存压力,又能以分块或合并的形式与后续的 Flash Attention 协同。这个点子在保证了多头注意力的灵活性的同时,也有效化解了大部分存储与计算开销。对于那些希望在有限显存中处理超长序列的团队,这可谓是一道最亮的曙光。


再看 DeepSeek v3 在 MoE(混合专家)模型上的改进也别开生面。以前大家都在为如何让各个专家负载均衡而头疼,引入五花八门的损失项、正则化系数等等。可他们偏偏另辟蹊径,在路由层加了“动态偏置”,如果某个专家被数据“淹没”,就自动调高或调低其偏置,让路由分配更均匀。没有特别繁琐的附加损失,更不必担心在多任务多语言场景下因固化分配而产生的“瓶颈”。说到底,这就是对 MoE 路由更深层次的理解:越是灵活、越是自适应,也就越能在大规模分布式训练中凸显潜能。



更值得一提的是:DeepSeek v3 的规模也让人称道:14.8T 的训练语料,其中相当一部分还来自早期 DeepSeek r1 的生成数据。虽然这种“模型自我生成训练集”的方式难免引发对数据多样性和真实性的担忧,但如果他们能在实践中验证合成数据并没有严重偏差,或能通过后期筛选和清洗进行纠偏,那这倒为所有苦于大规模语料不足的团队打开了一扇窗。


当然,再先进的架构也不是银弹。DeepSeek v3 的局限性同样显而易见。比如 FP8 训练对硬件的原生支持与数值稳定性要求极高,不是所有 GPU/TPU 都有足够成熟的驱动与指令集。再比如,“潜在注意力”虽然减少了缓存体积,但依然要在增量上采样时进行一系列精巧的运算合并,对代码实现和算力分配提出了相当高的要求。MoE 动态偏置一旦设计不周,也可能在极端情况下导致路由不稳定。更别提大规模合成数据本身,既是灵活之举,也潜藏了自回归式偏差或语料污染风险。


不管怎样,我仍认为 DeepSeek v3 为未来大模型的技术演化提供了宝贵的样本。它所带来的启示是:在低精度训练上,再也不必“一刀切”地停留在 FP16 或 BF16,还有更极致的选项值得尝试;在注意力结构上,“只存一小块就够了”的思路,可能比直接缓存海量 K, V 更优雅;在 MoE 路由上,“不走正统损失平衡”也许能走出一条更灵活的新路。更重要的是,这些创新点并非空中楼阁,而是经过工程与大规模训练验证,甚至公开了权重,展现出强大的实际操作性。

如果说 LLM 的竞争现已走入深水区,那么 DeepSeek v3 便是一艘锐意创新的远洋巨轮。它既表明了社区对全新数值精度、灵活路由以及超长序列处理的追求,也提醒我们现有方法远非完美,需要不断迭代打磨。从中我感受到的是——无论是科研还是工业落地,面对算力、数据、算法等多方挑战,仍然在边际突破!

具体的TechSeek一撇如下:


1.采用了创新的知识蒸馏方法,将 DeepSeekR1系列模型中的推理能力迁移到标准LLM中。该方法巧妙地融合了R1中的CoT验证和反思模式,显著提高了DeepSeek-V3的推理性能,同时又保留了对输出风格和长度的控制。


2.首次在大规模模型上验证了FP8训练的可行性和有效性。


3.通过协同优化,有效克服了跨节点MoE训练中的通信瓶颈,使得计算与通信几乎完全重叠。设计DualPipe高效流水线并行算法:在单个前向和后向块对内,重叠计算和通信,实现接近于0的all-to-all通信开销。


4.在DeepSeek-V2高效架构的基础上,DeepSeek-V3引入无辅助损失的负载均衡策略,具体而言,该策略为MoE中的每个专家引入了一个偏置项(bias term),并将其添加到相应的亲和度分数中,以确定top-K路由。通过在训练过程中动态调整偏置项,DeepSeek-V3能够在训练过程中保持专家负载的平衡,从而提高模型性能。


5.研发团队还证明,多标记预测目标(MTP)有利于提高模型性能,可以用于推理加速的推测解码。具体实现上,使用多个顺序模块来预测额外的令牌,并保持完整的因果链,每个MTP模块由一个共享嵌入层、一个共享输出头、一个Transformer块和一个投影矩阵组成。对于每个输入令牌,首先将其与下一个令牌的嵌入进行线性组合,然后通过Transformer块进行处理,最后通过输出头计算预测概率。

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。

AINLP
一个有趣有AI的自然语言处理公众号:关注AI、NLP、大模型LLM、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试对对联、作诗机、藏头诗生成器、自动写作等,查询相似词,测试NLP相关工具包。
 最新文章