Deepseek 通过以较低的成本匹配顶级模型吸引了所有人的注意。他们的方法如下:
所有这些模型都在缩小与通用人工智能(AGI)的差距。 本文内容
一 DeepSeek的架构 来源:DeepSeek 论文 1.多头潜在注意力(MLA) 假设您正在组织一个图书馆,其中每本书都有一个唯一的代码来标识它。如果您将每本书的完整代码存储在内存中,则会占用太多空间。相反,您可以将代码压缩为较短的形式,同时仍然能够有效地检索原始书籍。 类似地,在标准多头注意力 (MHA) 中,在推理过程中存储所有键值 (KV) 对会消耗大量内存。MLA 通过压缩KV 对同时保持其有用性来解决此问题。 MLA 引入了低秩联合压缩,这意味着它不是存储每个细节(高维键值对),而是将数据压缩成较小的维,但仍保留必要的信息。 2. DeepSeekMoE(专家混合) 假设您有一群厨师,每个厨师擅长不同的菜系。如果点意大利菜的顾客太多,点墨西哥菜的顾客却很少,那么一些厨师可能会闲着,而其他厨师则忙不过来。 同样,在传统的 Transformer 中,计算均匀分布在各个层上,这可能导致效率低下。MoE 引入了专门从事某些计算的“专家”,但平衡他们的工作量对于避免“路由崩溃”至关重要,因为“路由崩溃”是指一些专家完成所有工作,而其他专家则无所事事。 DeepSeekMoE 使用:
3. 多标记预测(MTP) 例如,您正在玩猜谜游戏,需要预测句子中的下一个单词。通常,您一次只能猜一个单词。但是,如果您可以一次预测多个单词,让您提前思考并提供更好的答案,那会怎样? 传统的 Transformer 一次只能预测下一个单个 token,而 MTP 可以预测多个未来 token,从而使模型更快、更智能。 来源:DeepSeek 论文 DeepSeek-V3 通过在每个预测步骤中添加额外的层来按顺序预测标记。 4. 训练优化 训练大规模 AI 模型需要大量资源和时间。这就像经营一家拥有多条生产线的大型工厂——高效协调是减少浪费和提高生产力的关键。 DeepSeek-V3 通过以下方式优化训练:
技术:
FP8 培训: DeepSeek-V3 使用FP8(浮点 8 位)数字来加快训练速度并节省内存。但是,FP8 数字非常小,可能会丢失重要细节。为了解决这个问题,DeepSeek-V3 使用了三种智能技术来保持训练的准确性,同时仍然使用 FP8。 来源:DeepSeek 论文 1.细粒度量化(分解成小块) 想象一下将衣服打包放进行李箱。您不必将所有东西随意塞进去,而是可以将它们分成几部分整齐地打包,这样可以更好地适应,以后也更容易找到东西。 DeepSeek-V3 中类似:
来源:DeepSeek 论文 2.提高累计精度(更准确地添加数字): 当您添加非常小的数字(例如 FP8)时,错误会随着时间的推移而累积。为了避免这种情况,DeepSeek-V3 使用了一种技巧,将结果暂时存储在更大的存储空间中(例如更精确的 FP32)。 例如,添加非常细小的米粒。如果你只有一个小碗(FP8),有些米粒可能会洒出来。相反,你可以将它们收集到一个更大的容器中(FP32),然后小心地将它们倒回去。 在DeepSeek-V3中:
3.低精度存储和通信(节省空间并加快速度): 处理大型 AI 模型需要大量内存,这会降低速度。DeepSeek-V3 以 FP8 格式存储数据,以提高速度,但在某些部分使用略好一些的存储 (BF16),以保持训练稳定。 这就像用速记法做笔记以节省空间,但将重要部分写成完整的句子以确保以后的清晰度。 在DeepSeek-V3中:
二 DeepSeek-V3的预训练 训练 DeepSeek-V3 需要高效处理大量文本数据,并确保模型能够从中很好地学习。训练过程包括智能技术来构造数据、高效地对数据进行标记以及设置正确的模型设置。 1. 文件打包(高效数据使用) DeepSeek-V3 不会单独处理短文本(这会浪费空间),而是将多个文档打包成一个批次。但是,它不会在不同的样本之间使用注意力掩蔽,这意味着模型不会在训练期间尝试将它们分开。
2. 训练数据(大量高质量文本) DeepSeek-V3 使用来自高质量和多样化来源的14.8 万亿个单词(token)进行训练,以帮助它学习各种各样的信息。
3. 填充中间(FIM)策略: DeepSeek-V3 使用一种称为“填充中间(FIM)”的特殊策略,其中模型不仅学习预测下一个单词,还学习猜测句子中间缺失的单词。
数据采用前缀-后缀-中间 (PSM)方法构造,这意味着句子分为三个部分:
4. Tokenizer(高效地将文本分成小块) 标记器将文本转换为较小的片段(标记)以供模型处理。DeepSeek-V3 使用具有128,000个不同标记的字节级 BPE(字节对编码),这有助于在多种语言中有效压缩文本。 它可能不会存储完整的单词“internationalization”,而是将其分解为“inter-”、“national-”和“-ization”等较小的部分,以节省空间并加快处理速度。 新改进:
在训练期间随机分割其中一些标记有助于模型更好地学习并处理特殊情况。 5. 模型结构(DeepSeek-V3 的思维方式) DeepSeek-V3 采用61 层 Transformers构建,每层都有隐藏维度和用于处理信息的注意力头。 模型中的一些重要数字: 61 个 Transformer 层(帮助模型分步“思考”) 128 个注意力头(每个注意力头关注输入的不同部分) 总参数数量为 6710 亿(模型的智力,尽管一次只有 370 亿个参数处于活跃状态) MoE(专家混合)层,其中每个标记仅使用模型的几个专门部分以节省资源。 6.优化器(帮助模型更好地学习) 该模型使用AdamW 优化器进行训练,有助于平稳调整模型的学习过程并避免过度拟合。 它就像一位私人教练,根据您的进度调整您的锻炼方式以避免受伤。 使用的优化器设置:
三 训练后 1. 监督微调 (SFT) — 通过示例教授模型 在此阶段,DeepSeek-V3 使用来自数学、编码、写作等不同领域的 150 万个示例进行微调。每个领域都使用特殊的数据创建技术来改进模型。 a. 推理数据(数学、编码、谜题) 对于解决数学问题或编码等复杂任务,DeepSeek 使用名为DeepSeek-R1的早期模型来生成数据。然而,R1 通常会给出过于复杂或冗长的答案。为了解决这个问题,团队: i.使用监督学习 (SFT) 和强化学习 (RL) 相结合的方式为每个领域 (数学、编码等)创建一个“专家”模型。 ii. 准备两种格式的数据:
iii. 使用强化学习进一步完善答案,使其更加准确和简洁。 iv. 拒绝低质量数据并仅选择最好的数据来训练最终模型。 这就像教学生数学一样。最初,他们可能会解释得过于详细,但经过指导和反馈的练习后,他们学会提供简洁明了的答案。 b. 非推理数据(写作、角色扮演、简单问答) 对于创意写作或简单问题等任务,该模型的早期版本DeepSeek-V2.5会生成答案。人工审阅人员会检查并验证这些答案以确保质量。 c. SFT 培训流程
你可以考虑通过一次学习多个主题来准备考试,但在笔记中将它们分开保存以避免混淆。 2.强化学习(RL)——改进模型决策 经过微调后,强化学习 (RL) 可用于奖励好的响应并阻止坏的响应,从而使模型变得更好。 a.基于规则的奖励模型 有些任务有明确的正确或错误答案(例如数学、编码)。在这些情况下,如果模型正确遵循规则,则会获得奖励。 b.基于模型的奖励模型 对于没有明确“正确”答案的创造性任务(例如论文),单独的人工智能会检查答案是否符合预期风格。 写一首诗——没有唯一正确的答案,但人工智能可以将其与好的例子进行比较并给出反馈。 3. 群体相对策略优化(GRPO)——更智能的学习 一种名为GRPO的新技术可用于改进模型训练,而无需单独的“评价”模型(这通常很昂贵)。相反,它: i.针对给定的问题生成多个可能的答案。 ii. 比较它们,并根据组得分优化出最好的一个。 iii. 防止极端变化以保持训练稳定。
GRPO 可提高不同任务的性能,例如:
四 评估/基准 来源:https ://artificialanalysis.ai/models 五 限制和应用: 1. 大型部署要求:建议的部署单元相当大,对于小型团队来说,管理和负担起来具有挑战性。 2. 速度提升空间:尽管实现了比DeepSeek-V2快一倍以上的生成速度,但仍有进一步优化的余地。 3. 对硬件进步的依赖:预计只有未来有更先进的硬件可用,效率和部署方面的当前限制才会得到改善。 参考: |
|