【大模型微调】 Llama 2 :对话模型的全过程微调
发布时间:2024年06月06日
该项工作的作者提出 Llama 2 模型:这是经过一系列 预训练和微调的大语言模型 (LLM),其参数规模从 7B 亿到 70B 不等。作者针对对话应用场景对这些模型进行了预训练和微调,所得到的模型被称为 Llama 2-Chat。经过人工评估,该模型在实用性和安全性方面表现得较好,有可能作为封闭源模型的可行替代品。
预训练(Pretraining)
作者在 Llama 的基础之上开发了 Llama 2,该方法采用了经过优化的自回归变换器。为了提高性能,他们实施了几项改进措施,包括增强数据清洗、更新数据混合方式、训练更多记号数量,并且扩大上下文长度。此外,他们还引入了分组查询注意力(GQA),以增强更大模型的推理可扩展性。
预训练数据
为了训练 Llama 2 模型,作者采用了一种新颖的数据混合方式,来源于公开可访问的资源,但去除了Meta公司产品或服务的数据。为保护个人隐私,他们还删除含有大量个人信息的数据网站信息。整个预训练过程使用了2万亿个标记数据,他们认为这个规模在性能和成本之间取得了良好的平衡。为了增加模型的知识并减少虚假信息生成或“幻觉”,他们对最可靠的来源进行了上采样。
预训练模型评估
Llama 2 模型在评估中表现优异,明显优于上一代 Llama 模型:
- 拥有 700 亿参数的 Llama 2 模型在 MMLU 和 BXH 基准测试上的结果相较于 650 亿参数的 Llama 模型分别提升了大约 5% 和 8%。
- 拥有 70 亿参数和 30 亿参数的 Llama 2 模型在除代码基准测试外的所有类别中均优于规模相似的 MPT 模型。
- 与 Falcon 模型相比,Llama 2 的拥有 70 亿参数和 34 亿参数的模型在所有基准测试类别中均优于拥有 70 亿参数和 40 亿参数的 Falcon 模型。
- 此外,Llama 2 70B 模型超越了所有开源模型。
相比之下,Llama 2 70B 亿参数的模型在 MMLU和 GSM8K 基准测试上与闭源的 GPT-3.5(OpenAI, 2023)表现类似,但在代码基准测试上存在显著差距。然而,它在几乎所有基准测试上的性能均与拥有5400 亿参数的 PaLM 相匹配或超越。尽管如此,在与 GPT-4 和PaLM-2-L 进行比较时,Llama 2 70B 模型仍然存在显著的性能差距。
微调(Fine-tuning)
Llama 2-Chat 是经过数月的研究并结合对齐技术进行迭代的结果,其中微调和 RLHF 都需要大量的计算和标注资源。作者还分享了一种新的技术:Ghost Attention(GAtt),它有助于控制多轮对话的流程。
监督微调(SFT)
作者在监督微调(SFT)阶段使用了与 Llama 相似的公开可用指导微调数据。然而,他们发现许多第三方 SFT 数据源缺乏多样性和质量,特别是用于对话式指令的大型语言模型(LLMs)对齐。因此,他们优先采集了几千个高质量的 SFT 数据示例,并发现使用更少但质量更好的示例可以显著提高性能。
作者发现几万个 SFT 标注就足以实现高质量的结果(在收集了27,540个标注后停止了收集)。他们强调了不同标注平台和供应商对模型性能的重要影响,强调即使从供应商那里获取标注,也需要进行数据检查。对 180 个示例进行手动检查显示,模型输出通常与人工标注员手写的输出相竞争,这表明将更多标注工作转移到基于偏好的强化学习从人类反馈(RLHF)上是有价值的。
在微调中,每个样本由提示(prompt)和答案组成,两者通过特殊记号连接在一起,用于分隔这两个部分。在使用自回归目标,将用户提示中的记号的损失置零,这使得着它们只在答案记号上进行反向传播。
人类偏好数据收集
为了进行奖励建模(reward modeling),作者采用了二元比较协议,用于收集人类偏好数据,以便最大程度地增加提示的多样性。标注人员的任务是编写提示,并在基于设定标准的两个模型回答之间进行选择。他们还必须对所选回答与其他回应之间的偏好进行评级(显著更好、更好、稍微更好、或不确定)。
偏好标注的重点在于“帮助性”和“安全性”。作者将“帮助性”定义为 Llama 2-Chat 回答是否能够满足用户的请求,“安全性”则指回应是否符合安全指导方针。为每个重点领域提供了单独的指导方针。
在安全性阶段,模型回答被分为三组:
- 首选回答是安全的,而另一个不是;
- 两个回答都是安全的;
- 两个回答都不安全。不包括所选回应不安全而另一个安全的例子。
人工标注数据以每周按批次形式收集。随着收集到更多偏好数据,奖励模型得到了改进,作者逐渐训练出性能更好的 Llama 2-Chat 版本。随着改进使模型的数据分布发生变化,作者使用最新的 Llama 2-Chat迭代版本收集新的偏好数据,以保持奖励模型的更新和准确性。
奖励建模(reward modeling)
作者开发了一个奖励模型,该模型输入模型的回答和相应的提示,并输出一个表示生成回答质量(如帮助性、安全性)的分数。这些分数可以作为奖励,用于优化 Llama 2-Chat 模型,使其更符合人类偏好。
他们分别训练了两个独立的奖励模型:一个针对帮助性(Helpfulness RM),另一个针对安全性(Safety RM)。这些模型是从预训练的对话模型检查点开始初始化的,以确保知识传递并防止偏见,比如支持产生幻觉。
为了训练奖励模型,将人类偏好数据转换为二元排序标签格式。模型被训练,以确保所选回应的得分高于其对应的回应。为了利用四级偏好评分,他们添加了一个边际(margin)组件到损失中,以帮助模型为具有更大差异的回应分配更明显的分数。
此外,作者将新数据与现有的开源偏好数据集结合,并形成一个更大的训练数据集。
奖励模型结果
作者在每一批人类偏好标注数据中留出一个测试集,用于评估他们的奖励模型。他们将这些模型与公开可用的替代方案进行比较,包括SteamSHP-XL、Open Assistant 奖励模型和 GPT-4。该模型表现最好,尤其是在相应的内部测试集上。
在根据偏好评分进行评分时,“显著更好”测试集的准确率最高,随着比较变得更加相似,准确率下降。作者指出,对更不同的回应准确率的提升是改善 Llama 2-Chat 性能的关键。
在规模趋势方面,作者发现较大的模型在相似数据量下提供更好的性能,并且性能随着当前标注数据的增加并没有趋于平稳。他们得出结论,因为奖励的排名任务是明确的,所以提高奖励模型的准确性可以直接提高 Llama 2-Chat 的性能。
迭代微调(Iterative Fine-Tuning)
RLHF 微调使用了两种主要算法:近端策略优化(Proximal Policy Optimization,PPO),拒绝抽样微调(Rejection Sampling fine-tuning)。在拒绝抽样微调中,他们从模型回应的抽样中选择最佳输出进行梯度更新。两种算法的不同之处在于广度(拒绝抽样中对于给定提示的 K 个样本)和深度(在 PPO 中,样本是根据上一步的更新模型策略得出的函数,而在拒绝抽样中,所有输出都被抽样)。在迭代训练中,这些差异并不明显。
拒绝抽样微调仅适用于最大 Llama 2-Chat 7B 模型,较小的模型则是使用从更大模型中抽样数据进行微调。随着迭代进行,作者调整了策略,包括所有之前迭代中表现最好的样本,从而得到显著的性能改进。
在RLHF(V4)之后,他们逐步将拒绝抽样和 PPO 微调结合在一起。对于 PPO,他们通过对策略进行抽样,从策略中采样提示和生成样本,并使用PPO算法实现目标。他们还增加了一个惩罚项,以防止与原始策略偏离,因为这有助于训练稳定性并减少奖励欺骗。
多轮对话的一致性系统消息
作者提出一种 Ghost Attention(GAtt)新技术,这是一种旨在帮助AI在对话中记住初始指示的技术。该方法基于 Context Distillation 的概念,并将一个需要在对话期间遵循的指示附加到合成对话数据集中的所有用户消息中。在训练中,指令仅在第一个轮次保留,并且在之前轮次的所有记号上损失设为零。这个策略适用于一系列合成约束,包括爱好、语言和公众人物。GAtt 的实现有助于在对话的较大部分保持对初始指示的一致性。
GAtt 成功确保了对 20 多个轮次的一致性,直到达到最大上下文长度。尽管这种初始实现是有益的,作者认为这种技术还有进一步改进和迭代的潜力。
RLHF Results
基于模型的评估
如何评估大语言模型(LLMs)(如 Llama 2-Chat) 是一个复杂的问题。虽然人工评估被认为是黄金标准,但它并不总是可扩展的,也可能会出现一些问题。因此,作者使用奖励模型来衡量 RLHF 模型版本的迭代中的改进,并随后通过人工评估来确认结果。
为了测试奖励模型的可靠性,他们收集了一组提示并让人工标注员进行评判。结果表明,奖励模型通常与人类偏好很好地一致,验证了它们作为逐点指标的使用。
然而,为了防止可能导致与人类偏好分歧的情况,他们还利用了一个更通用的奖励模型,该模型经过多样的开源奖励建模数据集训练。他们假设迭代的模型更新可能有助于保持与人类偏好的一致性。
模型在使用 RLHF(V3) 之后在安全性和帮助性方面均优于ChatGPT。为了进行公平比较,最终结果还使用 GPT- 4 进行了评估。结果显示 Llama 2-Chat 对比 ChatGPT 仍然有超过60%的胜率,尽管优势不如之前那么明显。
人类评估
人工评估通常被认为是评估对话模型的黄金标准,研究人员使用这种方法来评估 Llama 2-Chat 模型的帮助性和安全性。模型与开源模型(如Falcon 和 MPT MosaicML)以及闭源模型(如 ChatGPT 和 PaLM )进行比较,使用了超过 4000 个单轮和多轮提示。
结果显示 Llama 2-Chat 模型在单轮和多轮提示上显著优于开源模型,其中 Llama 2-Chat 34B 模型在与大小相近的模型进行比较时胜率超过75%。最大的 Llama 2-Chat 模型与 ChatGPT 表现相媲美。
为了确保互评者之间的一致性,每个模型生成的对比都由三个不同的标注员进行独立评估,并使用 Gwet 的 AC1/2 统计方法衡量了评估者间的一致性。根据模型对比的不同,AC2 得分在0.37和0.55之间变化。
然而,作者承认人工评估也存在一定的局限性。例如,虽然 4000 个提示的数据集在研究标准下是很大的,但它并未涵盖所有可能的现实世界使用场景。数据集缺乏多样性,并且不包含任何与编码或推理相关的提示。评估关注的是多轮对话的最终生成,而不是整个对话体验。最后,人工评估的主观性和噪声意味着结果可能会因不同的提示或指令而有所不同。
安全性
在预训练阶段,作者对数据采取了一系列负责任的措施,排除了包含大量个人信息的特定网站,同时努力降低碳足迹,避免对人口统计学信息进行过滤。然而,作者强调模型应该经过重要的安全调整后才能部署。
Llama 2 的安全性能力通过三个自动评估基准进行了测试:TruthfulQA(真实性)、ToxiGen(毒性)和 BOLD(偏见)。与前任模型相比,Llama 2 在真实性上表现出更高的准确性和较低的毒性。然而,Llama 2 的 13B 和 70B 版本表现出较高的毒性,这可能是由于更大的预训练数据或不同的数据混合。虽然作者注意到许多人口群体的积极情感有所增加,但在部署之前仍需要额外的安全缓解措施以及对模型实际影响的更全面研究。
安全微调的方法包括监督微调、强化学习从人类反馈(RLHF)和安全性上下文蒸馏。对于监督微调,团队采用了敌对提示和安全示范来对模型进行早期安全对齐。RLHF 将安全性整合到一般的 RLHF 流程中,包括训练专门的安全性奖励模型以及收集更多的敌对提示来进行更好的微调。安全性上下文蒸馏通过生成更安全的回应并将安全性上下文蒸馏到模型中来对模型进行改进。安全类别包括非法和犯罪活动、仇恨和有害活动、以及不合格的建议。通过各种风险类别和攻击向量进行微调,使模型能够更好地应对不同类型的提示。
红队演练是一种主动识别语言学习模型(LLMs)潜在风险和漏洞的方法。这项工作涵盖了来自网络安全、选举欺诈、法律、公民权利、软件工程、机器学习和创意写作等多个领域的350多名专业人员。红队演练主要关注各种风险类别,如犯罪计划、人口贩运、隐私侵犯等,以及不同的攻击向量。通过红队演练收集的数据进行了详细的分析,考虑了对话长度、风险区域分布和风险程度等因素,并用于模型微调和安全培训。红队演练是提高模型安全性和稳健性的有价值的工具,新的候选版本不断降低了触发违反响应的提示的比率。
通过人工评估方法,作者对 LLMs 的安全性进行了评估,其中包括约2000 个敌对提示。对这些提示的回应在五分Likert量表上由评估员进行评估,其中5分表示最安全和最有帮助,1分表示严重的安全违规。违规百分比被作为主要评估指标,均值评分作为补充。每个示例由三名标注员进行评估,多数票决定回应是否违反安全准则。评估者之间的一致性通过 Gwet 的 AC1/2 统计方法测量,结果表明不同模型之间的一致性较高。Llama 2-Chat 在安全性方面表现相当或更好。需要注意的是,评估受到提示集限制、审查准则主观性、内容标准和评估员主观性等因素的影响。
总结
- 研究结果表明,强化学习由于其成本和时间效率而在调整过程中特别有效。RLHF(人类反馈强化学习)的成功取决于它在标注过程中在人类和 LLMs 之间创建的协同关系。值得注意的是,RLHF 有助于克服监督微调的局限性,并可以为 LLMs 带来超强的写作能力。
- Llama 2-Chat 模型展现出强大的时间组织能力,这表明LLMs 可能比之前预想的更具有先进的时间概念。
- 在零样本情况下,LLMs 出现了工具使用现象,即使没有明确标注工具使用,模型也表现出利用一系列工具的能力。虽然这一点很有希望,但 LLMs 的工具使用也可能带来安全方面的问题,需要进一步的研究和测试来确保其安全性。
引用
https://arxiv.org/pdf/2307.09288.pdf
出自:https://www.toutiao.com/article/7267367609778209316/
如果你想要了解关于智能工具类的内容,可以查看 智汇宝库,这是一个提供智能工具的网站。
在这你可以找到各种智能工具的相关信息,了解智能工具的用法以及最新动态。
快文档KuaiGPT是一款基于大语言模型(LLM)的在线使用的AI办公工具。能完成撰写邮件、视频脚本、文案、翻译、代码、写论文、起名字,保险产品查询等任务。