LLaMA 2开放基础和微调聊天模型

大家读完觉得有意义记得关注和点赞!!!

LLaMA2 用了两个 GPU 集群进行训练:

  1. RSC 集群:200Gbps InfiniBand + 400W A100 GPU
  2. 生产集群:200Gbps RoCE + 350W A100 GPU

RoCE + 350W GPU 的集群,经过优化的代码能达到 IB + 400W GPU 集群性能的 90%。 总共耗费 3.3M GPU-hour

目录

摘要

1 引言

1.1 现状:没有能与 ChatGPT 匹敌的开源大模型

1.2 开源 LLaMA2/LLaMA2-Chat,填补空白

1.3 LLaMA2 是如何炼成的:训练+微调鸟瞰

1.4 本文组织

2 预训练(Pretraining)

2.1 预训练数据(Pretraining Data)

2.2 训练细节(Training Details)

2.2.1 超参数(Hyperparameters)

2.2.2 分词器(Tokenizer)

2.2.3 训练硬件和碳足迹

训练硬件(Training Hardware)

预训练碳足迹(Carbon Footprint of Pretraining)

2.3 LLaMA 2 预训练模型性能评估(Pretrained Model Evaluation)

2.3.1 与开源基座大模型对比

2.3.2 与闭源大模型对比

3 微调(Fine-tuning)

3.1 监督式微调(SFT)

3.1.1 使用公开的指令微调数据

3.1.2 标注质量为王(Quality Is All You Need)

3.1.3 一些微调细节(Fine-Tuning Details)

3.2 基于人类反馈的强化学习(RLHF)

3.2.1 人类偏好数据收集

3.2.2 奖励建模(Reward Modeling)

训练目标

Data Composition

训练细节(Training Details)

奖励模型的结果(Reward Model Results)

3.2.3 Iterative Fine-Tuning

Rejection Sampling

PPO

3.3 System Message for Multi-Turn Consistency

3.4 RLHF Results

3.4.1 Model-Based Evaluation

3.4.2 Human Evaluation

4 Safety(略)

5 讨论

5.1 新发现与评论(Learnings and Observations)

超越人类监督:从 SFT 到 RLHF

In-Context Temperature Rescaling

LLaMA2-Chat 时间感知能力(Temporal Perception)

工具的使用

5.2 限制和伦理考虑

5.3 负责任的发布策略(Responsible Release Strategy)

5.3.1 发布细节

5.3.2 负责任的发布

6 相关工作

6.1 Large Language Models

6.2 Instruction Tuning

6.3 Known LLM Safety Challenges

7 总结

参考文献(略)

附录(略)


摘要

本文介绍 LLaMA 2,我们开发的一组预训练和微调大语言模型集,

  • LLaMA2 参数规模 7b~70b
  • 微调模型称为 LLaMA2-Chat,针对对话场景进行了优化。

其他开源聊天模型进行比较,

  • 大多数基准测试中,LLaMA2 性能更好;
  • 有用性和安全性方面,人工评估(human evaluations)的结果也证明 LLaMA2 更优。

因此,LLaMA2 可以作为一个不错的闭源模型替代方案。 本文将详细描述我们是如何对 LLaMA2-Chat 进行微调和安全性改进的。 社区可以在我们的工作基础上进一步开发迭代,为 LLM 的负责任发展做出贡献。

1 引言

大语言模型(LLM)作为功能强大的人工智能助手,在涉及跨领域、需要专业知识 (例如编程和创意写作)的复杂推理任务中表现出了巨大的潜力。 LLM 通过聊天窗口与人类进行交互,简单方便,因此一经推出就迅速打开大众市场。

如果考虑到背后的训练方法论本质上非常简单直观

  • 首先,在大量自监督数据上对 auto-regressive transforer 进行预训练
  • 然后,通过基于人类反馈的强化学习(RLHF)等技术与人类偏好对齐

就更会震惊于 LLM 的能力是多么出众。

1.1 现状:没有能与 ChatGPT 匹敌的开源大模型

大模型的训练方法很简单,但是,极高的算力要求限制了它的发展, 结果是只有少数几家公司有财力进行研究和训练。 虽然之前已经开源了一些预训练的大模型,包括

  1. BLOOM(Scao 等,2022)
  2. LLaMA-1(Touvron 等,2023)
  3. Falcon(Penedo 等,2023)

这些模型的性能已经与 GPT-3(Brown 等,2020)和 Chinchilla(Hoffmann 等,2022) 等闭源预训练模型相当,但它们还无法成为 ChatGPT、BARD 和 Claude 等性能更强大的闭源、生产级大模型的替代品,

  • 后者做了大量微调以与人类偏好对齐, 极大增强了它们的可用性和安全性;
  • 这一过程需要大量的计算和人工标注成本,并且通常不透明,也难以轻松照搬, 因此限制了社区在 advance AI alignment research 方面的进展。

1.2 开源 LLaMA2/LLaMA2-Chat,填补空白

本文介绍我们开源的 LLaMA2,这是一组预训练和微调的 LLM,包括 LLaMA2 和 LLaMA2-Chat。 与其他开源 chat models 进行比较,

  • 大多数基准测试中,LLaMA2 性能更好;
  • 有用性和安全性方面,人工评估(human evaluations)的结果也证明 LLaMA2 更优。

因此,LLaMA2 可以作为一个不错的闭源模型替代方案。 本文将详细描述我们是如何对 LLaMA2-Chat 进行微调和安全性改进的, 这样社区就能够在我们的工作基础上进一步开发迭代,为 LLM 的负责任发展做出贡献。 具体来说,我们向公众(the general public)开源以下模型,供研究和商业使用(research and commercial use):

  1. LLaMA2:这是 LLaMA 1 的升级版

    • 新组合了公开可用数据(a new mix)进行训练,数据集大小 +40%(1.4T tokens -> 2T tokens),
    • 模型的上下文长度翻倍
    • 采用了 grouped-query attention(Ainslie 等,2023)。

    本次发布 7B/13B/70B 参数的 LLaMA2 模型。 34B 的模型本文会给出性能参数,但发布要晚一些(还在做安全测试)。

  2. LLaMA2-Chat:LLaMA2 的微调版本,针对对话场景进行了优化。

    • 同样发布 7B/13B/70B 参数的版本。

我们相信,在安全的前提下,LLM 的开放将对社会产生积极影响。但注意,和所有 LLM 一样,LLaMA2 是一项新技术, 在使用中存在潜在风险(Bender 等,2021b;Weidinger 等,2021;Solaiman 等,2023),

  • 目前的测试仅涵盖了英语。 在部署任何 LLaMA2-Chat 应用之前,开发者应针对其特定场景进行安全测试和调优;
  • 我们提供了一份负责任使用指南和代码示例,以促进 LLaMA2 和 LLaMA2-Chat 的安全部署。更多信息见 5.3 节。

一些资料链接:

  1. ai.meta.com/resources/models-and-libraries/llama/
  2. ai.meta.com/llama
  3. github.com/facebookresearch/llama

1.3 LLaMA2 是如何炼成的:训练+微调鸟瞰

图 4:LLaMA2-Chat 训练和调优过程。

炼丹四步:

  1. 使用公开数据预训练(自监督学习),得到 LLaMA2
  2. 对 LLaMA2 进行监督微调(SFT),得到一个初始版本的 LLaMA2-Chat
  3. 对 LLaMA2-Chat 回答进行反馈和标注,得到两个奖励模型(分别针对有用性和安全性);
  4. 通过 基于人类反馈的强化学习(RLHF)/ rejection sampling / PPO,对 LLaMA2-Chat 进行(多次)迭代。

1.4 本文组织

本文其余部分组织如下:

  • 第 2 节:预训练方法
  • 第 3 节:微调方法
  • 第 4 节:模型安全方法
  • 第 5 节:核心观察和见解
  • 第 6 节:相关工作
  • 第 7 节:总结

2 预训练(Pretraining)

为了打造 LLaMA2 这个新系列模型,我们采用了 Touvron 等(2023)的预训练方法, 使用了一个优化的自回归 transformer,并进行了一些改进以提高性能, 包括,

表 1 比较了 LLaMA 2 与 LLaMA 1 的一些属性:

LLaMA LLaMA 2
训练数据 见 LLaMA 论文 基于公开可用数据新组合的数据集
参数数量 7b / 13b / 33b / 65b 7b / 13b / 34b / 70b
上下文长度 2k / 2k / 2k / 2k 4k / 4k / 4k / 4k
GQA NO/NO/NO/NO NO/NO/YES/YES
训练 tokens 数量 1T / 1T / 1.4T / 1.4T 2T / 2T / 2T / 2T
Learning Rate 3.0*10-4 / 3.0*10-4 / 1.5*10-4 / 1.5*10-4 3.0*10-4 / 3.0*10-4 / 3.0*10-4 / 3.0*10-4

表 1:LLaMA 1 和 2 模型对比。Token 数量只计算了预训练数据。所有模型都是用 global batch-size of 4M tokens 训练的。

2.1 预训练数据(Pretraining Data)

  • 组合了一些公开可用的数据源,其中不包含来 Meta 产品或服务的数据。
  • 某些网站包含了很多个人信息,我们努力删掉了其中的此类信息。
  • 训练了 2T(2 万亿)个 token,这在性能和成本之间提供了不错的折中(performance–cost trade-off),
  • 对大部分事实类数据源进行 up-sampling,以增加知识减少幻觉( increase knowledge and dampen hallucinations)。

我们进行了大量预训练数据研究,这样用户可以更好地了解 LLaMA2 的潜在能力和限制;详细结果见 4.1 节。

2.2 训练细节(Training Details)

我们采用了 Llama 1 的大部分预训练设置和模型架构

  • 使用标准的 transformer 架构(Vaswani 等,2017),
  • 使用 RMSNorm 进行预归一化(Zhang 和 Sennrich,2019),
  • 使用 SwiGLU 激活函数(Shazeer,2020),以及旋转位置嵌入(rotary positional embeddings,RoPE,Su 等,2022)。

与 Llama 1 相比,主要的架构差异包括

  1. 上下文长度(翻倍,2k -> 4k
  2. 组查询注意力(GQA, grouped-query attention)

附录 A.2.1 中详细介绍了这些差异,并进行了 ablation experiments 以证明它们的重要性。

2.2.1 超参数(Hyperparameters)

  • 使用 AdamW 优化器进行训练(Loshchilov 和 Hutter,2017),其中 β1 = 0.9,β2 = 0.95,eps = 10-5。
  • 使用余弦学习率调度(a cosine learning rate schedule),热身阶段为 2000 steps,并将最终学习率衰减到峰值学习率的 10%。
  • 使用 0.1 的权重衰减(weight decay)和 1.0 的梯度裁剪(gradient clipping)。

图 5(a)显示了使用这些超参数训练的 LLaMA2 的训练损失,

图 5:LLaMA2 Training Loss。注意即使用 2T tokens 进行训练,这些模型仍然没有饱和的迹象。

2.2.2 分词器(Tokenizer)

LLaMA2 使用的分词器与 Llama 1 相同;采用了一种字节对编码(bytepair encoding,BPE)算法(Sennrich 等,2016), 我们使用了 SentencePiece(Kudo 和 Richardson,2018)的实现。

与 Llama 1 一样,

  • 将所有 numbers 拆分为单个 digits,
  • 使用 bytes 来分解未知的 UTF-8 字符。

vocabulary size 为 32k tokens

2.2.3 训练硬件和碳足迹

训练硬件(Training Hardware)

我们在 Meta 的超级集群(Research Super Cluster,RSC,Lee 和 Sengupta,2022) 以及内部生产集群上预训练 LLaMA2。 两个集群 GPU 都是 NVIDIA A100,网络也都是 200Gbps 互联, 但互联方案和 GPU 最大功耗不同:

  1. RSC 集群:200Gbps InfiniBand + 400W GPU
  2. 生产集群:200Gbps RoCE + 350W GPU;RoCE 成本更低。

结论:RoCE + 350W GPU 的集群,经过优化的代码能达到 IB + 400W GPU 集群性能的 90%

预训练碳足迹(Carbon Footprint of Pretraining)

根据之前的研究(Bender 等,2021a;Patterson 等,2021;Wu 等,2022;Dodge 等,2022), 结合 GPU 设备的功耗估计以及碳效率,我们来计算 LLaMA2 预训练所产生的碳排放量。注意,

  • GPU 的实际功耗取决于其利用率(util),我们估计 GPU 功耗使用的是热设计功率(TDP),二者可能会有所差异;
  • 我们的计算不考虑其他电力需求,例如互连、非 GPU 服务器功耗、数据中心制冷功耗等;
  • 与 AI 硬件(如 GPU)生产相关的碳排放量可能会增加整体碳足迹(Gupta 等,2022)。

计算结果见表 2,

表 2:预训练期间的 CO2 排放。Time: total GPU time required for training each model. Power Consumption: peak power capacity per GPU device for the GPUs used adjusted for power usage efficiency. 100% of the emissions are directly offset by Meta’s sustainability program, and becausewe are openly releasing these models, the pretraining costs do not need to be incurred by others.

  • A100-80GB(400W/350W TDP)机器,总共耗费了 3.3M GPU-hour
  • 估算的总排放量为 539 tCO2eq,可 100% 由 Meta 的可持续计划抵消;
  • LLaMA2 的开源还意味着其他公司不需要承担这些预训练成本,节省了更多的全球资源。

2.3 LLaMA 2 预训练模型性能评估(Pretrained Model Evaluation)

本节介绍在标准学术基准测试中,LLaMA 1/2 基础模型、MosaicML 预训练 transforer (MPT)及 Falcon(Almazrouei 等,2023)的结果。 所有评估都使用我们的内部评估库。我们在内部重复了 MPT 和 Falcon 模型的结果。 对于这些模型,始终选择我们评估框架和所有公开报告的结果中的最高分(the best score between our evaluation framework and any publicly reported results)。

基准测试分为以下几类(单个基准测试的结果见 A.2.2):

  • 代码。LLaMA 在 HumanEval(Chen 等,2021)和 MBPP(Austin 等,2021)上的平均 pass@1 分数。
  • 常识推理。PIQA(Bisk 等,2020)、SIQA(Sap 等,2019)、HellaSwag(Zellers 等,2019a)、WinoGrande(Sakaguchi 等,2021)、 ARC easy 和 challenge(Clark 等,2018)、OpenBookQA(Mihaylov 等,2018)和 CommonsenseQA(Talmor 等,2018) 的平均分数。CommonSenseQA 的 7-shot 结果和其他所有基准测试的 0-shot 结果。
  • 世界知识。评估了 NaturalQuestions(Kwiatkowski 等,2019)和 TriviaQA(Joshi 等,2017)的 5-shot 性能,并给出了平均分数。
  • 阅读理解。在 SQuAD(Rajpurkar 等,2018)、QuAC(Choi 等,2018)和 BoolQ(Clark 等,2019)上的 0-shot 平均分数。
  • 数学。GSM8K(8 shot)(Cobbe 等,2021)和 MATH(4 shot)(Hendrycks 等,2021)基准测试在 top 1 的平均分数。
  • 聚合基准测试。MMLU(5 shot)(Hendrycks 等,2020)、Big Bench Hard(BBH)(3 shot)(Suzgun 等,2022)和 AGI Eval(3-5 shot)(Zhong 等,2023)的整体结果。 对于 AGI Eval,只评估英文任务并给出平均分数。

2.3.1 与开源基座大模型对比

表 3 总结了一系列常见基准测试的整体性能。安全基准测试见 4.1 节中。

表 3:与其他开源的基座大模型对比性能,基于一些学术基准测试

可以看出,

  1. LLaMA2 优于 LLaMA1;
  2. 与 Llama 1 65B 相比,LLaMA2 70B 在 MMLU 和 BBH 上的结果分别提高了约 5 和 8 个百分点;
  3. 除了 Code 基准测试,LLaMA2 7B 和 30B 模型在其他类别上都优于相应大小的 MPT 模型;
  4. LLaMA2 7B 和 34B 在所有基准测试类别上优于 Falcon 7B 和 40B 模型。
  5. LLaMA2 70B 模型优于所有开源模型

2.3.2 与闭源大模型对比

除了开源模型,我们还将 LLaMA2 70B 的结果与闭源模型进行了比较。如表 4 所示,

表 4:基于学术基准测试,对比 LLaMA2 和闭源模型。 GPT-3.5/GPT-4 的结果来自 OpenAI (2023);PaLM 的结果来自 Chowdhery et al. (2022); PaLM-2-L 的结果来自 Anil et al. (2023).

  1. LLaMA2 70B 在 MMLU 和 GSM8K 上与 GPT-3.5(OpenAI,2023)接近,但在编码基准测试上存在显著差距;
  2. LLaMA2 70B 与 PaLM(540B)(Chowdhery 等,2022)相当,甚至比后者更好;
  3. LLaMA2 70B 与 GPT-4/PaLM-2-L 仍存在较大差距

我们还分析了潜在的数据污染,详细信息见 A.6 节。

3 微调(Fine-tuning)

LLaMA2-Chat 经过了几个月的对齐(alignment)迭代, 包括指令微调(instruction tuning)和 RLHF,这些都需要大量的计算和标注资源。 本节介绍我们的一些实验及发现。

3.1 监督式微调(SFT)

3.1.1 使用公开的指令微调数据

与 Touvron 等人(2023)类似,我们使用了公开可用 instruction tuning 数据(Chung 等,2022)开始 SFT 阶段。

3.1.2 标注质量为王(Quality Is All You Need)

还有一些不同来源的第三方 SFT 数据,但我们发现其中一些的多样性和质量欠佳 —— 尤其是对于将 LLM 对齐到对话式(dialogue-style)指令时。 因此,我们首先收集了数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值