论文
《Llama 2: Open Foundation and Fine-Tuned Chat Models》
今天我们不再局限于概念基础,而是深入到驱动现代人工智能系统的算法核心 —— 从理解强化学习的定义,迈向掌握它的实际运作原理。 |文末点击阅读原文查看网页版| 更多专栏文章点击查看:
LLM 架构专栏
大模型架构专栏文章阅读指南
Agent系列
强化学习系列
欢迎加入大模型交流群:加群链接 https://docs.qq.com/doc/DS3VGS0NFVHNRR0Ru#
公众号【柏企阅文】
知乎【柏企】
个人网站:https://www.chenbaiqi.com
Llama 2是一系列预训练和微调的大语言模型(LLMs),参数规模从70亿到700亿不等。其经过微调的大语言模型Llama 2-Chat针对对话场景进行了优化。
模型概述
Llama 2的大多数预训练设置和模型架构都沿用自Llama 1。它采用标准的Transformer架构,使用RMSNorm进行预归一化,并运用SwiGLU激活函数和旋转位置嵌入。与Llama 1主要的架构差异在于增加了上下文长度和分组查询注意力机制。
Llama 2模型家族
分词器
Llama 2使用与Llama 1相同的分词器,该分词器采用字节对编码(BPE)算法。和Llama 1一样,所有数字都被拆分为单个数字,并且使用字节来分解未知的UTF-8字符,总词汇量为32000个词元。
训练概述
Llama 2-Chat的训练
训练过程始于使用公开的在线资源对Llama 2进行预训练。之后,通过监督微调创建Llama 2-Chat的初始版本。随后,利用人类反馈强化学习(RLHF)方法对模型进行迭代优化,具体通过拒绝采样和近端策略优化(PPO)实现。在整个RLHF阶段,与模型改进并行积累迭代奖励建模数据至关重要,以确保奖励模型始终处于数据分布范围内。
预训练
预训练方法一开始使用优化的自回归Transformer,但为了提高性能做了一些改进。
训练语料库包含来自公开资源的新数据组合,其中不包括Meta产品或服务的数据。某些已知包含大量个人隐私信息的网站数据被排除在外。模型在2万亿个词元的数据上进行训练,这提供了良好的性能与成本的权衡,对事实性最强的数据源进行上采样,以增加知识并减少幻觉。
预训练模型评估
- 整体性能:在分组学术基准测试中,与开源基础模型进行比较。
- 与闭源模型对比:在学术基准测试中与闭源模型进行比较。
- 代码能力:在HumanEval和MBPP上的平均通过率@1分数。
- 常识推理:PIQA、SIQA、HellaSwag、WinoGrande、ARC easy和challenge、OpenBookQA以及CommonsenseQA的平均值。CommonsenseQA报告7次射击结果,其他所有基准测试报告0次射击结果。
- 世界知识:在NaturalQuestions和TriviaQA上5次射击性能的平均值。
- 阅读理解:在SQuAD、QuAC和BoolQ上0次射击的平均值。
- 数学能力:在GSM8K(8次射击)和MATH(4次射击)基准测试中排名前1的平均值。
- 热门综合基准测试:MMLU(5次射击)、Big Bench Hard(BBH)(3次射击)和AGI Eval(3 - 5次射击)的总体结果。对于AGI Eval,仅评估英语任务。
微调
Llama 2-Chat是数月研究以及对齐技术迭代应用的成果,这些技术包括指令调整和RLHF,需要大量的计算和注释资源。
SFT阶段从公开可用的指令调整数据开始。
第三方SFT数据来源广泛,但其中许多数据的多样性和质量不足,尤其是在使大语言模型与对话式指令对齐方面。因此,首要重点是收集数千个高质量的SFT数据示例。
数以万计的SFT注释足以获得高质量的结果。在总共收集了27540条注释后,停止了SFT注释。
在监督微调中,使用了4096个词元的序列长度。
在微调过程中,每个样本由一个提示和一个答案组成。为了确保模型序列长度被正确填充,训练集中的所有提示和答案都被连接起来。使用一个特殊的标记来分隔提示和答案部分。采用自回归目标,并将用户提示中的词元损失归零,因此,只有答案词元进行反向传播。模型进行2个epoch的微调。
人类反馈强化学习(RLHF)
RLHF是一种模型训练过程,应用于经过微调的语言模型,以进一步使模型行为符合人类偏好并遵循指令。收集代表经验采样的人类偏好的数据,由人类注释者选择他们更喜欢两个模型输出中的哪一个。随后,这些人类反馈用于训练奖励模型,奖励模型学习人类注释者偏好中的模式,进而可以自动做出偏好决策。
人类偏好数据收集
注释者被要求先编写一个提示,然后在两个采样的模型响应中进行选择。为了最大化多样性,针对给定提示的两个响应是从两个不同的模型变体中采样得到的,并且会改变温度超参数。
除了让参与者进行强制选择外,注释者还被要求标记他们选择的响应相较于另一个响应的偏好程度:即他们的选择是明显更好、更好、略好,还是几乎一样好/不确定。在收集偏好注释时,我们关注有用性和安全性。有用性是指Llama 2-Chat的响应在多大程度上满足用户的请求并提供所需信息;安全性是指Llama 2-Chat的响应是否安全。
奖励建模
奖励模型将模型响应及其相应的提示(包括之前轮次的上下文)作为输入,并输出一个标量分数,以表明模型生成的质量(例如,有用性和安全性)。
训练了两个单独的奖励模型,一个针对有用性进行优化(称为有用性奖励模型Helpfulness RM),另一个针对安全性进行优化(安全性奖励模型Safety RM)。
训练细节
模型训练1个epoch,因为早期实验表明训练时间过长可能会导致过拟合。
- 更大的模型在相似的数据量下表现更好。
- 当前的数据注释尚未使缩放性能达到平稳状态,这表明还有进一步改进的潜力。
GAtt方法
假设有一个两人(例如,用户和助手)之间的多轮对话数据集,其中包含消息列表[u1, a1, …, un, an],其中un和an分别对应第n轮的用户消息和助手消息。然后,我们定义一个在整个对话中都应遵循的指令inst。例如,inst可以是“扮演成”。然后,我们可以将这个指令合成性地连接到对话的所有用户消息中。
GAtt在RLHF V3之后应用,并且有定量分析表明,在达到最大上下文长度之前,GAtt在20轮以上都是一致的。
RLHF结果
在RLHF-V3之后,模型在无害性和有用性两个维度上都超过了ChatGPT,这两个指标均超过50%。
有人担心内部奖励指标可能偏向Llama 2-Chat,因此也使用GPT-4进行公平比较。
与ChatGPT相比,Llama 2-Chat的胜率更高,最新版本的Llama 2-Chat胜率超过60%。
Llama 2-Chat模型与开源和闭源模型的人类评估结果对比:针对约4000个有用性提示进行评估,每个提示由三名评估人员打分。
Llama 2-Chat模型在单轮和多轮提示上的表现均显著优于开源模型。
- Llama 2-Chat 7B模型在60%的提示上优于MPT-7B-chat。
- Llama 2-Chat 34B模型相对于同等规模的Vicuna-33B和Falcon 40B模型,胜率超过75%。
- 最大的Llama 2-Chat模型与ChatGPT具有竞争力,相对于ChatGPT的胜率为36%,平局率为31.5%。
- Llama 2-Chat 70B模型在提示集上的表现大幅超过PaLM-bison聊天模型。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。