Keywords:Scaling Law、RoPE、GQA、Iterative Post-Training、DPO
Llama 3 的 Tech Report 正文共 71 页,是目前较为完整的工业级大模型训练系统总结,覆盖了从数据构建、模型训练到对齐与评测的完整流程与细节设计。
不过目前阶段,阅读重点仍在理解其模型设计与方法论,数据工程和 infra 更多属于工业实践范畴,暂不深入研究。
知乎已经有前辈进行了较为系统的整理(知乎链接),涵盖了大部分关键点,因此我就不重复展开了,仅记录一些我认为比较重要的方法。
RoPE
将位置信息通过“旋转”注入到 Q/K 向量里,而不是简单地加上位置向量,具有更强的长上下文外推能力,是目前位置编码的主流方案。
具体实现可见知乎链接。
GQA
让多个 head 共享同一组 K/V ,是 MHA 和 MQA 的折中方案,在保持模型表达能力的同时节省显存。
DPO
传统的 PPO 的硬件门槛极高,在训练时需要同时维护四个模型,也就是说需要准备 >4 倍的显存资源。
而 DPO (Direct Preference Optimization) 则直接绕过训练 Reward Model 的过程,直接用偏好对比数据优化模型。
DPO 需要的数据形式为 prompt-chosen-rejected,目的是让模型生成 chosen 回答的概率远大于生成 rejected 回答的概率。
DPO 的 Loss 公式如下:
大致可以理解成最大化 (好答案相对于基座模型的提升量 - 坏答案相对于基座模型的提升量)。
DPO 虽然对硬件要求不高,但是对数据质量要求很高,DPO 对数据噪声极度敏感,即便是轻微的标注错误或弱区分样本,也可能导致优化方向偏移,从而削弱模型对齐效果。
对 Loss 更详细的讲解可见知乎链接。
Iterative Post-Training
Llama 3 的后训练并不是一次性完成的,而是多轮的迭代,在每轮中收集新的偏好注释和 SFT 数据,并从最新模型中采样合成数据。
SwiGLU
Llama 3 使用的激活函数为 SwiGLU,这也是目前主流 LLM 的选择。
在理解 SwiGLU 之前,先理解 SiLU:
函数图像如下:
看起来非常像 ReLU、GELU,不过相比 RELU 更加平滑,相比 GELU 计算更简单。
SwiGLU 在此基础上引入了门控机制。其计算公式为:
随后再经过下投影:
其中 和 分别对应门控分支与特征分支。
相比传统的 GELU:
SwiGLU 增加了一条门控分支,可以根据输入动态调整不同特征的重要性,因此具有更强的表达能力。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时






