第一部分 从DeepSeek LLM利来体育娱乐、DeepSeekMoE到DeepSeekMath(上)

  且为了优化推理成本,67B 模型使用了分组查询注意力GQA★■■◆◆,而不是传统的多头注意力MHA

  为了解决这个问题,尝试了两阶段微调和 DPO(关于什么是DPO,详见此文:RLHF的替代之DPO原理解析■◆:从RLHF、Claude的RAILF到DPO、Zephyr)★★,这两种方法几乎都能保持基准分数并显著减少重复

  对于有用性数据,收集了多语言提示,涵盖了创意写作、问答、指令执行等类别,然后使用DeepSeek Chat模型生成响应作为候选答案

  如有任何问题或任何不懂的地方,可以随时留言/评论◆■。更多见《大模型项目开发线下强化班》课程

  该模型基本遵循Llama结构的设计「关于llama结构的解读,详见此文:LLaMA的解读与其微调(含LLaMA 2):Alpaca-LoRA/Vicuna/BELLE/中文LLaMA/姜子牙」 比如采用了RMSNorm函数的Pre-Norm结构,并使用SwiGLU作为前馈网络FFN的激活函数,中间层的维度为,它还结合了旋转嵌入RoPE作为位置编码

  有用数据包含 120 万个实例,其中 31.2% 是一般语言任务,46.6% 是数学问题■■■◆■,22.2% 是编码练习

  在数据集上◆★★■,收集了大约 150 万条英文和中文的指令数据实例■★■◆,涵盖了广泛的有用性和无害性主题◆■■。其中

  且以5e-6的学习率和512的批处理大小训练了一个DPO周期,并使用了学习率预热和余弦学习率调度器 另,发现DPO可以增强模型的开放式生成能力,同时在标准基准测试中的表现差异很小

  使用一个名为 HAI-LLM的高效轻量级训练框架来训练和评估大型语言模型 数据并行利来体育娱乐、张量并行、序列并行和1F1B流水线并行被集成到这个框架中◆■★★,就像在Megatron中所做的那样 (如果还不太熟悉并行训练相关的原理,可以参见此文◆■■■■■:大模型并行训练指南■◆★:通俗理解Megatron-DeepSpeed之模型并行与数据并行)

  在预训练期间◆★■■,采用了多步学习率调度器(multi-step learning rate scheduler),而不是典型的余弦调度器 原因在于当在保持模型大小不变的情况下调整训练规模时,多步学习率调度器允许重用第一阶段的训练,从而为持续训练提供了独特的便利★◆■★,因此,选择了多步学习率调度器作为默认设置

  对 7B 模型进行了 4 个周期的微调◆◆★◆,但对 67B 模型只进行了 2 个周期的微调,因为观察到 67B 模型的过拟合问题很严重 且观察到 GSM8K和 HumanEval在 7B 模型上持续改进,而 67B 模型很快达到了上限 对于 7B 和 67B 模型,它们对应的学习率分别为 1e-5 和 5e-6

  且观察到,随着数学 SFT 数据量的增加★◆■■◆★,重复率往往会上升◆★,这可以归因于数学 SFT 数据偶尔包含类似的推理模式。因此,较弱的模型难以理解这些推理模式,导致重复的响应

  为了进一步增强模型的能力,他们使用了直接偏好优化算法DPO★★,这被证明是一种简单但有效的 LLM 对齐方法

  除了监控基准准确性外,我们还评估了微调过程中聊天模型的重复率 比如,收集了总共 3868 个中英文提示,并确定了生成的响应中未能终止而是无休止重复一段文本的比例

  且还利用了flash attention来提高硬件利用率,以及利用ZeRO-1将优化器状态划分到数据并行等级中 还努力重叠计算和通信以最小化额外的等待开销★★■,包括最后一个微批次的反向过程和ZeRO-1中的reduce-scatter操作,以及序列并行中的GEMM计算和all-gather/reduce-scatter

  一些层/操作被融合以加速训练,包括LayerNorm、GEMM和Adam更新 为了提高模型训练的稳定性,在 bf16 精度下训练模型,但在 fp32 精度下累积梯度 为了减少 GPU 内存消耗,执行就地交叉熵操作,即:在交叉熵 CUDA 内核中即时将 bf16 logits 转换为fp32 精度(而不是事先在 HBM 中转换),计算相应的 bf16 梯度,并用其梯度覆盖 logits

  具体来说◆■■★,模型的学习率在2000个预热步骤后达到最大值,然后在处理80%的训练数据后下降到最大值的31.6%。在处理90%的数据后★★◆,它进一步减少到最大值的10%

  且还支持从不同的 3D 并行配置恢复训练,以应对计算集群负载的动态变化。 至于评估,在生成任务中采用 vLLM (Kwon et al., 2023),在非生成任务中采用连续批处理,以避免手动调整批处理大小并减少 token 填充

  课程咨询可找苏苏老师VX■★■:julyedukefu008或七月在线其他老师

  此外,DeepSeek LLM 7B 是一个30层的网络,而 DeepSeek LLM 67B 有95层,更多参数如下表所示

  且模型权重和优化器状态每 5 分钟异步保存一次★★■■,这意味着在偶尔的硬件或网络故障的最坏情况下★■★◆,最多会丢失 5 分钟的训练数据。这些临时模型检查点会定期清理,以避免消耗过多的存储空间