Abstract部分:
Llama 3是一个具有405B参数的大模型, 在评估方面达到了GPT4的水平, 但在实用性等方面其实还并不能相比.
Llama 3通过compositional这个方法添加了图片, 视频, 语音的能力.
Introduction部分:
科普了一部分知识: 现在的大模型主要包含两个部分, pre-training和post-training. 现在大部分面向特殊领域的工作都属于post-training, 如Qwen-Instruct就是专门应用于对话的大模型.
介绍了该模型的三个关键因素:
-
数据量: 15T属于共有网络上能抓取到的数据的上限, 与其继续增加数据量不如改善数据质量.
-
参数规模: 405B
-
复杂性控制: Llama 3的复杂性很低. 在架构上仍使用了最经典的稠密型Transformer(即继续沿用了上一代模型); 在post-training上也仅仅使用了最简单的SFT, RS, DPO等算法. 总结来说就是力大砖飞.
评估部分: 8B和70B性能提升显著, 70B到405B则提升较小.
Pre-training部分:
总共分为三个主要阶段: 初始预训练; 长语境训练; 退火.
-
初始预训练: 使用的初始批量大小为400 万个令牌和长度为4096的序列,在预训练2.52亿个令牌后,将这些值加倍到800万个序列和8192个令牌的批量大小。在对2.87T标记进行预训练后,我们再次将批量大小翻倍至1600万。损失峰值很少,而且不需要干预来纠正模型训练的偏差。
-
长语境训练: 分六个阶段逐步增加上下文长度,从最初的 8K 上下文窗口开始,到最终的 128K 上下文窗口结束。这一长语境预训练阶段使用了大约800B 个训练标记。
-
退火: 在对最终 4000 万个词组进行预训练期间,学习率线性退火为 0,并保持 128K 词组的上下文长度。在退火阶段,对质量非常高的数据源进行了上采样;最后计算退火过程中模型检查点的平均值生成最终的预训练模型。
Post-training部分:
后期训练策略包括拒绝采样, 监督微调和直接偏好优化。在人工标注的偏好数据上训练奖励模型 (RM, 和llama2差不多, 只是去掉了损失的边界值), 然后进行 SFT 和 DPO. 每一轮后训练都包括监督微 (SFT), 然后是直接偏好优化 (DPO), 训练数据是通过人类标志或模型合成数据 (主要是生成的数据).
-
聊天对话格式: 定义了一个聊天对话协议, 使用各种特殊的头标记和终止标记. 头标记用于指示对话中每条信息的来源和目的地, 终止标记用于指示何时是人类和人工智能交替发言的时间.
-
奖励模型 (Reward Model): 将响应进行一定规则的排序, 提高训练效率.
语料筛选部分:
-
在网页方面, 删去含有许多PII(个人可识别信息)和不安全内容的网站. 这些网站的质量极低.
-
自定义了HTML解析器, 以维护数学和代码内容的结构.
-
将对于具有相同的URL级别, 文档级别等的重复数据进行删除(即去重工作), 仅保留最新数据版本.
-
使用启发式过滤算法(n-gram算法, Kullback-Leibler)来去除额外的低质量文档, 异常文档和重复内容过多的文档.
采用力大砖飞的方式, 且取得了很好的效果. Llama3.1在数据的的选取等方面做了许多工作, 极大地说明了优质数据对于模型训练的极重要性.