分享

DeepSeek:现代人工智能中性能与效率的桥梁| DeepSeek 系列

 数据治理精英馆 2025-01-30 发布于浙江

Deepseek 通过以较低的成本匹配顶级模型吸引了所有人的注意。他们的方法如下:

  1. 多头潜在注意力:让模型的训练和运行更便宜

  2. 辅助无损策略:有效平衡工作负载

  3. 多标记预测训练目标:提高整体性能

  4. 广泛的训练流程:对 1.48 万亿个 token 进行预训练,然后进行监督微调和强化学习

所有这些模型都在缩小与通用人工智能(AGI)的差距。

本文内容

  1. 架构

  2. 预训练

  3. 训练后

  4. 评估/基准

  5. 限制和应用

一 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 通过以下方式优化训练:

  1. 流水线并行(PP)——将任务分解为跨 GPU 的阶段(类似装配线)

  2. 专家并行性(EP)——在专家之间分配工作量(如在专家之间划分工作)

  3. 数据并行(DP)——跨机器拆分数据,以加快处理速度

技术:

  • DualPipe 算法:通过重叠计算和通信阶段来帮助减少空闲时间(管道气泡)。

  • 跨节点通信内核:优化网络带宽,实现跨 GPU 的有效数据交换。

  • 内存优化:减少内存使用,而不需要像张量并行那样的额外并行化。

FP8 培训:

DeepSeek-V3 使用FP8(浮点 8 位)数字来加快训练速度并节省内存。但是,FP8 数字非常小,可能会丢失重要细节。为了解决这个问题,DeepSeek-V3 使用了三种智能技术来保持训练的准确性,同时仍然使用 FP8。

来源:DeepSeek 论文

1.细粒度量化(分解成小块)

想象一下将衣服打包放进行李箱。您不必将所有东西随意塞进去,而是可以将它们分成几部分整齐地打包,这样可以更好地适应,以后也更容易找到东西。

DeepSeek-V3 中类似:

  • 输入(如图像或文本数据)和权重(学习部分)被分成小块,每个块都有自己的乘数来调整值。

  • 这使得 FP8 数字更有用,同时又不会丢失重要信息

来源:DeepSeek 论文

2.提高累计精度(更准确地添加数字):

当您添加非常小的数字(例如 FP8)时,错误会随着时间的推移而累积。为了避免这种情况,DeepSeek-V3 使用了一种技巧,将结果暂时存储在更大的存储空间中(例如更精确的 FP32)。

例如,添加非常细小的米粒。如果你只有一个小碗(FP8),有些米粒可能会洒出来。相反,你可以将它们收集到一个更大的容器中(FP32),然后小心地将它们倒回去。

在DeepSeek-V3中:

  • 系统首先使用低精度 FP8 将数字相加,但在最终确定之前将结果存储在更高精度的寄存器(FP32)中。

  • 这有助于避免将许多 FP8 数字相加时可能发生的错误。

3.低精度存储和通信(节省空间并加快速度):

处理大型 AI 模型需要大量内存,这会降低速度。DeepSeek-V3 以 FP8 格式存储数据,以提高速度,但在某些部分使用略好一些的存储 (BF16),以保持训练稳定。

这就像用速记法做笔记以节省空间,但将重要部分写成完整的句子以确保以后的清晰度。

在DeepSeek-V3中:

  • 训练期间移动的数据存储在 FP8 中以节省空间。

  • 重要的部分,例如优化器状态(用于调整学习),存储在 BF16 中以获得更好的稳定性。

二 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 优化器进行训练,有助于平稳调整模型的学习过程并避免过度拟合。

它就像一位私人教练,根据您的进度调整您的锻炼方式以避免受伤。

使用的优化器设置:

  • Beta1(0.9)和Beta2(0.95):这些数字控制模型更新自身的速度。

  • 权重衰减(0.1):通过防止过度依赖某些模式,帮助模型避免过度拟合。

三 训练后

1. 监督微调 (SFT) — 通过示例教授模型

在此阶段,DeepSeek-V3 使用来自数学、编码、写作等不同领域的 150 万个示例进行微调。每个领域都使用特殊的数据创建技术来改进模型。

a. 推理数据(数学、编码、谜题)

对于解决数学问题或编码等复杂任务,DeepSeek 使用名为DeepSeek-R1的早期模型来生成数据。然而,R1 通常会给出过于复杂或冗长的答案。为了解决这个问题,团队:

i.使用监督学习 (SFT) 和强化学习 (RL) 相结合的方式为每个领域 (数学、编码等)创建一个“专家”模型。

ii. 准备两种格式的数据:

  • 其中包含原始问题和答案。

  • 另一个添加了系统提示以帮助更好地指导响应。

iii. 使用强化学习进一步完善答案,使其更加准确和简洁。

iv. 拒绝低质量数据并仅选择最好的数据来训练最终模型。

这就像教学生数学一样。最初,他们可能会解释得过于详细,但经过指导和反馈的练习后,他们学会提供简洁明了的答案。

b. 非推理数据(写作、角色扮演、简单问答)

对于创意写作或简单问题等任务,该模型的早期版本DeepSeek-V2.5会生成答案。人工审阅人员会检查并验证这些答案以确保质量。

c. SFT 培训流程

  • 该模型使用一种称为余弦衰减的技术进行两轮(时期)的训练,该技术逐渐降低学习率(从到),以帮助模型学习而不会过度拟合。5 × 10−61 × 10−6

  • 多个样本在训练中被打包在一起,但特殊的掩蔽技术确保它们不会互相干扰。

你可以考虑通过一次学习多个主题来准备考试,但在笔记中将它们分开保存以避免混淆。

2.强化学习(RL)——改进模型决策

经过微调后,强化学习 (RL) 可用于奖励好的响应并阻止坏的响应,从而使模型变得更好。

a.基于规则的奖励模型

有些任务有明确的正确或错误答案(例如数学、编码)。在这些情况下,如果模型正确遵循规则,则会获得奖励。

b.基于模型的奖励模型

对于没有明确“正确”答案的创造性任务(例如论文),单独的人工智能会检查答案是否符合预期风格。

写一首诗——没有唯一正确的答案,但人工智能可以将其与好的例子进行比较并给出反馈。

3. 群体相对策略优化(GRPO)——更智能的学习

一种名为GRPO的新技术可用于改进模型训练,而无需单独的“评价”模型(这通常很昂贵)。相反,它:

i.针对给定的问题生成多个可能的答案。

ii. 比较它们,并根据组得分优化出最好的一个。

iii. 防止极端变化以保持训练稳定。

  • 示例:想象一下以多种方式回答一个棘手的问题,并在查看所有选项后选择最佳方式。

GRPO 可提高不同任务的性能,例如:

  • 编码

  • 数学

  • 写作

  • 角色扮演

  • 一般问答

四 评估/基准

来源:https ://artificialanalysis.ai/models

五 限制和应用:

1. 大型部署要求:建议的部署单元相当大,对于小型团队来说,管理和负担起来具有挑战性。

2. 速度提升空间:尽管实现了比DeepSeek-V2快一倍以上的生成速度,但仍有进一步优化的余地。

3. 对硬件进步的依赖:预计只有未来有更先进的硬件可用,效率和部署方面的当前限制才会得到改善。

参考:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多