Llama3技术文档

(paper来源于https://ai.meta.com/research/publications/the-llama-3-herd-of-models/)

Introduction

基础模型开发包含两个阶段:

  1. 预训练阶段(a pre-training stage)。以简单的任务如预测下一个字的方式大规模训练。
  2. 后训练阶段(a post-training stage)。调优为来指令跟随(follow instructions),对齐人类偏好(align with human preferences),提高特定能力(如编程和推理)
    我们相信在高质量基础模型开发中有三个杠杆:
  3. 数据。相对于之前版本,提高了数据数量和质量。Llama 3 15T Llama2 1.8T。
  4. 规模。405B旗舰模型。
  5. 复杂度控制。最大化稳定性,选择标准dense transformer而不是专家混合模型(a mixture-of-experts model)。采用相对简单的后训练策略,采用supervised finetuning (SFT), rejection sampling (RS), and direct preference optimization(DPO)而不是更加复杂的强化学习算法。

Llama3包含8B,70B和405B。

General Overview

Llama3

  1. pre-training。模型学习语言结构和大量知识。8K tokens窗口在15.6T上训练405B。后面8K增大到128K。
  2. post-training。多轮SFT和DPO。让模型跟随指令和成为期望的助手。
    以上模型能有丰富的功能,回答问题,写代码,推理,使用工具。
    另外使用组合方法添加了图像、视频和语音功能。研究了三个额外的阶段:
  3. Multi-modal encoder pre-training(多模态编码器预训练).为图像和语音训练单独的编码器。图像是以图像-文本对方式训练,是模型学习图像和文本描述间关系。语音则是自监督方法,屏蔽部分输入,重建被屏蔽部分(完形填空)。
  4. Vision adapter training(视觉适配器训练).适配器是将预训练图像编码器集成到预训练的语言模型里面,主要有一系列cross-attention层组成。训练适配器时,会更新图像编码器,但不更新语言模型参数。还在图像适配器上使用视频-文本数据训练视频适配器,使模型能够跨帧聚合。
  5. Speech adapter training(语音适配器训练)。通过适配器将语音编码器集成到进来,适配器和编码器联合更新,但不更新语言模型。

Pre-Training

包含大规模训练语料管理和过滤、模型结构和大小、模型高效训练、训练方案。

预训练数据

收集截止2023年底,应用去重和清理机制,删除包含个人信息和成人内容。

网络数据

清洗过程:

  1. PII(personally identifiable information)和安全过滤。
  2. 文本提前和清洗。
  3. 重复数据清洗。包含URL-level de-duplication,Document-level de-duplication(使用global minHASH),Line-level de-duplication(ccNet).
    启发式过滤Heuristic filtering
    删除低质量文档、异常值和重复文档。
  4. 使用n-gram coverage ratio删除重复行。
  5. dirty word 统计过滤成人网站。
  6. 使用token分布的Kullback-Leibler divergence,过滤分布包含异常标识的文档。
    Model-based quality filtering模型指令过滤
    代码和推理数据
    多语言数据

数据混合比例

为了获得高质量的语言模型,需要仔细确定不同数据源的比例。

  1. Knowledge classification.开发一个分类器对数据分类,过多的要进行下采样。
  2. Scaling laws for data mix. 在混合数据上训练小模型进行实验,最终确定下来50%常识,25%数学和推理,17%编码,8%多语言。

退火数据

模型结构

与Llama2相比改动:

  1. GQA(grouped query attention)with 8 key-value heads。提高推理速度和减少缓存。
  2. 128K字典。
  3. RoFE 频率参数提高到50万,支持长上下文。
    Scaling Laws缩放法则

高效训练

16K H100 GPU
4D并行包含tensor并行,pipeline并行,context并行,数据并行。
可靠性和运营
每天至少一次训练中断

训练方案

预训练分为三个阶段,1初始化预训练。2.长上下文预训练。3.退火。

初始化预训练

AdamW
base_lr 8x10-5
a linear warm up of 8,000 steps
a cosine learning rate schedule decaying to 8x10-7 over 1,200,000 steps
早期小batchsize提高稳定性,后面改用大batch提高效率

长上下文预训练

8K到128K 分为六个阶段逐步进行

退火

后40M数据训练时,lr线性减到0,并对高质量数据上采样

Post-Training

modeling

先用前面预训练好的checkpoint和偏好数据训练reward model
再SFT预训练好模型
DPO做进一步调整

聊天对话格式

奖励模型

SFT

DPO

对比PPO发现,DPO需要的计算更少且性能更好

模型平均Model Averaging

最后,对每个RM、SFT或者DPO模型平均。

迭代轮次Iterative Rounds

上述进行6轮,每轮都从新模型中采样合成的数据。

后处理数据Post-training Data

偏好数据

SFT数据

Data Processing and Quality Control

使用基于模型的技术来删除低质量训练样本

  1. 主题分类,粗和细
  2. 质量评分
  3. 难度评分
  4. 重复语义删除。RoBERT聚类。

Capabilities能力

代码,多语言,数据推理,长上下文,工具使用,事实性Factuality,操纵性

  1. 代码。通过培训代码专家(a code expert),生成合成SFT数据,通过系统提示改进格式和创建过滤器来删除不良样本。
  2. 多语言。
  3. 推理。推理是执行多步步骤计算并得到正确答案的能力。
  4. 长上下文。SFT中必须调整方案(recipe)去平衡短和长上下文能力。人类标注很困难,主要依靠合成数据。最终观察到长上下文0.1%和原始短上下文数据混合可以优惠短、长上下文性能。
  5. 工具使用。单步工具()和多步工具(ReAct)。
  6. 事实性。训练后让模型知道它知道什么。开发了一种知识探索技术(a knowledge probing technique)。
  7. 操作性。相应长度,格式,语气和角色/个性等。

结果

评估预训练模型和后训练模型以及安全性。

预训练模型

基准(Standard Benchmarks)

评估类别:1.常识推理。2知识。3.阅读理解。4.数据、推理和问题解决。5.长上下文。6.代码。7.对抗评价。8.综合评价。

模型鲁棒性

对抗性基准

污染性分析(Contamination Analysis)

后训练模型

常识和指令跟随基准(General Knowledge and Instruction-Following Benchmarks)

MMLU和MMLU-Pro
IFEval

能力考试

编码基准

使用pass@N指标
HumanEval,MBPP

多语言基准

数据和推理基准

长上下文基准

工具使用表现

评测集
人类评价,使用人工评估来测试模型的工具使用能力,重点是代码执行。

人类评估

人工打分

安全性

评估llama3以安全和负责人方式生成内容的能力,同时最大限度提供有用信息。

推理(Inference)

管道并行

FP8量化

视觉实验

语音实验(Speech Experiments)

相关工作

结论

posted @ 2024-08-27 11:43  Link_Z  阅读(108)  评论(0编辑  收藏  举报