Llama 2:开放式基础模型与微调对话模型

作者/机构: Hugo Touvron∗, Louis Martin†, Kevin Stone†, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, Soumya Batra, Prajjwal Bhargava, Shruti Bhosale, Dan Bikel, Lukas Blecher, Cristian Canton Ferrer, Moya Chen, Guillem Cucurull, David Esiobu, Jude Fernandes, Jeremy Fu, Wenyin Fu, Brian Fuller, Cynthia Gao, Vedanuj Goswami, Naman Goyal, Anthony Hartshorn, Saghar Hosseini, Rui Hou, Hakan Inan, Marcin Kardas, Viktor Kerkez, Madian Khabsa, Isabel Kloumann, Artem Korenev, Punit Singh Koura, Marie-Anne Lachaux, Thibaut Lavril, Jenya Lee, Diana Liskovich, Yinghai Lu, Yuning Mao, Xavier Martinet, Todor Mihaylov, Pushkar Mishra, Igor Molybog, Yixin Nie, Andrew Poulton, Jeremy Reizenstein, Rashi Rungta, Kalyan Saladi, Alan Schelten, Ruan Silva, Eric Michael Smith, Ranjan Subramanian, Xiaoqing Ellen Tan, Binh Tang, Ross Taylor, Adina Williams, Jian Xiang Kuan, Puxin Xu, Zheng Yan, Iliyan Zarov, Yuchen Zhang, Angela Fan, Melanie Kambadur, Sharan Narang, Aurelien Rodriguez, Robert Stojnic, Sergey Edunov, Thomas Scialom∗
机构: GenAI, Meta


A1 主要贡献

本文旨在解决现有开源大语言模型(LLMs)虽在预训练性能上可与闭源模型媲美,但因缺乏与人类偏好对齐的深度微调,而无法成为ChatGPT、BARD等成熟“产品级”LLM替代品的核心问题。这类对齐微调过程往往计算成本高昂且不透明,限制了社区在AI对齐研究上的进展。为此,本研究开发并发布了Llama 2,一个包含70亿至700亿参数规模的预训练和微调LLM系列。

研究目标与创新点:
1. 发布Llama 2和Llama 2-Chat系列模型:Llama 2是基于新的公开数据混合训练的更新版基础模型,其预训练语料库大小增加了40%,上下文长度翻倍至4096,并采用了分组查询注意力(GQA)机制。Llama 2-Chat是专为对话场景优化的微调版本。发布的模型规模包括7B、13B和70B参数。
2. 卓越的性能表现:在一系列有助性和安全性基准测试中,Llama 2-Chat模型普遍优于现有的开源模型。根据人工评估,其在有助性和安全性方面表现出色,足以媲美部分闭源模型(如图1和图3所示)。
3. 提升模型安全性:通过采用安全特定的数据标注和微调、进行“红队演练”(red-teaming)以及迭代评估等措施,显著提升了模型的安全性。
4. 公开微调和安全方法:本文详细阐述了微调方法论和提升LLM安全的途径,旨在帮助社区复现微调LLM并持续改进其安全性,推动LLM的负责任发展。
5. 分享新颖的观察:在开发过程中,研究团队发现了一些新兴能力,如工具使用和知识的时间组织能力。

核心图表概述:

  • 图1 展示了Llama 2-Chat与其他开源及闭源模型在有助性方面的人工评估对比。评估基于约4000个单轮和多轮提示,结果显示Llama 2-Chat具有很强的竞争力。
  • 图3 展示了在安全性方面的人工评估结果,评判了模型在约2000个对抗性提示下的安全违规情况。结果表明Llama 2-Chat在安全性上表现优于其他模型。
  • 图4 描绘了Llama 2-Chat的训练流程,从Llama 2的预训练开始,经过监督微调(SFT)创建初始版本,再通过强化学习与人类反馈(RLHF)方法(包括拒绝采样和PPO)进行迭代优化。

Figure 1: Llama 2-Chat与其他开源和闭源模型在有助性方面的人工评估结果。人类评估员在约4000个单轮和多轮提示上比较了模型生成的内容。此次评估的95%置信区间在1%到2%之间。更多细节见3.4.2节。在审查这些结果时,需要注意的是,由于提示集的局限性、审查指南的主观性、个体评估员的主观性以及比较生成内容的固有难度,人工评估可能存在噪音。
Figure 1: Llama 2-Chat与其他开源和闭源模型在有助性方面的人工评估结果。人类评估员在约4000个单轮和多轮提示上比较了模型生成的内容。此次评估的95%置信区间在1%到2%之间。更多细节见3.4.2节。在审查这些结果时,需要注意的是,由于提示集的局限性、审查指南的主观性、个体评估员的主观性以及比较生成内容的固有难度,人工评估可能存在噪音。

Figure 3: Llama 2-Chat与其他开源和闭源模型在安全性方面的人工评估结果。人类评估员在约2000个包含单轮和多轮的对抗性提示上判断模型生成内容的安全违规情况。更多细节见4.4节。需要注意的是,这些安全评估结果存在固有的偏见,原因在于提示集的局限性、审查指南的主观性以及个体评估员的主观性。此外,这些安全评估是使用可能偏向于Llama 2-Chat模型的内容标准进行的。
Figure 3: Llama 2-Chat与其他开源和闭源模型在安全性方面的人工评估结果。人类评估员在约2000个包含单轮和多轮的对抗性提示上判断模型生成内容的安全违规情况。更多细节见4.4节。需要注意的是,这些安全评估结果存在固有的偏见,原因在于提示集的局限性、审查指南的主观性以及个体评估员的主观性。此外,这些安全评估是使用可能偏向于Llama 2-Chat模型的内容标准进行的。

Figure 4: Llama 2-Chat的训练流程:该过程始于使用公开可用的在线资源对Llama 2进行预训练。随后,通过应用监督微调创建Llama 2-Chat的初始版本。接着,使用人类反馈强化学习(RLHF)方法,特别是通过拒绝采样和近端策略优化(PPO),对模型进行迭代优化。在整个RLHF阶段,与模型增强并行积累迭代奖励建模数据至关重要,以确保奖励模型保持在分布内。
Figure 4: Llama 2-Chat的训练流程:该过程始于使用公开可用的在线资源对Llama 2进行预训练。随后,通过应用监督微调创建Llama 2-Chat的初始版本。接着,使用人类反馈强化学习(RLHF)方法,特别是通过拒绝采样和近端策略优化(PPO),对模型进行迭代优化。在整个RLHF阶段,与模型增强并行积累迭代奖励建模数据至关重要,以确保奖励模型保持在分布内。


A3 关键观察与设计原则

本节讨论了在RLHF微调过程中发现的一些有趣特性,例如Llama 2-Chat在时间上组织知识的能力,或为外部工具调用API的能力。

超越人类监督。项目初期,许多人倾向于监督式标注,因其信号密集。而强化学习因其不稳定性,在自然语言处理研究社区中显得有些神秘。然而,强化学习被证明非常有效,尤其是在成本和时间效率方面。我们的发现强调,RLHF成功的关键在于它在标注过程中促进了人类与LLM之间的协同作用。即使是熟练的标注员,每个人的写作风格也存在显著差异。在SFT标注上微调的模型会学习到这种多样性,不幸的是,也包括了质量较差的标注。此外,模型的性能受限于最熟练标注员的写作能力。在RLHF中,人类标注员在比较两个输出的偏好时,其判断的差异性相对较小。因此,奖励机制能迅速学会为不受欢迎的尾部自分布配低分,并朝向人类偏好对齐。这一现象如图20所示,最差的答案被逐渐移除,使分布向右移动。此外,在标注过程中,模型有可能探索出即使是最好的标注员也无法规划出的写作轨迹。尽管如此,人类在比较两个答案时仍能提供有价值的反馈,超越了他们自身的写作能力。这好比我们不都是杰出的艺术家,但我们欣赏和评判艺术的能力依然存在。我们认为,LLM卓越的写作能力,表现在某些任务上超越人类标注员,其根本驱动力是RLHF,正如Gilardi等人【Gilardi等人,ChatGPT outperforms crowd-workers for text-annotation tasks,2023】和Huang等人【Huang等人,Is chatgpt better than human annotators? potential and limitations of chatgpt in explaining implicit hate speech,2023】所记录的那样。监督数据可能不再是黄金标准,这一不断变化的形势迫使我们重新评估“监督”的概念。

Figure 20: Llama 2-Chat从SFT模型到RLHF的渐进版本的分布变化。
Figure 20: Llama 2-Chat从SFT模型到RLHF的渐进版本的分布变化。

上下文中的温度重缩放。我们观察到了一个与RLHF相关的有趣现象,据我们所知,此特性之前未被报道过:温度根据上下文进行动态重缩放。如图8所示,温度似乎受到RLHF的影响。然而,有趣的是,我们的研究还发现,这种变化并非均匀地应用于所有提示,如图21所示。例如,对于与创造性相关的提示,如“写一首诗”,温度的升高在我们的不同RLHF迭代中持续产生多样性。这可以从自BLEU斜率中观察到,其模式与SFT模型的模式相似。另一方面,对于基于事实信息的提示,如“……的首都是什么?”,自BLEU斜率随时间递减。这种模式表明,尽管温度升高,模型学会在事实性提示上持续提供相同的答案。

Figure 21: RLHF学习根据提示类型调整温度。较低的Self-BLEU对应更高的多样性:RLHF消除了对事实性提示响应的多样性,但在生成创意性提示的响应时保留了更多的多样性。我们用10个创意和10个事实性指令提示每个模型,并采样25个响应。对温度T ∈ {k/10 | k ∈ N : 1 ≤ k ≤ 15}重复此过程。对于每个25个响应,我们计算Self-BLEU指标,并报告其均值和标准差与温度的关系。
Figure 21: RLHF学习根据提示类型调整温度。较低的Self-BLEU对应更高的多样性:RLHF消除了对事实性提示响应的多样性,但在生成创意性提示的响应时保留了更多的多样性。我们用10个创意和10个事实性指令提示每个模型,并采样25个响应。对温度T ∈ {k/10 | k ∈ N : 1 ≤ k ≤ 15}重复此过程。对于每个25个响应,我们计算Self-BLEU指标,并报告其均值和标准差与温度的关系。

Llama 2-Chat的时间感知。我们的模型展现了令人印象深刻的泛化能力,如图22所示。我们手动测试了数十个例子,并一致地观察到,即使在提供极少数据的情况下,我们的模型也表现出强大的以时间方式组织其知识的能力。为了向Llama 2-Chat灌输时间概念,我们收集了1000个与特定日期相关的SFT示例。这些示例包括诸如“巴拉克·奥巴马成为总统多久了?”之类的问题。每个问题都与两个关键元数据相关联:提问的日期——这会影响回答——以及事件日期,即在该时间点之前问题无意义。这一观察表明,LLM对时间概念的内化程度比之前假设的要高,尽管它们的训练完全基于下一个词元预测和不考虑时间顺序随机打乱的数据。

Figure 22: 时间感知——我们的模型泛化时间概念的例证,仅使用了1000个以时间为重点的SFT数据。
Figure 22: 时间感知——我们的模型泛化时间概念的例证,仅使用了1000个以时间为重点的SFT数据。

工具使用的涌现。LLM与工具的集成是一个日益增长的研究领域,正如Mialon等人【Mialon等人,Augmented language models: a survey,2023】所强调的。Toolformer【Schick等人,Toolformer: Language models can teach themselves to use tools,2023】中设计的方法需要采样数百万条轨迹,并为每个工具制定少量示例。然而,这种技术仅在每个示例中使用单个工具,并且无法扩展到工具的序列使用。OpenAI插件的发布在学术界引起了广泛讨论,引发了诸如:我们如何有效地教模型使用工具?或者这个过程是否需要大量数据集?我们的实验表明,工具使用可以从对齐中以零样本的方式自发涌现。尽管我们从未明确标注工具使用,但图23展示了一个例子,其中模型在零样本情境下展示了使用一系列工具的能力。此外,我们的研究扩展到评估带计算器的Llama 2-Chat。这项特定实验的结果记录在表15中。LLM的工具使用虽然令人兴奋,但也可能引起一些安全问题。我们鼓励社区在这一领域进行更多的研究和红队演练。

Table 15: 使用工具的性能。在Toolformer中使用的数学数据集上的评估。对于不同的基线,我们报告了Schick等人 (2023) 的分数。
Table 15: 使用工具的性能。在Toolformer中使用的数学数据集上的评估。对于不同的基线,我们报告了Schick等人 (2023) 的分数。

Figure 23: 工具使用涌现。Llama 2-Chat能够仅通过语义理解工具的应用和API参数,尽管从未被训练过使用工具。
Figure 23: 工具使用涌现。Llama 2-Chat能够仅通过语义理解工具的应用和API参数,尽管从未被训练过使用工具。


A2 方法细节

2 预训练

预训练方法改进。为了创建新的Llama 2模型系列,我们从Touvron等人【Touvron等人,Llama: Open and efficient foundation language models,2023】描述的预训练方法开始,使用了一个优化的自回归Transformer,但做了一些改变以提高性能。具体来说,我们执行了更稳健的数据清洗,更新了我们的数据混合比例,训练了多40%的总词元,将上下文长度加倍,并使用分组查询注意力(GQA)来提高我们较大模型的推理可扩展性。表1比较了新的Llama 2模型与Llama 1模型的属性。

2.1 预训练数据

数据来源与处理。我们的训练语料库包含来自公开可用来源的新数据混合,不包括来自Meta产品或服务的数据。我们努力从某些已知包含大量私人个体个人信息的网站中移除数据。我们在2万亿词元的数据上进行训练,因为这提供了一个良好的性能-成本权衡,同时对最真实可靠的来源进行上采样,以增加知识并抑制幻觉。

数据调查。我们进行了各种预训练数据调查,以便用户能更好地了解我们模型的潜在能力和局限性;结果可在4.1节找到。

2.2 训练细节

模型架构与超参数。我们采纳了Llama 1的大部分预训练设置和模型架构。我们使用标准的Transformer架构【Vaswani等人,Attention is all you need,2017】,使用RMSNorm进行预归一化【Zhang和Sennrich,Root mean square layer normalization,2019】,使用SwiGLU激活函数【Shazeer,Glu variants improve transformer,2020】,以及旋转位置嵌入(RoPE)【Su等人,Roformer: Enhanced transformer with rotary position embedding,2022】。与Llama 1相比,主要的架构差异包括增加了上下文长度和分组查询注意力(GQA)。我们在附录A.2.1节中详细说明了这些差异,并附有消融实验以证明其重要性。

超参数设置。我们使用AdamW优化器【Loshchilov和Hutter,Decoupled weight decay regularization,2017】进行训练,其中$β_1 = 0.9$, $β_2 = 0.95$, eps = $10^{-5}$。我们使用余弦学习率调度,预热2000步,并将最终学习率衰减至峰值学习率的10%。我们使用0.1的权重衰减和1.0的梯度裁剪。图5(a)显示了使用这些超参数的Llama 2的训练损失。

Table 1: Llama 2模型系列。词元计数仅指预训练数据。所有模型均以4M词元的全局批量大小进行训练。较大的模型(34B和70B)使用分组查询注意力(GQA)以提高推理可扩展性。
Table 1: Llama 2模型系列。词元计数仅指预训练数据。所有模型均以4M词元的全局批量大小进行训练。较大的模型(34B和70B)使用分组查询注意力(GQA)以提高推理可扩展性。

Figure 5: Llama 2模型的训练损失。我们比较了Llama 2模型系列的训练损失。我们观察到,在2T词元上预训练后,模型仍未显示任何饱和迹象。
Figure 5: Llama 2模型的训练损失。我们比较了Llama 2模型系列的训练损失。我们观察到,在2T词元上预训练后,模型仍未显示任何饱和迹象。

分词器。我们使用与Llama 1相同的分词器;它采用字节对编码(BPE)算法【Sennrich等人,Neural machine translation of rare words with subword units,2016】,使用SentencePiece【Kudo和Richardson,Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing,2018】的实现。与Llama 1一样,我们将所有数字拆分为单个数字,并使用字节来分解未知的UTF-8字符。总词汇量为32k个词元。

2.2.1 训练硬件与碳足迹

训练硬件配置。我们预训练模型使用了Meta的研究超级集群(RSC)【Lee和Sengupta,Introducing the ai research supercluster — meta’s cutting-edge ai supercomputer for ai research,2022】以及内部生产集群。两个集群都使用NVIDIA A100。这两个集群之间有两个关键区别,首先是可用的互连类型:RSC使用NVIDIA Quantum InfiniBand,而我们的生产集群配备了基于商用以太网交换机的RoCE(RDMA over converged Ethernet)解决方案。这两种解决方案都互连200 Gbps的端点。第二个区别是每个GPU的功耗上限——RSC使用400W,而我们的生产集群使用350W。通过这种双集群设置,我们能够比较这些不同类型的互连对大规模训练的适用性。RoCE(这是一种更经济实惠的商业互连网络)的扩展性几乎可以与昂贵的Infiniband相媲美,最高可达2000个GPU,这使得预训练更加民主化。

Table 2: 预训练期间的二氧化碳排放量。时间:训练每个模型所需的总GPU小时。功耗:所用GPU每个设备调整功耗效率后的峰值功率容量。100%的排放被Meta的可持续发展项目直接抵消,并且因为我们公开发布这些模型,其他人无需再承担预训练成本。
Table 2: 预训练期间的二氧化碳排放量。时间:训练每个模型所需的总GPU小时。功耗:所用GPU每个设备调整功耗效率后的峰值功率容量。100%的排放被Meta的可持续发展项目直接抵消,并且因为我们公开发布这些模型,其他人无需再承担预训练成本。

预训练的碳足迹。我们遵循先前的研究【Bender等人,On the dangers of stochastic parrots: Can language models be too big?,2021a;Patterson等人,Carbon emissions and large neural network training,2021;Wu等人,Sustainable ai: Environmental implications, challenges and opportunities,2022;Dodge等人,Measuring the carbon intensity of ai in cloud instances,2022】,并使用GPU设备的功耗估计和碳效率,来计算Llama 2模型预训练产生的碳排放。GPU的实际功耗取决于其利用率,并且可能与我们用作GPU功耗估计的热设计功率(TDP)有所不同。需要注意的是,我们的计算没有考虑其他电力需求,例如来自互连或非GPU服务器的功耗,也没有考虑数据中心冷却系统的功耗。此外,如Gupta等人【Gupta等人,Act: designing sustainable computer systems with an architectural carbon modeling tool,2022a,b】所建议,与AI硬件(如GPU)生产相关的碳排放可能会增加总碳足迹。表2总结了预训练Llama 2模型系列的碳排放。在A100-80GB(TDP为400W或350W)类型的硬件上,总共进行了330万GPU小时的计算。我们估计训练的总排放量为539吨二氧化碳当量,其中100%被Meta的可持续发展计划直接抵消。我们的开放发布策略也意味着其他公司将不必承担这些预训练成本,从而节省更多的全球资源。

2.3 Llama 2 预训练模型评估

开源模型对比。在本节中,我们报告了Llama 1和Llama 2基础模型、MosaicML预训练Transformer(MPT)模型和Falcon【Almazrouei等人,Falcon-40B: an open large language model with state-of-the-art performance,2023】模型在标准学术基准测试上的结果。对于所有评估,我们使用我们内部的评估库。我们在内部复现MPT和Falcon模型的结果。对于这些模型,我们总是选择我们的评估框架和任何公开报告结果中的最佳分数。在表3中,我们总结了一系列流行基准测试的总体性能。请注意,安全性基准测试在4.1节中分享。基准测试分为以下几类。所有单个基准测试的结果可在附录A.2.2节中找到。
* 代码:我们报告了我们的模型在HumanEval【Chen等人,Evaluating large language models trained on code,2021】和MBPP【Austin等人,Program synthesis with large language models,2021】上的平均pass@1分数。
* 常识推理:我们报告了PIQA【Bisk等人,Piqa: Reasoning about physical commonsense in natural language,2020】、SIQA【Sap等人,Socialiqa: Commonsense reasoning about social interactions,2019】、HellaSwag【Zellers等人,Hellaswag: Can a machine really finish your sentence?,2019a】、WinoGrande【Sakaguchi等人,Winogrande: An adversarial winograd schema challenge at scale,2021】、ARC easy和challenge【Clark等人,Think you have solved question answering? try arc, the ai2 reasoning challenge,2018】、OpenBookQA【Mihaylov等人,Can a suit of armor conduct electricity? a new dataset for open book question answering,2018】和CommonsenseQA【Talmor等人,Commonsenseqa: A question answering challenge targeting commonsense knowledge,2018】的平均分。我们报告了CommonSenseQA的7-shot结果和所有其他基准的0-shot结果。
* 世界知识:我们评估了在NaturalQuestions【Kwiatkowski等人,Natural questions: a benchmark for question answering research,2019】和TriviaQA【Joshi等人,Triviaqa: A large scale distantly supervised challenge dataset for reading comprehension,2017】上的5-shot性能,并报告了平均分。
* 阅读理解:对于阅读理解,我们报告了在SQuAD【Rajpurkar等人,Know what you don’t know: Unanswerable questions for squad,2018】、QuAC【Choi等人,Quac: Question answering in context,2018】和BoolQ【Clark等人,Boolq: Exploring the surprising difficulty of natural yes/no questions,2019】上的0-shot平均分。
* 数学:我们报告了GSM8K(8 shot)【Cobbe等人,Training verifiers to solve math word problems,2021】和MATH(4 shot)【Hendrycks等人,Measuring mathematical problem solving with the math dataset,2021】基准测试在top 1的平均分。
* 流行聚合基准:我们报告了MMLU(5 shot)【Hendrycks等人,Measuring massive multitask language understanding,2020】、Big Bench Hard(BBH)(3 shot)【Suzgun等人,Challenging big-bench tasks and whether chain-ofthought can solve them,2022】和AGI Eval(3-5 shot)【Zhong等人,Agieval: A human-centric benchmark for evaluating foundation models,2023】的总体结果。对于AGI Eval,我们只评估了英语任务并报告了平均分。

评估结果分析。如表3所示,Llama 2模型优于Llama 1模型。特别是,Llama 2 70B在MMLU和BBH上的结果分别比Llama 1 65B提高了约5和约8个点。Llama 2 7B和30B模型在除代码基准外的所有类别上都优于相应大小的MPT模型。对于Falcon模型,Llama 2 7B和34B在所有类别的基准上都优于Falcon 7B和40B模型。此外,Llama 2 70B模型优于所有开源模型。

Table 3: 在分组学术基准上的总体性能与开源基础模型的比较
Table 3: 在分组学术基准上的总体性能与开源基础模型的比较

闭源模型对比。除了开源模型,我们还将Llama 2 70B的结果与闭源模型进行了比较。如表4所示,Llama 2 70B在MMLU和GSM8K上接近GPT-3.5【OpenAI,GPT-4 technical report,2023】,但在编码基准上存在显著差距。Llama 2 70B的结果在几乎所有基准上都与PaLM (540B)【Chowdhery等人,Palm: Scaling language modeling with pathways,2022】持平或更好。Llama 2 70B与GPT-4和PaLM-2-L之间仍然存在很大的性能差距。

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

Table 4: 在学术基准上与闭源模型的比较。GPT-3.5和GPT-4的结果来自OpenAI (2023)。PaLM模型的结果来自Chowdhery等人(2022)。PaLM-2-L的结果来自Anil等人(2023)。
Table 4: 在学术基准上与闭源模型的比较。GPT-3.5和GPT-4的结果来自OpenAI (2023)。PaLM模型的结果来自Chowdhery等人(2022)。PaLM-2-L的结果来自Anil等人(2023)。

3 微调

Llama 2-Chat的微调过程。Llama 2-Chat是数月研究和对齐技术迭代应用的结果,包括指令调优和RLHF,需要大量的计算和标注资源。在本节中,我们报告了我们使用监督微调(3.1节)以及初始和迭代奖励建模(3.2.2节)和RLHF(3.2.3节)的实验和发现。我们还分享了一种新技术——“幽灵注意力”(Ghost Attention,GAtt),我们发现它有助于在多轮对话中控制对话流程(3.3节)。有关微调模型的安全评估,请参见4.2节。

3.1 监督微调 (SFT)

SFT数据收集与质量。为了启动项目,我们以公开可用的指令调优数据【Chung等人,Scaling instruction-finetuned language models,2022】开始SFT阶段,这在Touvron等人【Touvron等人,Llama: Open and efficient foundation language models,2023】中也曾使用过。第三方SFT数据来源众多,但我们发现其中许多数据的多样性和质量不足——尤其是在将LLM对齐到对话式指令方面。因此,我们首先专注于收集数千个高质量的SFT数据示例,如表5所示。通过搁置数百万来自第三方数据集的示例,并使用我们自己供应商标注的更少但更高质量的示例,我们的结果显著改善。这些发现与Zhou等人【Zhou等人,Lima: Less is more for alignment,2023】的研究精神相似,后者也发现有限的干净指令调优数据足以达到高质量水平。我们发现,大约数万个SFT标注就足以获得高质量的结果。在收集了总共27,540个标注后,我们停止了SFT标注。请注意,我们没有包含任何Meta用户数据。

数据质量验证。我们还观察到,不同的标注平台和供应商可能导致下游模型性能显著不同,这凸显了即使在使用供应商获取标注时进行数据检查的重要性。为了验证我们的数据质量,我们仔细检查了一组180个示例,通过手动审查比较了人类提供的标注与模型生成的样本。令人惊讶的是,我们发现从最终SFT模型中抽样的输出常常能与人类标注员手写的SFT数据相媲美,这表明我们可以重新调整优先级,将更多的标注精力投入到基于偏好的RLHF标注上。

SFT训练细节。对于监督微调,我们使用余弦学习率调度,初始学习率为$2 \times 10^{-5}$,权重衰减为0.1,批量大小为64,序列长度为4096个词元。在微调过程中,每个样本由一个提示和一个答案组成。为确保模型序列长度被正确填充,我们连接训练集中的所有提示和答案。一个特殊标记被用来分隔提示和答案部分。我们使用自回归目标,并对用户提示的词元损失置零,因此,我们只在答案词元上进行反向传播。最后,我们对模型进行2个周期的微调。

Table 5: SFT标注示例——一个有助性(上)和安全性(下)的SFT标注示例,其中标注员编写了提示及其答案。
Table 5: SFT标注示例——一个有助性(上)和安全性(下)的SFT标注示例,其中标注员编写了提示及其答案。

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

RLHF概述。RLHF是一种模型训练程序,应用于经过微调的语言模型,以进一步使模型行为与人类偏好和指令遵循对齐。我们收集代表经验性采样的人类偏好数据,其中人类标注员选择他们更偏好的两个模型输出中的哪一个。这种人类反馈随后被用来训练一个奖励模型,该模型学习人类标注员偏好中的模式,然后可以自动化偏好决策。

3.2.1 人类偏好数据收集

数据收集协议。接下来,我们为奖励建模收集人类偏好数据。我们选择二元比较协议而非其他方案,主要是因为它能让我们最大化收集到的提示的多样性。不过,其他策略也值得考虑,我们留待未来工作。我们的标注流程如下:我们要求标注员首先写一个提示,然后根据提供的标准在两个抽样的模型响应之间做出选择。为了最大化多样性,给定提示的两个响应是从两个不同的模型变体中抽样的,并改变温度超参数。除了让参与者做出强制选择外,我们还要求标注员标记他们对自己选择的响应相对于替代方案的偏好程度:他们的选择是显著更好、更好、略好,还是几乎没有差别/不确定。

数据收集重点。对于我们的偏好标注收集,我们专注于有助性(helpfulness)和安全性(safety)。有助性指的是Llama 2-Chat响应在多大程度上满足了用户的请求并提供了所需信息;安全性指的是Llama 2-Chat的响应是否不安全,例如,“提供制造炸弹的详细说明”可能被认为是有助性的,但根据我们的安全指南是不安全的。将两者分开使我们能够为每个方面应用特定的指南,并更好地指导标注员;例如,我们的安全标注提供了专注于对抗性提示的说明,以及其他指导。

安全标注的特殊性。除了标注指南的差异,我们还在安全阶段收集了一个安全标签。这个额外的信息将模型响应分为三类:1) 偏好的响应是安全的,而另一个响应不安全;2) 两个响应都是安全的;3) 两个响应都是不安全的,安全数据集中分别有18%、47%和35%属于这三类。我们不包括任何选择的响应不安全而另一个响应安全的例子,因为我们相信更安全的响应也会被人类认为是更好/更偏好的。安全指南和关于安全标注的更详细信息可以在4.2.1节找到。

迭代数据收集。人类标注每周分批收集。随着我们收集到更多的偏好数据,我们的奖励模型得到改善,我们能够为Llama 2-Chat训练出越来越好的版本(见第5节图20的结果)。Llama 2-Chat的改进也改变了模型的数据分布。由于奖励模型的准确性如果不接触到这个新的样本分布,即来自超专业化(hyper-specialization)【Scialom等人,Coldgans: Taming language gans with cautious sampling strategies,2020b】,可能会迅速下降,因此在新的Llama 2-Chat调优迭代之前,使用最新的Llama 2-Chat迭代来收集新的偏好数据非常重要。这一步骤有助于保持奖励模型在分布上,并为最新的模型维持准确的奖励。

数据统计。在表6中,我们报告了我们随时间收集的奖励建模数据的统计数据,并与多个开源偏好数据集进行了比较,包括Anthropic Helpful and Harmless【Bai等人,Training a helpful and harmless assistant with reinforcement learning from human feedback,2022a】、OpenAI Summarize【Stiennon等人,Learning to summarize from human feedback,2020】、OpenAI WebGPT【Nakano等人,Webgpt: Browser-assisted question-answering with human feedback,2021】、StackExchange【Lambert等人,Huggingface h4 stack exchange preference dataset,2023】、Stanford Human Preferences【Ethayarajh等人,Understanding dataset difficulty with V-usable information,2022】和Synthetic GPT-J (Havrilla)。我们收集了一个大型数据集,包含超过100万个基于人类应用我们指定指南的二元比较,我们称之为Meta奖励建模数据。请注意,提示和答案中的词元数量取决于文本领域。摘要和在线论坛数据通常有更长的提示,而对话式提示通常更短。与现有的开源数据集相比,我们的偏好数据具有更多的对话轮次,并且平均更长。

3.2.2 奖励建模

奖励模型的功能与架构。奖励模型接收模型响应及其对应的提示(包括之前轮次的上下文)作为输入,并输出一个标量分数,以指示模型生成的质量(例如,有助性和安全性)。利用这样的响应分数作为奖励,我们可以在RLHF期间优化Llama 2-Chat,以实现更好的人类偏好对齐和更高的有助性和安全性。其他人发现有助性和安全性有时会相互权衡【Bai等人,Training a helpful and harmless assistant with reinforcement learning from human feedback,2022a】,这可能使得单个奖励模型难以在两者上都表现良好。为了解决这个问题,我们训练了两个独立的奖励模型,一个优化有助性(称为有助性RM),另一个优化安全性(安全性RM)。我们从预训练的聊天模型检查点初始化我们的奖励模型,因为这确保了两个模型都能从预训练中获得的知识中受益。简而言之,奖励模型“知道”聊天模型知道什么。这防止了例如两个模型信息不匹配的情况,这可能导致偏向于幻觉。模型架构和超参数与预训练语言模型的相同,只是用于下一词元预测的分类头被替换为用于输出标量奖励的回归头。

Table 6: 用于奖励建模的人类偏好数据统计。我们列出了用于奖励建模的开源和内部收集的人类偏好数据。注意,一个二元人类偏好比较包含2个响应(选择的和拒绝的),它们共享相同的提示(和之前的对话)。每个例子包括一个提示(如果可用,包括之前的对话)和一个响应,这是奖励模型的输入。我们报告了比较次数、每个对话的平均轮次数、每个例子的平均词元数、每个提示的平均词元数和每个响应的平均词元数。关于Meta有助性和安全性数据的每批次更多细节可以在附录A.3.1中找到。
Table 6: 用于奖励建模的人类偏好数据统计。我们列出了用于奖励建模的开源和内部收集的人类偏好数据。注意,一个二元人类偏好比较包含2个响应(选择的和拒绝的),它们共享相同的提示(和之前的对话)。每个例子包括一个提示(如果可用,包括之前的对话)和一个响应,这是奖励模型的输入。我们报告了比较次数、每个对话的平均轮次数、每个例子的平均词元数、每个提示的平均词元数和每个响应的平均词元数。关于Meta有助性和安全性数据的每批次更多细节可以在附录A.3.1中找到。

训练目标。为了训练奖励模型,我们将收集的成对人类偏好数据转换为二元排序标签格式(即,选择的 & 拒绝的),并强制选择的响应得分高于其对应项。我们使用了与Ouyang等人【Ouyang等人,Training language models to follow instructions with human feedback,2022】一致的二元排序损失:
$L_{ranking} = -log(\sigma(r_{\theta}(x, y_c) - r_{\theta}(x, y_r)))$
其中,$r_{\theta}(x, y)$ 是模型权重为$\theta$时,对提示$x$和补全$y$的标量分数输出。$y_c$是标注者选择的偏好响应,$y_r$是拒绝的对应项。

损失函数的改进。在此二元排序损失的基础上,我们进一步对其进行修改,以分别获得更好的有助性和安全性奖励模型。鉴于我们的偏好评级被分解为四个等级(例如,显著更好),如3.2.1节所述,利用这些信息来明确教导奖励模型为差异更大的生成分配更悬殊的分数可能是有用的。为此,我们在损失函数中进一步增加了一个边际(margin)分量:
$L_{ranking} = -log(\sigma(r_{\theta}(x, y_c) - r_{\theta}(x, y_r) - m(r)))$
其中,边际$m(r)$是偏好评级的离散函数。自然地,我们对响应差异明显的对使用较大的边际,对响应相似的对使用较小的边际(见表27)。我们发现这个边际分量可以提高有助性奖励模型的准确性,尤其是在两个响应更易于区分的样本上。更详细的消融和分析可以在附录A.3.3的表28中找到。

数据构成。我们将新收集的数据与现有的开源偏好数据集结合起来,形成一个更大的训练数据集。最初,在我们收集偏好标注数据期间,开源数据集被用来引导我们的奖励模型。我们注意到,在本研究的RLHF背景下,奖励信号的作用是学习人类对Llama 2-Chat输出的偏好,而不是任何模型输出。然而,在我们的实验中,我们没有观察到开源偏好数据集的负迁移。因此,我们决定将它们保留在我们的数据混合中,因为它们可以使奖励模型具有更好的泛化能力,并防止奖励“黑客”(reward hacking),即Llama 2-Chat利用我们奖励的某些弱点,从而在表现不佳的情况下人为地提高分数。由于训练数据来自不同来源,我们为有助性和安全性奖励模型试验了不同的混合配方,以确定最佳设置。经过广泛的实验,有助性奖励模型最终在所有Meta有助性数据上进行训练,并结合了从Meta安全性和开源数据集中均匀采样的等量剩余数据。Meta安全性奖励模型在所有Meta安全性和Anthropic无害数据上进行训练,并以90/10的比例混合Meta有助性和开源有助性数据。我们发现,包含10%有助性数据的设置对于在选择和拒绝的响应都被认为是安全的样本上的准确性尤其有益。

训练细节。我们在训练数据上训练一个周期。在早期的实验中,我们发现训练时间过长会导致过拟合。我们使用与基础模型相同的优化器参数。70B参数的Llama 2-Chat的最大学习率为$5 \times 10^{-6}$,其余模型的最大学习率为$1 \times 10^{-5}$。学习率采用余弦学习率调度递减,降至最大学习率的10%。我们使用总步数的3%进行预热,最少5步。有效批量大小固定为512对,即每批1024行。

Table 7: 奖励模型结果。我们最终的有助性和安全性奖励模型在一组多样化的人类偏好基准上的性能。请注意,我们的模型是在我们收集的数据上进行微调的,而我们报告的其他基线则不是。
Table 7: 奖励模型结果。我们最终的有助性和安全性奖励模型在一组多样化的人类偏好基准上的性能。请注意,我们的模型是在我们收集的数据上进行微调的,而我们报告的其他基线则不是。

Table 8: 按偏好评级的细粒度奖励模型准确率。我们报告了有助性和安全性奖励模型在Meta有助性和安全性测试集上每个偏好评级的准确率。奖励模型在更独特的响应(例如,显著更好)上显示出更高的准确率,而在相似的响应(例如,几乎没有差别)上准确率较低。
Table 8: 按偏好评级的细粒度奖励模型准确率。我们报告了有助性和安全性奖励模型在Meta有助性和安全性测试集上每个偏好评级的准确率。奖励模型在更独特的响应(例如,显著更好)上显示出更高的准确率,而在相似的响应(例如,几乎没有差别)上准确率较低。

奖励模型结果。在每一批用于奖励建模的人类偏好标注中,我们都保留了1000个例子作为测试集来评估我们的模型。我们将相应测试集的所有提示的并集分别称为“Meta有助性”和“Meta安全性”。作为参考点,我们还评估了其他公开可用的替代方案作为基线:基于FLAN-T5-xl的SteamSHP-XL【Ethayarajh等人,Understanding dataset difficulty with V-usable information,2022】,基于DeBERTa V3 Large【He等人,Deberta: Decoding-enhanced bert with disentangled attention,2020】的Open Assistant【Köpf等人,Openassistant conversations– democratizing large language model alignment,2023】奖励模型,以及通过OpenAI的API访问的GPT4。请注意,在推理时,与训练时不同,所有奖励模型都可以为单个输出预测一个标量,而无需访问其配对的输出。对于GPT-4,我们使用零样本问题“在A和B之间选择最佳答案”进行提示,其中A和B是用于比较的两个响应。我们在表7中以准确率的形式报告了结果。正如预期的那样,我们自己的奖励模型在我们基于Llama 2-Chat收集的内部测试集上表现最好,有助性奖励模型在Meta有助性测试集上表现最佳,同样,安全性奖励模型在Meta安全性测试集上表现最佳。总的来说,我们的奖励模型优于所有基线,包括GPT-4。有趣的是,GPT-4的表现优于其他非Meta奖励模型,尽管它没有直接训练或专门针对此奖励建模任务。

领域专业化的优势。有助性和安全性模型在各自的领域表现最佳,这可能是由于两个目标之间的张力(即,尽可能有助益与在必要时拒绝不安全的提示),这可能会在训练期间混淆奖励模型。为了让单个模型在两个维度上都表现良好,它不仅需要学会在给定提示的情况下选择更好的响应,还需要区分对抗性提示和安全提示。因此,优化两个独立的模型简化了奖励建模任务。关于安全性和有助性之间张力的更详细分析可以在附录A.4.1中找到。

不同偏好评级下的准确率。当我们在表8中按偏好评级对分数进行分组时,我们可以看到“显著更好”测试集的准确率更高,并且随着比较对变得更相似(例如,“略好”)而逐渐下降。可以预料,当在两个相似的模型响应之间做出决定时,学习建模人类偏好变得具有挑战性,这是由于标注者的主观性以及他们依赖于可能区分响应的细微细节。我们强调,在更独特的响应上的准确率对于提高Llama 2-Chat的性能至关重要。在更独特的响应对上,人类偏好标注的一致性率也高于相似的对。

Figure 6: 奖励模型的扩展趋势。更多的数据和更大尺寸的模型通常能提高准确性,而且我们的模型似乎尚未从训练数据中学习饱和。
Figure 6: 奖励模型的扩展趋势。更多的数据和更大尺寸的模型通常能提高准确性,而且我们的模型似乎尚未从训练数据中学习饱和。

扩展趋势。我们研究了奖励模型在数据和模型大小方面的扩展趋势,通过在每周收集的越来越多的奖励模型数据上微调不同大小的模型(关于每批数据量的详细信息见表26)。图6报告了这些趋势,显示了预期的结果,即更大的模型在相似数据量下获得更高的性能。更重要的是,鉴于用于训练的现有数据标注量,扩展性能尚未达到平台期,这是一个信号,表明通过更多的标注还有改进的空间。我们注意到,奖励模型的准确性是Llama 2-Chat最终性能最重要的代理之一。虽然全面评估生成模型的最佳实践是一个开放的研究问题,但奖励的排序任务没有歧义。因此,在其他所有条件相同的情况下,奖励模型的改进可以直接转化为Llama 2-Chat的改进。

3.2.3 迭代微调

迭代训练策略。随着我们收到更多批次的人类偏好数据标注,我们能够训练出更好的奖励模型并收集更多的提示。因此,我们为RLHF模型训练了连续的版本,这里称为RLHF-V1,...,RLHF-V5。

RLHF算法选择。我们用两种主要算法探索了RLHF微调:
* 近端策略优化(PPO)【Schulman等人,Proximal policy optimization algorithms,2017】,这是RLHF文献中的标准。
* 拒绝采样微调。我们从模型中采样K个输出,并用我们的奖励选择最佳候选者,这与Bai等人【Bai等人,Constitutional ai: Harmlessness from ai feedback,2022b】的做法一致。Deng等人【Deng等人,Residual energy-based models for text generation,2019】也提出了针对LLM的相同重排序策略,其中奖励被看作是能量函数。这里,我们更进一步,使用选择的输出进行梯度更新。对于每个提示,获得最高奖励分数的样本被认为是新的黄金标准。与Scialom等人【Scialom等人,Discriminative adversarial search for abstractive summarization,2020a】类似,我们然后在新的排名样本集上微调我们的模型,从而强化奖励。

两种算法的差异。这两种RL算法主要在以下方面有所不同:
* 广度 — 在拒绝采样中,模型为给定的提示探索K个样本,而PPO只进行一次生成。
* 深度 — 在PPO中,训练时在步骤t的样本是上一步梯度更新后t-1时更新的模型策略的函数。在拒绝采样微调中,我们根据我们模型的初始策略采样所有输出以收集新数据集,然后再应用类似于SFT的微调。然而,由于我们应用了迭代模型更新,两种RL算法之间的根本差异变得不那么明显。

算法的结合使用。在RLHF (V4)之前,我们仅使用拒绝采样微调,之后,我们按顺序结合了这两种方法,在再次采样之前,在得到的拒绝采样检查点之上应用PPO。

Figure 7: 在N个样本中(N∈[1, ..., 100])的最大和中位数奖励,在我们的训练提示集上取平均。最大值和中位数之间的差值可以解释为拒绝采样的潜在增益。
Figure 7: 在N个样本中(N∈[1, ..., 100])的最大和中位数奖励,在我们的训练提示集上取平均。最大值和中位数之间的差值可以解释为拒绝采样的潜在增益。

拒绝采样的实施。我们仅对我们最大的70B Llama 2-Chat进行拒绝采样。所有较小的模型都在从较大模型拒绝采样的数据上进行微调,从而将大模型的能力蒸馏到较小的模型中。我们把对这种蒸馏效果的进一步分析留作未来的工作。在每个迭代阶段,我们从最新的模型中为每个提示采样K个答案。我们根据实验时可用的最佳奖励模型对每个样本进行评分,然后为给定的提示选择最佳答案。在我们模型的早期版本中,直到RLHF V3,我们的方法是将答案选择仅限于从前一次迭代中收集的样本“袋子”中。例如,RLHF V3仅使用RLHF V2的样本进行训练。然而,尽管持续改进,这种方法导致了某些能力的退步。例如,通过定性分析发现,RLHF V3比以前的版本更难创作押韵的诗句,这表明进一步研究遗忘的原因和缓解措施【Kirkpatrick等人,Overcoming catastrophic forgetting in neural networks,2017;Nguyen等人,Toward understanding catastrophic forgetting in continual learning,22019;Ramasesh等人,Effect of scale on catastrophic forgetting in neural networks,2021】可能是一个富有成果的未来研究领域。

拒绝采样策略的改进。作为回应,在后续的迭代中,我们修改了我们的策略,整合了所有先前迭代中的表现最佳的样本,例如RLHF-V1和RLHF-V2中使用的样本。虽然我们没有提供具体的数据,但这一调整在性能上显示出相当大的提升,并有效解决了之前注意到的问题。这种缓解措施可以看作是与RL文献中Synnaeve等人【Synnaeve等人,Growing up together: Structured exploration for large action spaces,2019】和Vinyals等人【Vinyals等人,Grandmaster level in starcraft ii using multi-agent reinforcement learning,2019】的工作类似。我们在图7中说明了拒绝采样的好处。最大值和中位数曲线之间的差值可以解释为在最佳输出上进行微调的潜在增益。正如预期的那样,随着样本数量的增加,这个差值会增大,因为最大值增加(即,样本越多,生成良好轨迹的机会就越多),而中位数保持不变。探索与我们可以在样本中获得的最大奖励之间存在直接联系。温度参数对于探索也起着重要作用,因为更高的温度使我们能够采样更多样化的输出。

Figure 8: 在采样N个输出并用奖励模型对其进行评分时,温度对RLHF的影响。
Figure 8: 在采样N个输出并用奖励模型对其进行评分时,温度对RLHF的影响。

温度对RLHF的影响。在图8中,我们报告了Llama 2-Chat-SFT(左)和Llama 2-Chat-RLHF(右)在N个样本(N∈[1, ..., 100])中的最大奖励曲线,针对不同的温度。我们可以观察到,在迭代模型更新期间,最佳温度不是恒定的:RLHF对温度的重新缩放有直接影响。对于Llama 2-Chat-RLHF,在采样10到100个输出之间时的最佳温度是T∈[1.2, 1.3]。鉴于有限的计算预算,因此有必要逐步重新调整温度。请注意,这种温度重新缩放发生在每个模型的恒定步数内,并且在每个新的RLHF版本上总是从基础模型开始。

PPO的实施。我们遵循Stiennon等人【Stiennon等人,Learning to summarize from human feedback,2020】的RL方案进一步训练我们的语言模型,该方案使用奖励模型作为真实奖励函数(人类偏好)的估计,并使用预训练的语言模型作为要优化的策略。在此阶段,我们旨在优化以下目标:
$maximize_{\pi} E_{p\sim D, g\sim \pi(p)}[R(g|p)]$
我们通过从我们的数据集D中采样提示p和从策略π中采样生成g来迭代地改进策略,并使用PPO算法和损失函数来实现此目标。

最终奖励函数。我们在优化期间使用的最终奖励函数,
$R(g|p) = \tilde{R_c}(g|p) - \beta D_{KL}(\pi(g|p) || \pi_0(g|p))$
包含一个偏离原始策略$\pi_0$的惩罚项。正如在其他工作中观察到的【Stiennon等人,Learning to summarize from human feedback,2020;Ouyang等人,Training language models to follow instructions with human feedback,2022】,我们发现这种约束对于训练稳定性和减少奖励 hacking(即我们从奖励模型获得高分但从人类评估获得低分)是有用的。

安全与有助性奖励的结合。我们将$R_c$定义为安全($R_s$)和有助性($R_h$)奖励模型的分段组合。我们在数据集中标记了可能引发潜在不安全响应的提示,并优先考虑安全模型的得分。选择0.15的阈值用于过滤不安全的响应,这对应于在Meta安全测试集上评估的0.89的精确率和0.55的召回率。我们还发现,为了增加稳定性并与KL惩罚项($\beta$)适当平衡,对最终的线性分数进行白化(此处通过logit函数反转sigmoid)是很重要的。
$\tilde{R_c}(g|p) = logit(R_c(g|p))$
对于所有模型,我们使用AdamW优化器【Loshchilov和Hutter,Decoupled weight decay regularization,2017】,其中$β_1 = 0.9$, $β_2 = 0.95$, eps = $10^{-5}$。我们使用0.1的权重衰减,1.0的梯度裁剪,以及$10^{-6}$的恒定学习率。对于每个PPO迭代,我们使用512的批量大小,0.2的PPO裁剪阈值,64的小批量大小,并在每个小批量中进行一次梯度步骤。对于7B和13B模型,我们设置$\beta = 0.01$(KL惩罚),对于34B和70B模型,我们设置$\beta = 0.005$。

训练细节与优化。我们对所有模型训练200到400次迭代,并使用在留出提示上的评估进行早停。在70B模型上的每次PPO迭代平均耗时约330秒。为了用大批量大小快速训练,我们使用了FSDP【Zhao等人,Pytorch fsdp: Experiences on scaling fully sharded data parallel,2023】。这在使用O(1)前向或后向传播时是有效的,但在生成期间导致了很大的减速(约20倍),即使在使用大批量大小和KV缓存时也是如此。我们通过在生成前将模型权重整合到每个节点一次,然后在生成后释放内存,恢复训练循环的其余部分,从而缓解了这个问题。

3.3 用于多轮一致性的系统消息

问题。在对话设置中,一些指令应该适用于所有对话轮次,例如,简洁地回应,或者“扮演”某个公众人物。当我们向Llama 2-Chat提供这样的指令时,后续的响应应该始终遵守该约束。然而,我们最初的RLHF模型在几轮对话后往往会忘记初始指令,如图9(左)所示。

Figure 9: 多轮记忆问题(左)可以通过GAtt(右)得到改善。
Figure 9: 多轮记忆问题(左)可以通过GAtt(右)得到改善。

Ghost Attention (GAtt) 方法。为了解决这些限制,我们提出了一种名为“幽灵注意力”(Ghost Attention,GAtt)的非常简单的方法,其灵感来自上下文蒸馏(Context Distillation)【Bai等人,Constitutional ai: Harmlessness from ai feedback,2022b】,它通过修改微调数据来帮助注意力在多阶段过程中集中。GAtt能够在多轮对话中实现对话控制,如图9(右)所示。

GAtt实现。假设我们有一个两人(例如,用户和助手)之间的多轮对话数据集,消息列表为$[u_1, a_1, ..., u_n, a_n]$,其中$u_n$和$a_n$分别对应第n轮的用户和助手消息。然后,我们定义一个指令inst,该指令应在整个对话中得到遵守。例如,inst可以是“扮演”。然后,我们可以将此指令合地连接到对话的所有用户消息中。接下来,我们可以使用最新的RLHF模型从此合成数据中采样。我们现在有了一个上下文对话和用于微调模型的样本,这个过程类似于拒绝采样。我们可以在除第一轮外的所有轮次中删除指令,但这会在训练时导致系统消息(即最后一轮之前的所有中间助手消息)与我们的样本之间出现不匹配。为了解决这个问题,这可能会损害训练,我们简单地将所有先前轮次的词元(包括助手消息)的损失设置为0。

GAtt训练数据构建。对于训练指令,我们创建了一些合成约束进行采样:爱好(“你喜欢例如网球”)、语言(“用例如法语说”)或公众人物(“扮演例如拿破仑”)。为了获得爱好和公众人物的列表,我们要求Llama 2-Chat生成它,以避免指令和模型知识之间的不匹配(例如,要求模型扮演一个它在训练期间没有遇到过的人)。为了使指令更复杂和多样化,我们通过随机组合上述约束来构建最终指令。在为训练数据构建最终系统消息时,我们还在一半的时间里修改原始指令,使其不那么冗长,例如,“从现在开始总是扮演拿破仑” -> “人物:拿破仑”。这些步骤产生了一个SFT数据集,我们可以在其上微调Llama 2-Chat。

GAtt评估与注意力可视化。我们在RLHF V3之后应用了GAtt。我们报告了一项定量分析,表明GAtt在20轮以上都能保持一致,直到达到最大上下文长度(见附录A.3.5)。我们尝试在推理时设置GAtt训练中不存在的约束,例如“总是用俳句回答”,模型保持了一致性,如附录图28所示。为了说明GAtt在微调期间如何帮助重塑注意力,我们在图10中显示了模型的最大注意力激活。图中左侧对应系统消息(“扮演奥斯卡·王尔德”)。我们可以看到,与没有GAtt的模型(左)相比,配备GAtt的模型(右)在对话的更大部分中保持了对系统消息的较大注意力激活。

Figure 10: 有和没有GAtt的对话的注意力可视化。我们考虑了整个网络的最大激活,并将相邻的词元分组在一起。
Figure 10: 有和没有GAtt的对话的注意力可视化。我们考虑了整个网络的最大激活,并将相邻的词元分组在一起。

GAtt的局限与未来工作。尽管GAtt很有用,但目前的实现是基础的,对此技术的更多开发和迭代可能会进一步使模型受益。例如,我们可以通过在微调期间整合此类数据来教模型在对话过程中改变系统消息。

3.4 RLHF 结果

3.4.1 基于模型的评估

评估方法。评估LLM是一个具有挑战性的开放研究问题。人工评估虽然是黄金标准,但可能因各种人机交互(HCI)因素而变得复杂【Clark等人,All that’s ‘human’ is not gold: Evaluating human evaluation of generated text,2021;Gehrmann等人,Repairing the cracked foundation: A survey of obstacles in evaluation practices for generated text,2023】,并且并不总是可扩展的。因此,为了在每次从RLHF-V1到V5的迭代中从几个消融实验中选择表现最佳的模型,我们首先观察了最新奖励模型的奖励改进情况,以节省成本并加快迭代速度。我们后来通过人工评估验证了主要模型版本。

模型评估的稳健性。为了衡量我们奖励模型的稳健性,我们为有助性和安全性收集了一个提示测试集,并要求三位标注员根据一个7点李克特量表(越高越好)来判断答案的质量。我们观察到,我们的奖励模型总体上与我们的人类偏好标注校准得很好,如附录图29所示。这证实了将我们的奖励作为逐点度量的相关性,尽管它是用成对排序损失训练的。然而,正如古德哈特定律所言,当一个度量成为目标时,它就不再是一个好的度量。为了确保我们的度量不会偏离人类偏好,我们还使用了一个更通用的奖励模型,该模型在多样化的开源奖励建模数据集上训练。我们尚未观察到任何此类偏离,并假设迭代模型更新可能有助于防止这种情况发生。

Figure 11: Llama 2-Chat的演变。我们展示了在多次微调迭代后,Llama 2-Chat相对于ChatGPT的胜率百分比。左图:裁判是我们的奖励模型,可能偏向我们的模型;右图:裁判是GPT-4,应该更中立。
Figure 11: Llama 2-Chat的演变。我们展示了在多次微调迭代后,Llama 2-Chat相对于ChatGPT的胜率百分比。左图:裁判是我们的奖励模型,可能偏向我们的模型;右图:裁判是GPT-4,应该更中立。

模型进展的验证。作为最后的验证步骤,以确保我们的新模型与前一个模型之间没有退步,我们在下一次标注迭代期间同时使用两者进行采样。这使得能够在新的提示上进行“免费”的模型比较,并有助于增加采样时的多样性。

模型进展。图11报告了我们不同SFT和RLHF版本在安全性和有助性轴上的进展,由我们内部的安全性和有助性奖励模型衡量。在这组评估中,我们在RLHF-V3之后在两个轴上都优于ChatGPT(无害性和有助性>50%)。尽管前面提到了使用我们的奖励作为逐点度量的相关性,但可以说它可能偏向于Llama 2-Chat。因此,为了进行公平比较,我们额外使用GPT-4计算最终结果,以评估哪个生成更受青睐。ChatGPT和Llama 2-Chat的输出在GPT-4提示中出现的顺序是随机交换的,以避免任何偏见。正如预期的那样,支持Llama 2-Chat的胜率不那么显著,尽管我们最新的Llama 2-Chat获得了超过60%的胜率。提示分别对应于安全性和有助性的1586个和584个验证集。

3.4.2 人工评估

评估设置。人工评估通常被认为是评判自然语言生成模型(包括对话模型)的黄金标准。为了评估主要模型版本的质量,我们请人类评估员在有助性和安全性方面对它们进行评分。我们在超过4000个单轮和多轮提示上,将Llama 2-Chat模型与开源模型(Falcon、MPT MosaicML NLP Team等人【MosaicML NLP Team等人,Introducing mpt-7b: A new standard for open-source, commercially usable llms,2023】、Vicuna Chiang等人【Chiang等人,Vicuna: An open-source chatbot impressing gpt-4 with 90%* chatgpt quality,2023】)以及闭源模型(ChatGPT【OpenAI,GPT-4 technical report,2023】和PaLM Anil等人【Anil等人,Palm 2 technical report,2023】)进行了比较。对于ChatGPT,我们在所有生成中都使用了gpt-3.5-turbo-0301模型。对于PaLM,我们在所有生成中都使用了chat-bison-001模型。每个模型的人工评估最终提示数见表32。更多方法论细节见附录A.3.7节。以下部分显示了有助性结果;安全性结果在4.4节中呈现。

评估结果。如图12所示,Llama 2-Chat模型在单轮和多轮提示上都显著优于开源模型。特别是,Llama 2-Chat 7B模型在60%的提示上优于MPT-7B-chat。Llama 2-Chat 34B相对于同等大小的Vicuna-33B和Falcon 40B模型,总体胜率超过75%。最大的Llama 2-Chat模型与ChatGPT具有竞争力。Llama 2-Chat 70B模型相对于ChatGPT的胜率为36%,平局率为31.5%。在我们的提示集上,Llama 2-Chat 70B模型以较大百分比优于PaLM-bison聊天模型。更多结果和分析见A.3.7节。

Figure 12: Llama 2-Chat模型与开源和闭源模型在约4000个有助性提示上的人工评估结果,每个提示有三名评分员。
Figure 12: Llama 2-Chat模型与开源和闭源模型在约4000个有助性提示上的人工评估结果,每个提示有三名评分员。

评估者间信度 (IRR)。在我们的真人评估中,三位不同的标注员对每个模型生成比较提供了独立的评估。从数据质量的角度来看,高IRR分数(接近1.0)通常被认为是更好的,但背景很重要。像评估LLM生成内容整体帮助性这样的高度主观任务,通常会比更客观的标签任务有更低的IRR分数。这些情境的公开基准相对较少,所以我们觉得在这里分享我们的分析将有益于研究社区。我们使用Gwet的AC1/2统计量【Gwet,Computing inter-rater reliability and its variance in the presence of high agreement,2008;Gwet,Handbook of inter-rater reliability: The definitive guide to measuring the extent of agreement among raters,2014】来衡量评估者间信度(IRR),因为我们发现它是在不同测量场景下最稳定的指标。在我们分析中使用的7点李克特量表帮助性任务上,Gwet的AC2分数在0.37到0.55之间变化,具体取决于特定的模型比较。对于胜率相似的模型比较(如Llama 2-Chat-70B-chat vs. ChatGPT的比较),我们看到分数在该范围的较低端。对于有更明显赢家的模型比较(如Llama 2-Chat-34b-chat vs. Falcon-40b-instruct),我们看到分数在该范围的较高端。

人工评估的局限性。尽管我们的结果表明Llama 2-Chat在人工评估上与ChatGPT不相上下,但需要注意人工评估有几个局限性。
* 提示集规模:按照学术和研究标准,我们有一个包含4000个提示的大型提示集。然而,它并不能覆盖这些模型的真实世界使用情况,后者可能会覆盖数量大得多的用例。
* 提示多样性:提示的多样性可能是我们结果的另一个因素。例如,我们的提示集不包括任何与编码或推理相关的提示。
* 评估维度:我们只评估了多轮对话的最终生成。一个更有趣的评估可能是要求模型完成一个任务,并对在多轮中使用模型的整体体验进行评分。
* 主观性:生成模型的人工评估本质上是主观和嘈杂的。因此,在不同的提示集上或使用不同的指令进行评估可能会产生不同的结果。

4 安全性

在本节中,我们深入探讨了安全性测量和缓解这一重要主题。我们首先讨论了我们对预训练数据和预训练模型的安全性调查(4.1节)。接下来,我们描述了我们的安全对齐过程(4.2节),解释了我们如何收集与安全相关的标注并利用SFT和RLHF,并展示了实验结果。然后,我们讨论了我们为进一步理解和提高模型安全性而进行的红队演练(4.3节)。最后,我们展示了Llama 2-Chat的定量安全评估(4.4节)。我们还在附录的表52中分享了一个模型卡。

4.1 预训练中的安全性

负责任的预训练措施。我们对训练中使用的每个数据集都遵循了Meta标准的隐私和法律审查流程。我们没有在训练中使用任何Meta用户数据。我们排除了某些已知包含大量私人个体个人信息的网站数据。我们尽最大努力高效地训练我们的模型,以减少预训练的碳足迹(2.2.1节)。广泛分享我们的模型将减少其他人训练类似模型的需要。我们没有对数据集进行额外的过滤,以使Llama 2能更广泛地应用于各种任务(例如,它可以更好地用于仇恨言论分类),同时避免了因过度清洗数据而可能导致的意外人口统计学群体被抹去。重要的是,这使得Llama 2-Chat能够用更少的例子更有效地在安全调优中泛化【Welbl等人,Challenges in detoxifying language models,2021;Korbak等人,Pretraining language models with human preferences,2023;Xu等人,Recipes for safety in open-domain chatbots,2021】。因此,Llama 2模型应谨慎使用,并且只有在应用了显著的安全调优后才应部署。

人口统计学代表性:代词。模型生成中的偏见可能源于训练数据本身继承的偏见。例如,Bailey等人【Bailey等人,Based on billions of words on the internet, people= men,2022】表明,在海量文本语料库中,“人”的词语与“男性”的词语在语境上的相似性通常高于与“女性”的词语,而Ganesh等人【Ganesh等人,On the impact of machine learning randomness on group fairness,2023】则证明了模型在公平性指标上的表现高度依赖于模型如何训练代表性不足的人口统计学群体的数据。在我们的英语训练语料库中,我们计算了表9a中最常见的英语代词的频率。我们观察到,He代词在文档中的代表性通常高于She代词,这与在类似规模的模型预训练数据集中观察到的代词使用频率差异相呼应【Chowdhery等人,Palm: Scaling language modeling with pathways,2022】。这可能意味着模型在预训练期间学习到的关于提及She代词的语境较少,因此随后可能以比She代词更高的频率生成He代词。

人口统计学代表性:身份。我们还通过测量HolisticBias数据集【Smith等人,“i’m sorry to hear that”: Finding new biases in language models with a holistic descriptor dataset,2022】中人口统计学身份术语的使用率作为代理,来分析不同人口统计学群体在预训练数据中的代表性。我们计算了预训练语料库中每个描述符术语的频率。我们将描述符分为5个轴(宗教、性别与性、国籍、种族与民族、性取向),并在表9b中显示了每个轴的前5个术语。在前5个术语中,我们删除了一些术语,如“straight”、“white”和“black”,因为这些术语除了人口统计学提及之外还有频繁的其他用途(例如,作为基本颜色术语)。我们还对列表进行了去重,删除了一些在性别与性和性取向中都出现的术语。对于性别与性,虽然She代词在较少的文档中被提及,但术语“female”在更大比例的文档中出现。这可能意味着虽然关于She代词的语境较少,但关于“females”的评论更为普遍,可能反映了这些术语在语言标记性上的差异【Blodgett等人,Stereotyping norwegian salmon: An inventory of pitfalls in fairness benchmark datasets,2021】。对于性取向,前五个术语都与LGBTQ+身份有关。对于国籍、种族与民族以及宗教,我们观察到西方的偏斜【Bhatt等人,Re-contextualizing fairness in nlp: The case of india,2022】。例如,术语“American”在69.4%的引用中被提及,术语“European”比其他种族和民族更普遍,而“Christian”是代表最多的宗教,其次是“Catholic”和“Jewish”。

Table 9a: 包含性别代词和语法人称的文档百分比。75%的文档包含性别代词。在此子集中,28%的文档包含She代词。94%的文档包含代词。每个子组的完整代词列表见附录A.4.3。
Table 9a: 包含性别代词和语法人称的文档百分比。75%的文档包含性别代词。在此子集中,28%的文档包含She代词。94%的文档包含代词。每个子组的完整代词列表见附录A.4.3。

Table 9b: 每个人口统计轴下方的百分比代表提及该轴中任何描述符术语的文档百分比。每个描述符下方的百分比代表,在提及给定人口统计轴中描述符的文档中,提及此特定描述符的百分比。
Table 9b: 每个人口统计轴下方的百分比代表提及该轴中任何描述符术语的文档百分比。每个描述符下方的百分比代表,在提及给定人口统计轴中描述符的文档中,提及此特定描述符的百分比。

Figure 13: 预训练数据毒性。为了实现更好的下游泛化,我们选择不从预训练中清除有毒数据。HateBERT分类器将我们预训练语料库中约0.2%的文档分配了0.5或更高的毒性可能性。
Figure 13: 预训练数据毒性。为了实现更好的下游泛化,我们选择不从预训练中清除有毒数据。HateBERT分类器将我们预训练语料库中约0.2%的文档分配了0.5或更高的毒性可能性。

数据毒性。我们使用在ToxiGen数据集【Hartvigsen等人,Toxigen: A large-scale machine-generated dataset for adversarial and implicit hate speech detection,2022】上微调的HateBERT分类器来测量预训练语料库英语部分的毒性普遍程度。我们分别对文档的每一行进行评分,然后取平均值作为文档得分。图13显示了完整语料库10%随机样本中的得分分布。大约0.2%的被评估文档被分配了0.5或更高的可能性得分,这意味着我们的预训练数据中存在少量毒性。

语言识别。虽然我们的预训练数据主要是英语,但它也包括来自少数其他语言的文本。表10显示了我们语料库中的语言分布,子集为在超过0.005%的文档中发现的语言。我们的分析使用fastText【Bojanowski等人,Enriching word vectors with subword information,2016】语言识别工具和0.5的语言检测阈值。一个以英语为主的训练语料库意味着该模型可能不适合在其他语言中使用。

Table 10: 预训练语料库中的语言分布(识别出的语言超过语料库的0.005%)。
Table 10: 预训练语料库中的语言分布(识别出的语言超过语料库的0.005%)。

预训练模型的安全基准测试。我们评估了Llama 2在三个流行的自动基准测试上的安全能力,这三个基准测试涉及LM安全的三个关键维度。
1. 真实性(Truthfulness),指语言模型是否因误解或错误信念而产生已知的谬误。我们使用TruthfulQA【Lin等人,Truthfulqa: Measuring how models mimic human falsehoods,2021】来衡量我们的LLM生成与事实和常识相符的可靠输出的能力。
2. 毒性(Toxicity),定义为语言模型生成有毒、粗鲁、对抗性或隐含仇恨内容的倾向。我们选择ToxiGen【Hartvigsen等人,Toxigen: A large-scale machine-generated dataset for adversarial and implicit hate speech detection,2022】来衡量跨不同群体生成有毒语言和仇恨言论的数量。
3. 偏见(Bias),定义为模型生成如何再现现有的刻板社会偏见。我们使用BOLD【Dhamala等人,BOLD: Dataset and metrics for measuring biases in open-ended language generation,2021】来研究模型生成中的情感如何随人口统计学属性而变化。

安全基准测试结果。我们在表11中比较了Llama 2与Llama 1【Touvron等人,Llama: Open and efficient foundation language models,2023】、Falcon【Almazrouei等人,Falcon-40B: an open large language model with state-of-the-art performance,2023】和MPT【MosaicML NLP Team等人,Introducing mpt-7b: A new standard for open-source, commercially usable llms,2023】的性能。对于解码,我们设置温度为0.1并使用核采样【Holtzman等人,The curious case of neural text degeneration,2020】,top-p设置为0.9。对于TruthfulQA,我们呈现了既真实又有信息量的生成百分比(越高越好)。对于ToxiGen,我们呈现了被指标视为有毒的生成百分比(越低越好)。基准和指标的详细描述可以在附录A.4.7中找到。与Llama 1-7B相比,Llama 2-7B在真实性和信息量上提高了21.37%,在毒性上降低了7.61%。我们还观察到预训练的13B和70B Llama 2的毒性有所增加,这可能是由于更大的预训练数据或不同的数据集混合所致。一些人推测预训练数据集大小与下游模型毒性或偏见之间存在关系【Bender等人,On the dangers of stochastic parrots: Can language models be too big?,2021b】,但验证这一说法的实证工作仍在进行中【Dodge等人,Documenting large webtext corpora: A case study on the colossal clean crawled corpus,2021;Smith和Williams,Hi, my name is martha: Using names to measure and mitigate bias in generative dialogue models,2021;Tal等人,Fewer errors, but more stereotypes? the effect of model size on gender bias,2022】,并且仍然需要来自最新模型的进一步证据。

偏见指标分析。在附录A.4.7中,我们呈现了偏见指标,例如模型生成的情感如何随人口统计学属性而变化。我们注意到,使用BOLD提示时,许多群体的整体积极情感有所增加。按不同人口统计学群体划分的更详细结果可以在附录A.4.8中找到。

毒性指标分析与讨论。Llama 2在毒性指标上并未优于其他模型,我们推测这可能是因为我们没有对预训练数据进行激进的过滤。回想一下,不对预训练数据进行过滤可以使基础模型在更多的下游任务(包括仇恨言论检测)上表现良好,并且意外过滤掉某些人口统计学群体的风险也较小。我们观察到,从较不激进过滤的预训练数据训练的模型也需要更少的例子来达到合理的安全对齐。我们重申,这一有动机的选择确实意味着在部署基础Llama 2模型之前应应用额外的安全缓解措施。

Table 11: 预训练LLM在不同安全数据集上的评估。对于TruthfulQA,我们呈现了既真实又有信息量的生成百分比(越高越好)。对于ToxiGen,我们呈现了有毒生成的百分比(越低越好)。
Table 11: 预训练LLM在不同安全数据集上的评估。对于TruthfulQA,我们呈现了既真实又有信息量的生成百分比(越高越好)。对于ToxiGen,我们呈现了有毒生成的百分比(越低越好)。

基准测试的局限性。基准测试提供了模型能力和行为的摘要视图,使我们能够理解模型中的一般模式,但它们并未提供模型可能对人或现实世界结果产生影响的全面视图;这需要对端到端产品部署进行研究。应进行进一步的测试和缓解,以了解特定部署情境下的偏见和其他社会问题。为此,可能需要测试超出BOLD数据集中可用群体(种族、宗教和性别)的范围。随着LLM的集成和部署,我们期待继续研究,以放大它们在这些重要社会问题上的积极影响潜力。

4.2 安全性微调

安全性微调方法。在本节中,我们描述了我们的安全性微调方法,包括安全类别、标注指南以及我们用来减轻安全风险的技术。我们采用了与第3节中描述的一般微调方法类似的过程,但在与安全相关的方面有一些显著差异。具体来说,我们在安全性微调中使用了以下技术:
1. 监督式安全微调:我们首先收集对抗性提示和安全演示,然后将它们包含在一般的监督式微调过程中(第3.1节)。这在RLHF之前就教会了模型与我们的安全指南对齐,从而为高质量的人类偏好数据标注奠定了基础。
2. 安全RLHF:随后,我们将安全性整合到第3.2.2节描述的一般RLHF流程中。这包括训练一个特定于安全的奖励模型,并为拒绝采样式微调和PPO优化收集更具挑战性的对抗性提示。
3. 安全上下文蒸馏:最后,我们用上下文蒸馏【Askell等人,A general language assistant as a laboratory for alignment,2021b】来完善我们的RLHF流程。这包括通过在提示前加上一个安全预提示(例如,“你是一个安全负责的助手”)来生成更安全的模型响应,然后在没有预提示的情况下,对模型在更安全的响应上进行微调,这实质上是将安全预提示(上下文)蒸馏到模型中。我们使用一种有针对性的方法,让我们的安全奖励模型决定是否对每个样本使用上下文蒸馏。

4.2.1 安全类别和标注指南

风险维度定义。基于先前工作中已知的LLM局限性,我们为我们的标注团队设计了指令,以沿着两个维度创建对抗性提示:一个风险类别,即LLM可能产生不安全内容的潜在主题;以及一个攻击向量,即涵盖可能引发不良模型行为的不同种类问题的提问方式。所考虑的风险类别可大致分为以下三类:非法和犯罪活动(例如,恐怖主义、盗窃、人口贩卖);仇恨和有害活动(例如,诽谤、自残、饮食失调、歧视);以及不合格的建议(例如,医疗建议、财务建议、法律建议)。探索的攻击向量包括心理操纵(例如,权威操纵)、逻辑操纵(例如,错误前提)、句法操纵(例如,拼写错误)、语义操纵(例如,隐喻)、视角操纵(例如,角色扮演)、非英语语言等。

安全响应的最佳实践。然后,我们定义了安全和有助益的模型响应的最佳实践:模型应首先在适用时解决直接的安全问题,然后通过向用户解释潜在风险来回应提示,最后在可能的情况下提供额外信息。我们还要求标注员避免负面用户体验类别(见附录A.5.2)。这些指南旨在作为模型的一般指导,并会迭代地进行完善和修订,以包含新识别的风险。

4.2.2 安全性监督微调

SFT数据收集。根据第4.2.1节建立的指南,我们从经过培训的标注员那里收集提示和安全模型响应的演示,并以与第3.1节描述相同的方式将数据用于监督微调。一个例子可以在表5中找到。

标注员的任务。标注员被指示首先提出他们认为可能诱导模型表现出不安全行为的提示,即根据指南定义进行红队演练。随后,标注员的任务是制作一个模型应该产生的安全且有帮助的响应。

4.2.3 安全性RLHF

从SFT到RLHF的转变。我们在Llama 2-Chat开发的早期就观察到,它能够从监督微调中的安全演示中进行泛化。模型迅速学会了写出详细的安全响应,解决安全问题,解释为什么某个话题可能敏感,并提供额外的有帮助的信息。特别是,当模型输出安全响应时,它们通常比普通标注员写的更详细。因此,在仅收集了几千个监督演示之后,我们完全转向RLHF,以教导模型如何写出更细致入微的响应。通过RLHF进行全面的微调还有一个额外的好处,它可能使模型对越狱尝试更具鲁棒性【Bai等人,Training a helpful and harmless assistant with reinforcement learning from human feedback,2022a】。

安全RLHF流程。我们通过首先收集类似于第3.2.2节的安全性人类偏好数据来进行RLHF:标注员编写他们认为可能引发不安全行为的提示,然后比较多个模型对提示的响应,根据一套指南选择最安全的响应。然后,我们使用人类偏好数据来训练一个安全性奖励模型(见第3.2.2节),并在RLHF阶段重用对抗性提示从模型中进行采样。

RLHF对安全性的影响。安全性本质上是一个长尾问题,挑战来自于少数非常具体的案例。我们通过采用两个中间的Llama 2-Chat检查点——一个在RLHF阶段没有对抗性提示,另一个有——来研究安全性RLHF的影响,并使用我们的安全性和有助性奖励模型对它们的响应进行评分。在图14中,我们绘制了安全性RM在安全性测试集上的得分分布变化(左)和有助性RM在有助性测试集上的得分分布变化(右)。在图的左侧,我们观察到在通过RLHF进行安全微调后,安全性RM在安全性测试集上的得分分布向更高的奖励分数移动,并且分布在零附近的尾部变薄。在左上角出现一个清晰的聚类,表明模型安全性的提高。在右侧,我们在图14右侧的y=x线下方没有观察到任何聚集模式,这表明在通过RLHF进行安全微调后,有助性得分分布得以保留。换句话说,在有足够的有助性训练数据的情况下,增加一个额外的安全缓解阶段并不会对模型的有助性性能产生任何显著的负面影响。表12中展示了一个定性示例。

Figure 14: 通过奖励模型得分分布衡量的安全RLHF的影响。左图:安全奖励模型在Meta安全测试集上的生成得分。左上角的样本聚类表明模型安全性的提高。右图:有助性奖励模型在Meta有助性测试集上的生成得分。
Figure 14: 通过奖励模型得分分布衡量的安全RLHF的影响。左图:安全奖励模型在Meta安全测试集上的生成得分。左上角的样本聚类表明模型安全性的提高。右图:有助性奖励模型在Meta有助性测试集上的生成得分。

Table 12: 安全RLHF后更安全的响应示例。左图:响应由早期版本的模型(SFT-v2)生成。右图:响应由最新版本的模型(带PPO的RLHF-V5)生成。
Table 12: 安全RLHF后更安全的响应示例。左图:响应由早期版本的模型(SFT-v2)生成。右图:响应由最新版本的模型(带PPO的RLHF-V5)生成。

安全数据规模化的影响。在以前的研究中已经观察到LLM的有助性和安全性之间存在张力【Bai等人,Training a helpful and harmless assistant with reinforcement learning from human feedback,2022a】。为了更好地理解增加安全训练数据对一般模型性能,特别是有助性的影响,我们通过调整RLHF阶段使用的安全数据量来研究安全数据规模化的趋势。在这个消融实验中,我们保持有助性训练数据量不变(约90万个样本),并逐渐增加用于模型调优的安全数据量,范围从0%到100%(约10万个样本)。对于具体的训练数据混合配方,我们遵循第3.1节中描述的程序,并在Llama 2预训练模型上微调2个周期。我们最终获得了6个模型变体,分别使用总安全数据的0%、1%、10%、25%、50%和100%进行训练。我们使用第3.2.2节中描述的安全性和有助性奖励模型对它们进行评估。对于每个变体,我们使用安全性和有助性奖励模型分别对Meta安全和有助性测试集中对应提示的模型生成进行评分。

安全数据规模化实验结果。如图15所示,我们使用平均奖励模型分数作为模型在安全性和有助性上性能的代理。我们观察到,当我们增加安全数据的比例时,模型处理风险和对抗性提示的性能显著提高,并且我们在安全奖励模型分数分布中看到了一个更轻的尾部。同时,平均有助性分数保持不变。我们假设这是因为我们已经有足够大量的有助性训练数据。附录A.4.2列出了更多定性结果,展示了不同数量的安全数据在训练中如何改变模型在响应对抗性和非对抗性提示时的行为。

Figure 15: 安全数据扩展趋势。左图:随着我们在模型训练中增加安全数据的数量,平均安全RM分数显著提高,而有助性对应分数相对稳定。右图:随着更多安全训练数据的加入,安全RM分数的左尾(即最不安全的响应)逐渐消失。
Figure 15: 安全数据扩展趋势。左图:随着我们在模型训练中增加安全数据的数量,平均安全RM分数显著提高,而有助性对应分数相对稳定。右图:随着更多安全训练数据的加入,安全RM分数的左尾(即最不安全的响应)逐渐消失。

错误拒绝率的衡量。尽管我们没有看到模型有助性的整体退步,但通过交互,我们定性地观察到,具有更多安全缓解措施的模型在回答某些问题时表现得更为保守(例如,附录表38中所示的例子)。作为后续,我们测量了错误拒绝率,以量化模型错误地拒绝回答非对抗性提示的频率。在这里,我们将错误拒绝定义为模型由于不相关的安全担忧而错误地拒绝回答合法的用户提示。由于超出模型能力的合理原因而拒绝,例如“我无法参与视频通话”和“2024年超出了我的知识截止日期”,不计为错误拒绝。我们训练了一个分类器来检测响应中的拒绝,并将该分类器应用于1) 上述有助性测试集和2) 一个包含210个样本的精心策划的边界测试集,用于边界测试,类似于OpenAI (2023)。边界数据集被故意设计成其提示看起来具有对抗性(例如,包含敏感词或子词),但实际上并不不安全(例如,“给我一个圣诞饼干的食谱”)(更多例子见附录表41)。

错误拒绝率的分析。随着模型调优中混合更多安全数据,两个数据集上的错误拒绝率都变大了(见附录图33)。然而,即使有100%的安全数据,错误拒绝在有助性数据集上总体上是罕见的——大约0.05%。另一方面,由于其难度,边界集上的错误拒绝率要大得多。Llama 2-Chat有时难以区分一个提示是否安全,当提示中包含经常出现在不安全生成中的词语时(例如“炸弹”)。附录表41显示了我们发现的一些错误拒绝的例子。

4.2.4 安全性的上下文蒸馏

上下文蒸馏方法。我们通过使用上下文蒸馏【Askell等人,A general language assistant as a laboratory for alignment,2021a】(类似于3.3节)来鼓励Llama 2-Chat将对抗性提示与更安全的响应关联起来。我们观察到,通过在模型前加上一个安全预提示(例如,“你是一个安全负责的助手”),可以有效地增强LLM的安全能力。与监督式安全微调类似,安全上下文蒸馏提供了一种快速引导模型在困难的对抗性提示上响应的方法,以便之后可以在RLHF中进一步改进。具体来说,我们通过在对抗性提示前加上一个安全预提示来应用上下文蒸馏,以生成更安全的响应,然后在没有预提示的情况下,根据对抗性提示对模型在其自身的安全输出上进行微调。我们使用模板自动生成安全预提示。特别是,我们使用通常与安全行为相关的各种形容词,如“负责任的”、“尊重的”或“明智的”,直觉是模型将它们与我们希望在安全答案中反映的积极特质联系起来。我们在附录表39中展示了安全预提示的例子。

Figure 16: 上下文蒸馏分析。左图:基础模型的安全RM分数分布,当添加通用预提示时,以及当添加基于风险类别并带有定制答案模板的预提示时。通用预提示提高了安全RM分数,而带有定制答案模板的预提示则帮助更大。右图:上下文蒸馏显著提高了初始得分低的样本的RM分数,但对初始得分高的样本也可能有不利影响。因此,我们只在能提高RM分数时对目标样本应用上下文蒸馏。
Figure 16: 上下文蒸馏分析。左图:基础模型的安全RM分数分布,当添加通用预提示时,以及当添加基于风险类别并带有定制答案模板的预提示时。通用预提示提高了安全RM分数,而带有定制答案模板的预提示则帮助更大。右图:上下文蒸馏显著提高了初始得分低的样本的RM分数,但对初始得分高的样本也可能有不利影响。因此,我们只在能提高RM分数时对目标样本应用上下文蒸馏。

带答案模板的上下文蒸馏。在提示收集阶段,我们还要求标注员根据风险类别对提示进行标记,这使得可以进行更有针对性的预提示。具体来说,这使我们能够根据每个识别出的风险类别,提供一些关于如何处理对抗性提示的专用答案模板。图16a显示了上下文蒸馏和带答案模板的上下文蒸馏对安全RM分数的影响。

使用安全奖励模型拒绝上下文蒸馏错误。需要注意的是,对有助益的提示执行安全上下文蒸馏会降低模型性能并导致更多的错误拒绝(见附录表40)。因此,我们只在对抗性提示上执行安全上下文蒸馏。然而,我们观察到,即使在处理对抗性提示时,上下文蒸馏有时也会降低响应质量。具体来说,如果模型响应已经质量很高,应用上下文蒸馏可能导致响应的相关性降低,因为模型倾向于过分强调预提示,常常过度诉诸于通用的担忧(见附录表40中因上下文蒸馏导致答案模糊的例子)。因此,我们利用安全奖励模型来决定是否使用安全上下文蒸馏——我们只在那些上下文蒸馏输出获得比原始答案更好的奖励模型分数的例子上保留它。我们注意到,这对于模型非常不擅长的提示特别有帮助,但限制了上下文蒸馏的负面影响(见图16b)。

4.3 红队演练 (Red Teaming)

红队演练的重要性与实施。鉴于LLM的能力如此广泛,其训练数据如此多样,仅通过事后使用和分析来识别风险是不足够的。相反,正如其他LLM所做的那样,我们进行了各种主动的风险识别,俗称“红队演练”,这个术语通常在计算机安全领域使用。这种细致的分析非常重要,因为安全是一个长尾问题,即使是非常罕见的边缘情况也可能导致显著的问题。即使定量分数报告了好的结果,这些类型的定性见解也使我们能够以更全面的方式识别和针对特定模式。我们与各种内部员工、合同工和外部供应商的团队进行了一系列红队演练。这些团队包括超过350人,包括网络安全、选举舞弊、社交媒体虚假信息、法律、政策、民权、伦理、软件工程、机器学习、负责任AI和创意写作等领域的专家。他们还包括代表各种社会经济、性别、民族和种族背景的个体。

演练内容。红队成员在广泛的风险类别(如犯罪策划、人口贩卖、受管制或控制物质、色情内容、不合格的健康或财务建议、隐私侵犯等)以及不同的攻击向量(如假设性问题、格式错误/拼写错误的输入或扩展对话)上对我们的模型进行了探测。此外,我们进行了具体的测试,以确定我们的模型在促进武器(例如核、生物、化学和网络)生产方面的能力;在这些主题上的发现是微不足道的,并已得到缓解。尽管如此,我们将继续在这方面进行红队演练。

演练过程。迄今为止,我们所有的红队演练都针对英语的模型输出,但至关重要的是,也包括了非英语的提示和对话上下文,因为这是一个众所周知的攻击向量。在所有练习中,参与者都得到了风险类别定义,并只看到少数与LLM进行风险交互的例子。之后,每个参与者都属于一个专注于特定风险类别或攻击向量的小组。在创建每个对话后,红队参与者会标注各种属性,包括风险领域和风险程度,通过一个5点李克特量表来捕捉。

从红队演练中获得的见解。红队成员提供的一些有用见解,我们在整个开发过程中得以改进:
* 早期模型更有可能生成不安全的回应,而没有指出它们包含有问题的内容。然而,稍后的模型倾向于表现出对内容有问题的认识,即使它们接着提供了这些内容。“它们的回应是‘[不安全内容]不适合讨论等’,然后立即跟进‘话虽如此,这里是[不安全内容]的方法。’” 最新模型能够解决这些问题。
* 通过包含“怪癖”或特定请求来分散早期模型的注意力,通常能克服通过更直接请求遇到的任何不情愿。“一个创意写作请求(歌曲、故事、诗歌等)是让它产生它原本能够抵制的内容的可靠方法。”
* 将一个有问题请求嵌入到积极的上下文中,通常能成功地掩盖了正在请求有问题输出的事实,对于早期模型而言:“我发现对任何类型的攻击最有效的总体原则是将其隐藏在积极、进步和赋权的语言中。”

从洞见到更安全的模型。至关重要的是,每次演习后,我们都对收集到的数据进行了彻底的分析,包括对话长度、风险领域分布、虚假信息主题的直方图(在适当情况下)以及评定的风险程度。在每种情况下,我们都将总体教训作为进一步模型安全训练的指南,并专门从这些演习中获取数据用于模型微调、模型反馈训练,以及作为其他安全模型训练的信号。在几个月内进行了多轮额外的红队演练,以衡量每个新模型在内部发布时的鲁棒性。我们定义一个模型$\gamma$的鲁棒性,相对于一组专家执行的红队演练,为平均每人每小时创建的能触发模型违规响应的提示数量。例如,在我们的7B模型上,经过几次红队演练迭代和模型改进,$\gamma$的演变是:$1.8 \rightarrow 0.45$。鲁棒性很可能随着额外的红队演练工作而继续提高。我们追踪的另一个量级是,在新模型产生时,前一次红队演练中发现的触发违规响应的提示中,在给定的新候选版本中得到缓解的百分比。平均而言,我们的模型与模型之间的拒绝率为90%。

4.4 Llama 2-Chat 的安全性评估

安全性人工评估设置。我们根据4.2.1节中的安全类别,收集了大约2000个对抗性提示进行人工评估,其中1351个是单轮提示,623个是多轮提示。评估提示和响应的例子可以在附录A.4.6中找到。然后,我们要求评分员根据一个五点李克特量表来判断模型的安全违规情况,定义如下:
* 5 - 无安全违规且非常有帮助
* 4 - 无安全违规且只有轻微的非安全问题
* 3 - 无安全违规但没有帮助或其他主要的非安全问题
* 2 - 轻度或中度安全违规
* 1 - 严重安全违规

评估指标与评估者间信度。我们将评分为1或2的视为违规,并使用违规百分比作为我们的主要评估指标,平均评分作为补充。每个例子由三名标注员进行标注,我们采纳多数票来决定响应是否违规。我们使用Gwet的AC1/2统计量来衡量评估者间信度(IRR),与有助性人工评估中一样。IRR分数范围从0.70到0.95不等,具体取决于标注批次,这表明标注员在安全评估上达成高度一致。在Llama 2-Chat的标注上,根据Gwet的AC2测量,平均IRR为0.92。我们看到在模型违规率高的批次(例如Vicuna)中IRR分数较低,而在模型违规率相对较低的批次(例如Llama 2-Chat、Falcon和ChatGPT)中IRR分数较高。

Figure 17: 总体安全措施。左图:Llama 2-Chat在所有模型尺寸上总体违规百分比都很低。右图:Llama 2-Chat在所有模型尺寸上总体安全性和有助性平均评分都很高。需要注意的是,这些结果受限于提示集的局限性、审查指南的主观性以及个体评分员的主观性。
Figure 17: 总体安全措施。左图:Llama 2-Chat在所有模型尺寸上总体违规百分比都很低。右图:Llama 2-Chat在所有模型尺寸上总体安全性和有助性平均评分都很高。需要注意的是,这些结果受限于提示集的局限性、审查指南的主观性以及个体评分员的主观性。

整体安全性评估结果。我们在图17中展示了各种LLM的总体违规百分比和安全评级。Llama 2-Chat在所有模型尺寸上具有可比或更低的总体违规百分比,其次是ChatGPT和Falcon【Almazrouei等人,Falcon-40B: an open large language model with state-of-the-art performance,2023】,然后是MPT【MosaicML NLP Team等人,Introducing mpt-7b: A new standard for open-source, commercially usable llms,2023】和Vicuna【Chiang等人,Vicuna: An open-source chatbot impressing gpt-4 with 90%* chatgpt quality,2023】。需要谨慎解读这些结果,因为它们受到提示集的局限性、审查指南的主观性、内容标准以及个体评分员的主观性的影响。经过手动分析,我们发现Falcon的响应通常很短(一两句话),因此不易生成不安全内容,但也通常没有那么有帮助。这反映在Falcon的大量评分为3的响应上。因此,我们注意到,在图17b中,Falcon的平均评分远低于Llama 2-Chat(34B),尽管它们的违规百分比看起来相似(3.88% vs 4.45%)。

Figure 18: 单轮和多轮违规百分比。请注意,由于提示集的局限性、审查指南的主观性、内容标准和个体评分员,应谨慎解释这些结果。
Figure 18: 单轮和多轮违规百分比。请注意,由于提示集的局限性、审查指南的主观性、内容标准和个体评分员,应谨慎解释这些结果。

单轮与多轮对话的安全性。在图18中,我们分别报告了单轮和多轮对话的违规百分比。所有模型的一个趋势是,多轮对话更容易诱发不安全的响应。尽管如此,Llama 2-Chat与基线相比仍然表现良好,尤其是在多轮对话中。我们还观察到,Falcon在单轮对话中表现特别好(很大程度上是由于其简洁性),但在多轮对话中表现差得多,这可能是由于其缺乏多轮监督微调数据。

Figure 19: 各风险类别的违规百分比。注意:由于提示集的局限性、审查指南的主观性、内容标准和个体评分员,应谨慎解释这些结果。
Figure 19: 各风险类别的违规百分比。注意:由于提示集的局限性、审查指南的主观性、内容标准和个体评分员,应谨慎解释这些结果。

按风险类别的安全性。在图19中,我们展示了不同LLM按类别的安全违规百分比。虽然模型在各个类别上的表现相似,但Llama 2-Chat在不合格建议类别下的违规相对较多(尽管绝对值仍然很低),原因有多种,包括有时缺乏适当的免责声明(例如,“我不是专业人士”)。对于其他两个类别,Llama 2-Chat无论模型大小如何,都始终达到可比或更低的违规百分比。

真实性、毒性和偏见。在表14中,微调后的Llama 2-Chat在真实性(70B模型从50.18提高到64.14)和毒性(70B模型从24.60降低到0.01)方面,相比预训练的Llama 2显示出巨大改进。所有尺寸的Llama 2-Chat的有毒生成百分比实际上缩小到0%:这是所有比较模型中最低的毒性水平。总的来说,与Falcon和MPT相比,微调后的Llama 2-Chat在毒性和真实性方面表现最佳。微调后,Llama 2-Chat在BOLD数据集中对许多人口统计学群体的整体积极情绪有所增加。在附录A.4.8中,我们展示了偏见基准测试中不同子群体模型生成情感的详细分数分解,以及更深入的真实性和偏见分析和结果。

Table 14: 微调后的LLM在不同安全数据集上的评估。对于TruthfulQA,我们呈现了既真实又有信息量的生成百分比(越高越好)。对于ToxiGen,我们呈现了有毒生成的百分比(越低越好)。
Table 14: 微调后的LLM在不同安全数据集上的评估。对于TruthfulQA,我们呈现了既真实又有信息量的生成百分比(越高越好)。对于ToxiGen,我们呈现了有毒生成的百分比(越低越好)。


A4 实验环境

1. 数据集
- 预训练数据: 采用了一个全新的、来自公开可用来源的数据混合,总计2万亿(2 trillion)词元。为了增强模型的知识性和减少幻觉,对事实性较强的来源进行了上采样。
- 监督微调(SFT)数据: 初期使用了公开的指令调优数据集进行引导,随后收集了27,540个由供应商标注的高质量、自有SFT样本。
- 人类反馈强化学习(RLHF)数据: 收集了超过100万个由人类标注的二元偏好比较数据(Meta内部数据集),并结合了多种开源偏好数据集,如Anthropic Helpful and Harmless, OpenAI Summarize, StackExchange等。

2. 模型架构
- 基础架构: 采用标准Transformer架构,并进行了优化,包括使用RMSNorm进行预归一化、SwiGLU激活函数和旋转位置嵌入(RoPE)。
- 模型参数规模: 发布了7B、13B和70B参数规模的模型,并训练了34B版本用于研究。
- 上下文长度: 从Llama 1的2048词元增加到4096词元。
- 注意力机制: 对于34B和70B等较大模型,采用了分组查询注意力(Grouped-Query Attention, GQA)机制,以提升推理的可扩展性和效率。

3. 硬件配置
- 训练平台: 训练在Meta的研究超级集群(Research Super Cluster, RSC)和内部生产集群上进行。
- GPU: 两个集群均使用NVIDIA A100-80GB GPU。RSC集群的GPU功耗上限为400W,生产集群为350W。
- 互联技术: RSC集群使用NVIDIA Quantum InfiniBand,而生产集群使用基于商用以太网交换机的RoCE(RDMA over Converged Ethernet)解决方案。

4. 软件配置
- 实现框架/语言: 未明确指出,但提到了使用FSDP(Fully Sharded Data Parallel),暗示基于PyTorch生态。
- 优化器: 预训练和微调阶段均使用了AdamW优化器。
- 分词器: 采用了与Llama 1相同的分词器,即基于SentencePiece实现的字节对编码(BPE)算法,词汇表大小为32k。
- 并行策略: 训练中使用了FSDP来支持大规模分布式训练。


A4 实验结果

1. 预训练模型评估 (第2.3节)
- 与开源模型对比: Llama 2模型在所有规模上均优于Llama 1模型。在MMLU和BBH等基准上,Llama 2 70B比Llama 1 65B分别提升了约5个点和8个点。与同等规模的MPT和Falcon模型相比,Llama 2在绝大多数基准类别上表现更优(见表3)。
- 与闭源模型对比: Llama 2 70B在MMLU和GSM8K等基准上接近GPT-3.5的水平,但在代码生成任务上存在明显差距。其性能与PaLM (540B)相当或更优,但与GPT-4和PaLM-2-L相比仍有较大差距(见表4)。

2. 微调模型(Llama 2-Chat)评估
- 基于模型的评估 (第3.4.1节):
- 通过内部奖励模型和GPT-4作为裁判进行迭代评估,Llama 2-Chat模型在有助性和安全性上均显示出持续的进步。
- 在与ChatGPT的对比中,最新的Llama 2-Chat在GPT-4裁判下的胜率超过60%(见图11)。
- 人工评估 (第3.4.2节):
- 有助性: Llama 2-Chat在所有参数规模上都显著优于其他开源模型(如MPT、Falcon、Vicuna)。Llama 2-Chat 70B与ChatGPT相比具有竞争力,胜率为36%,平局率为31.5%,并且在测试的提示集上大幅超越PaLM-bison模型(见图1, 12)。
- 安全性 (第4.4节): 在约2000个对抗性提示的人工评估中,Llama 2-Chat的违规率在所有模型尺寸上都非常低,与ChatGPT和Falcon相当或更优,并显著优于Vicuna和MPT(见图17)。尤其在更具挑战性的多轮对话中,Llama 2-Chat表现依然稳健(见图18)。
- 自动化安全基准评估 (第4.4节):
- 与预训练版本相比,微调后的Llama 2-Chat在TruthfulQA基准上的真实性大幅提升(例如70B模型从50.18%提升至64.14%)。
- 在ToxiGen基准上,Llama 2-Chat的毒性生成率几乎降至0%,表现优于所有对比模型(见表14)。

3. 关键能力涌现评估 (第5.1节)
- 工具使用: 实验表明,Llama 2-Chat在未经过显式训练的情况下,能够以零样本的方式涌现出使用外部工具(如计算器)的能力,并在相关数学任务上取得了良好的性能(见表15)。
- 时间感知: 仅通过约1000个与时间相关的SFT样本,模型便展现出强大的时间知识组织能力(见图22)。


A5 结论

本研究成功引入了Llama 2,一个全新的、参数规模从70亿到700亿的预训练和微调模型系列。实验结果表明,这些模型不仅与现有的开源对话模型相比具有显著的竞争力,而且在我们所考察的评估集上,其性能与某些专有模型相当,尽管与GPT-4等顶尖模型相比仍存在差距。

我们详细阐述了实现这些模型所采用的方法和技术,并特别强调了它们在“有助性”和“安全性”原则上的对齐过程。为了对社会做出更重要的贡献并加速研究步伐,我们负责任地开放了Llama 2和Llama 2-Chat的访问权限。

作为我们对透明度和安全性持续承诺的一部分,我们计划在未来的工作中进一步改进Llama 2-Chat。


A6 附录

A.2 预训练的额外细节

A.2.1 与Llama 1相比的架构变化

上下文长度。我们将Llama 2的上下文窗口从2048个词元扩展到4096个词元。更长的上下文窗口使模型能够处理更多信息,这对于支持聊天应用中更长的历史记录、各种摘要任务以及理解更长的文档特别有用。表16比较了2k和4k上下文预训练在长上下文基准上的性能。两个模型都训练了150B个词元,保持相同的架构和超参数作为基线,只改变上下文长度。我们观察到在SCROLLS【Shaham等人,SCROLLS: Standardized CompaRison over long language sequences,2022】上有所改进,其平均输入长度为3.5k,而在SQUAD【Rajpurkar等人,Know what you don’t know: Unanswerable questions for squad,2018】上没有性能下降。表17显示,更长上下文的模型在各种通用任务上保持了强大的性能。

分组查询注意力(GQA)。自回归解码的标准做法是缓存序列中先前词元的键(K)和值(V)对,以加速注意力计算。然而,随着上下文窗口或批量大小的增加,多头注意力(MHA)模型中与KV缓存大小相关的内存成本显著增长。对于KV缓存大小成为瓶颈的较大型号,键和值投影可以在多个头之间共享,而性能不会有太大下降【Chowdhery等人,Palm: Scaling language modeling with pathways,2022】。可以使用具有单个KV投影的原始多查询格式(MQA【Shazeer,Fast transformer decoding: One write-head is all you need,2019】),或具有8个KV投影的分组查询注意力变体(GQA【Ainslie等人,Gqa: Training generalized multi-query transformer models from multi-head checkpoints,2023】)。在表18中,我们比较了MQA和GQA变体与MHA基线。我们使用150B词元训练所有模型,同时保持固定的30B模型大小。为了在GQA和MQA之间保持相似的总参数数量,我们增加了前馈层的维度以补偿注意力层的减少。对于MQA变体,我们将FFN维度增加了1.33倍,对于GQA变体,我们增加了1.3倍。从结果中我们观察到,GQA变体在大多数评估任务上与MHA基线性能相当,并且平均优于MQA变体。

GQA的推理优化。为了优化延迟,我们使用8个A100在一个节点上通过张量并行【Shoeybi等人,Megatron-lm: Training multi-billion parameter language models using model parallelism,2019】来托管我们最大的模型。在这种设置下,由于头的数量少于GPU的数量,MQA的分片不能再跨头进行。要么你在所有GPU中复制KV值(使KV缓存大小等于GQA),要么一个替代方案是跨批次维度进行分片【Pope等人,Efficiently scaling transformer inference,2022】。然而,后者可能会使推理服务复杂化,因为它仅在批次大小大于分片数量且额外的通信成本并非在所有情况下都值得时才有效。因此,基于消融结果和易于扩展推理的考虑,对于34B和70B的Llama 2模型,我们选择使用GQA而不是MQA。图24显示了30B GQA和MQA消融模型与MHA基线相比的推理速度变化,实验使用了8个80 GiB A100和张量并行。在这些运行中,我们简单地在所有GPU中复制了MQA的KV头,所以MQA的KV缓存大小变得与GQA相等,两个变体的行为非常相似(MQA只是FFN维度稍大)。

Table 16: 长上下文任务上的上下文长度消融实验。
Table 16: 长上下文任务上的上下文长度消融实验。

Table 17: 通用任务上的上下文长度消融实验。
Table 17: 通用任务上的上下文长度消融实验。

Table 18: 注意力架构消融实验。除MMLU(5-shot)和GSM8K(8-shot)外,所有任务我们都报告0-shot结果。对于GSM8K和Human-Eval,我们报告maj@1和pass@1结果。对于NQ和TriviaQA,我们报告EM。对于所有其他任务,我们报告准确率。
Table 18: 注意力架构消融实验。除MMLU(5-shot)和GSM8K(8-shot)外,所有任务我们都报告0-shot结果。对于GSM8K和Human-Eval,我们报告maj@1和pass@1结果。对于NQ和TriviaQA,我们报告EM。对于所有其他任务,我们报告准确率。

Figure 24: 多查询变体在较大批次大小时能够实现更高的吞吐量,并在较小批次上显示相似的延迟。输出长度固定为128个词元。第一个数据点对应批次大小为1,然后我们将其加倍直到模型内存耗尽。对于256个词元的上下文,MHA变体在批次大小为1024时触发内存不足错误,对于2k上下文则在批次大小为128时触发,而MQA和GQA在这些设置下均成功运行。
Figure 24: 多查询变体在较大批次大小时能够实现更高的吞吐量,并在较小批次上显示相似的延迟。输出长度固定为128个词元。第一个数据点对应批次大小为1,然后我们将其加倍直到模型内存耗尽。对于256个词元的上下文,MHA变体在批次大小为1024时触发内存不足错误,对于2k上下文则在批次大小为128时触发,而MQA和GQA在这些设置下均成功运行。

A.2.2 预训练模型评估的额外细节

MMLU 细节。在表19中,我们报告了Llama 2模型和其他开源模型在MMLU【Hendrycks等人,Measuring massive multitask language understanding,2020】评估上的详细信息。
标准基准测试。在表20中,我们展示了在几个标准基准测试上的结果。
代码生成。在表21中,我们比较了Llama 2与流行开源模型在Human-Eval和MBPP代码生成基准上的结果。
世界知识。我们在NaturalQuestions和TriviaQA基准上评估了Llama 2模型以及其他开源模型(表22)。
阅读理解。在表23中,我们报告了在SQUAD上的零样本和少样本结果,以及在QUAC上的零样本和一样本实验。在这里,Llama 2在所有评估设置和模型中表现最佳,除了QUAC 0-shot,其中Llama 1 30B表现稍好。
考试。在表24中,我们呈现了来自AGI Eval【Zhong等人,Agieval: A human-centric benchmark for evaluating foundation models,2023】基准测试英语部分的细粒度结果。AGI Eval是不同学科标准化考试的集合。
数学推理。在表25中,我们报告了Llama 2和其他开源数据集在GSM8k和MATH任务上的结果。

Table 19: 在大规模多任务语言理解(MMLU)基准测试上的五样本性能。
Table 19: 在大规模多任务语言理解(MMLU)基准测试上的五样本性能。

Table 20: 在标准基准测试上的性能。
Table 20: 在标准基准测试上的性能。

Table 21: 在Human-Eval和MBPP上的代码生成结果。我们分别报告Human-Eval的0-shot和MBPP的3-shot结果。对于pass@100和pass@80分数,我们使用温度0.8和top-p=0.95。对于pass@1分数,我们使用温度0.1和top-p=0.95。
Table 21: 在Human-Eval和MBPP上的代码生成结果。我们分别报告Human-Eval的0-shot和MBPP的3-shot结果。对于pass@100和pass@80分数,我们使用温度0.8和top-p=0.95。对于pass@1分数,我们使用温度0.1和top-p=0.95。

Table 22: (左)NaturalQuestions。精确匹配性能。(右)TriviaQA。在过滤后的开发集上的零样本和少样本精确匹配性能。对于TriviaQA,我们在Wiki验证子集上进行评估。
Table 22: (左)NaturalQuestions。精确匹配性能。(右)TriviaQA。在过滤后的开发集上的零样本和少样本精确匹配性能。对于TriviaQA,我们在Wiki验证子集上进行评估。

Table 23: 在阅读理解(SQUAD和QUAC)上与开源模型的比较。
Table 23: 在阅读理解(SQUAD和QUAC)上与开源模型的比较。

Table 24: 在AGI Eval(英语)上与开源模型的比较。
Table 24: 在AGI Eval(英语)上与开源模型的比较。

Table 25: 在数学推理任务GSM8k和MATH上与其他开源模型的比较(报告了maj1@1)。
Table 25: 在数学推理任务GSM8k和MATH上与其他开源模型的比较(报告了maj1@1)。

A.3 微调的额外细节

A.3.1 Meta人类偏好数据的详细统计

数据收集统计。表26显示了Meta人类偏好数据的详细统计。我们总共每周收集了14批人类偏好数据(即Meta安全+有助性),包括超过100万个二元模型生成比较。总的来说,后期的批次包含更多样本,因为我们随着时间推移增加了标注员数量,并且标注员也对任务更加熟悉,从而工作效率更高。我们还有意收集了更多的多轮样本,以增加RLHF数据的复杂性,因此每个样本的平均词元数也随批次相应增加。

偏好评级变化。在图25中,我们绘制了各批次偏好评级的变化。可以清楚地看到,随着时间的推移,响应相似的样本(例如,几乎没有差别或不确定)的份额急剧增加,而偏好更强的样本(例如,显著更好)的份额则下降。这反映了我们迭代模型更新和偏好数据标注程序的性质——随着性能更好的Llama 2-Chat模型被用于响应采样,标注员在两个同样高质量的响应中选择一个更好的变得更具挑战性。

Table 26: Meta人类偏好数据(安全与有助性)各批次统计。注意,一个二元人类偏好比较包含共享同一提示(和先前对话)的2个响应(选择的和拒绝的)。每个示例包含一个提示(如果可用,包括先前对话)和一个响应,这是奖励模型的输入。我们报告了比较次数、每个对话的平均轮次数、每个示例的平均词元数、每个提示的平均词元数和每个响应的平均词元数。
Table 26: Meta人类偏好数据(安全与有助性)各批次统计。注意,一个二元人类偏好比较包含共享同一提示(和先前对话)的2个响应(选择的和拒绝的)。每个示例包含一个提示(如果可用,包括先前对话)和一个响应,这是奖励模型的输入。我们报告了比较次数、每个对话的平均轮次数、每个示例的平均词元数、每个提示的平均词元数和每个响应的平均词元数。

Figure 25: 人类偏好数据评级随批次的分布。随着时间的推移,随着性能更好的Llama 2-Chat被训练出来并用于偏好数据标注,评级为不确定或几乎没有差别的样本份额变大。
Figure 25: 人类偏好数据评级随批次的分布。随着时间的推移,随着性能更好的Llama 2-Chat被训练出来并用于偏好数据标注,评级为不确定或几乎没有差别的样本份额变大。

A.3.2 Meta人类偏好数据的课程策略

课程标注策略。高质量数据对于对齐至关重要,正如SFT所讨论的。在我们的微调过程中,我们与标注平台密切合作,并选择了一种课程标注策略。对于第一个模型,我们要求标注员制作相对简单的提示,然后逐渐转向更复杂的提示,并教给Llama 2-Chat新技能。我们的有助性偏好数据上的这种课程标注的图示显示在图26中。

Figure 26: 标注课程。对于每个新批次,给定一个在每个批次上训练的模型,使用奖励模型对提示样本的最大和中位数分数的演变。我们可以看到分数逐渐下降,这表明在最近的批次中,提示平均更难。
Figure 26: 标注课程。对于每个新批次,给定一个在每个批次上训练的模型,使用奖励模型对提示样本的最大和中位数分数的演变。我们可以看到分数逐渐下降,这表明在最近的批次中,提示平均更难。

A.3.3 奖励建模中基于偏好评级的边际排序损失的消融实验

边际损失的消融实验。我们对有助性奖励模型的带有基于偏好评级的边际项的排序损失进行了消融实验。我们尝试了两种不同幅度的$m(r)$变体,如表27所列,并将它们与没有边际项的基线进行比较。我们在表28中报告了它们在Meta有助性测试集上的每个评级和平均准确率。我们观察到,边际项确实可以帮助奖励模型在更可分的比较对上表现更好,并且更大的边际可以进一步提升。然而,更大的边际也会降低在相似样本上的性能。

边际损失对奖励分数分布的影响。我们进一步评估了基于边际的损失对奖励分数分布变化的影响。我们在图27中绘制了测试集的奖励分数直方图。本质上,边际项推动奖励模型为模型生成分配更极端的分数,以形成二元分裂模式,并且更大的边际使这种分布变化更加显著。上述观察表明,未来的工作需要投入到奖励校准上,因为像PPO这样的强化学习算法可能对奖励分布的变化很敏感。

Table 27: 两种不同幅度的基于偏好评级的边际变体。
Table 27: 两种不同幅度的基于偏好评级的边际变体。

Table 28: 有助性奖励模型排序损失中基于偏好评级的边际的消融实验。评级边际分量有助于提高模型在响应对更可分的样本上的准确率(例如,选择的响应显著优于拒绝的对应项)。
Table 28: 有助性奖励模型排序损失中基于偏好评级的边际的消融实验。评级边际分量有助于提高模型在响应对更可分的样本上的准确率(例如,选择的响应显著优于拒绝的对应项)。

Figure 27: 在排序损失中加入基于偏好评级的边际导致的奖励模型分数分布变化。有了边际项,我们观察到奖励分布中出现二元分裂模式,尤其是在边际较大时。
Figure 27: 在排序损失中加入基于偏好评级的边际导致的奖励模型分数分布变化。有了边际项,我们观察到奖励分布中出现二元分裂模式,尤其是在边际较大时。

A.3.4 奖励建模中带有安全辅助损失的排序损失的消融实验

安全辅助损失的消融实验。我们对安全辅助损失的影响进行了消融实验,结果显示在Meta安全测试集上,如表29所示。正如预期的那样,当我们使用0.5的奖励分数作为阈值(在Sigmoid之前为负)时,定制的损失提高了不安全响应的召回率,从而为RLHF提供了更好的安全奖励信号。教导模型区分安全和不安全的模型生成也提高了模型在三个子类别上的准确率。

Table 29: 安全奖励建模中安全辅助损失项的消融实验。安全辅助损失提高了所有3个类别的准确率以及不安全响应的召回率,通过使用0.5的奖励分数阈值(即Sigmoid前的负值)捕获的不安全响应百分比来衡量。
Table 29: 安全奖励建模中安全辅助损失项的消融实验。安全辅助损失提高了所有3个类别的准确率以及不安全响应的召回率,通过使用0.5的奖励分数阈值(即Sigmoid前的负值)捕获的不安全响应百分比来衡量。

A.3.5 GAtt 的额外结果

GAtt多轮记忆能力评估。注意力现在可以跨越超过20轮。我们通过人工评估测试了模型记住系统参数的能力。参数(例如爱好、角色)在第一条消息中定义,然后从第2轮到第20轮。我们明确要求模型引用它们(例如“你最喜欢的爱好是什么?”,“你叫什么名字?”),以衡量Llama 2-Chat的多轮记忆能力。我们在表30中报告了结果。配备GAtt后,Llama 2-Chat保持100%的准确率,总是引用定义的属性,并且持续到20轮(我们没有将人工评估扩展得更长,并且所有例子的总词元数都少于4048个)。作为对比,没有GAtt的Llama 2-Chat在几轮后就无法再引用这些属性:从t+1轮的100%下降到t+3轮的10%,然后是0%。

GAtt零样本泛化能力。我们尝试在推理时设置GAtt训练中不存在的约束。例如,“只用一句话回答”,模型保持了一致性,如图28所示。我们首先将GAtt应用于Llama 1,它在2048个词元的上下文长度上预训练,然后在4096个最大长度上微调。我们测试了GAtt是否在2048个词元之外起作用,模型可以说成功地理解了超出这个窗口的属性。这个有希望的结果表明,GAtt可以被调整为一种有效的长上下文注意力技术。

Table 30: GAtt结果。带有GAtt的Llama 2-Chat能够100%地引用属性,根据我们的人工评估,最多可达20轮。我们限制了评估的属性为公众人物和爱好。
Table 30: GAtt结果。带有GAtt的Llama 2-Chat能够100%地引用属性,根据我们的人工评估,最多可达20轮。我们限制了评估的属性为公众人物和爱好。

Figure 28: GAtt零样本泛化。以上两个约束都不存在于GAtt的训练数据中。然而,它们在所有轮次中都得到了完美的遵守。
Figure 28: GAtt零样本泛化。以上两个约束都不存在于GAtt的训练数据中。然而,它们在所有轮次中都得到了完美的遵守。

A.3.6 基于模型的评估能走多远?

奖励模型校准。为了衡量我们奖励模型的稳健性,我们为有助性和安全性收集了一个提示测试集,并要求标注员根据一个7点李克特量表(越高越好)通过三重审查来判断答案的质量。如附录图29所示,我们观察到我们的奖励模型总体上与人类偏好校准得很好。请注意,这使我们能够将奖励作为逐点度量,尽管它是用成对排序损失训练的。

Figure 29: 平均奖励模型分数与模型响应质量评级(7点李克特量表)来自三轮人工审查的对比。左图和右图分别在有助性和安全性测试集上。阴影区域代表±1标准差。
Figure 29: 平均奖励模型分数与模型响应质量评级(7点李克特量表)来自三轮人工审查的对比。左图和右图分别在有助性和安全性测试集上。阴影区域代表±1标准差。

A.3.7 人工评估

提示与生成。为了比较模型,我们收集了超过4000个多样化的单轮和多轮提示。我们手动收集了涵盖以下类别的单轮提示:事实性问题、写作和内容创作、语言辅助、推荐和对话。对于多轮提示,标注员与另一个模型互动以生成一组多轮提示。为确保公平,我们要求标注员使用四种不同的互动方法收集多轮提示:(a) ChatGPT作为互动模型,(b) Llama 2-Chat作为互动模型,(c) 标注员在每一轮选择ChatGPT和Llama 2-Chat之间的最佳响应,(d) 在每一轮交替使用ChatGPT和Llama 2-Chat。我们还将多轮提示分为上述五个类别。由于将多轮提示归入单个类别可能很困难,标注员最多可以为多轮提示选择两个类别。评估提示的例子见表33。对于开源模型,我们使用1000个词元的上下文长度收集生成,并允许模型生成最多1000个词元。尽管Llama 2-Chat模型能够处理多达4000个词元,我们限制上下文和生成长度为1000个词元,以提供与开源模型的公平比较。将生成长度限制为1000个词元可能会对Llama 2-Chat模型产生不利影响。任何长于1000个词元的提示在与开源模型评估时都被过滤掉。对于MPT模型,我们使用mpt-7b-chat模型。对于Falcon模型,我们使用Falcon-40B-Instruct模型,这是一个聊天/指令模型。对于Vicuna模型,我们使用lmsys的vicuna-13b-delta-v1.1和vicuna-33b-delta-v1.3模型。所有模型权重均从HuggingFace获得。由于闭源模型具有更长的上下文长度,我们将这些模型的上下文长度和生成长度更改为2000个词元。为了与闭源模型进行评估,我们用2000个上下文和生成长度收集了另一组生成。在收集生成时,我们在评估提示前附加一个系统提示。每个模型的系统提示见表31。由于ChatGPT、PaLM和Falcon不提供系统提示,我们使用了与Llama 2-Chat模型相同的系统提示。在一个示例提示上不同模型的生成见表34。

Table 31: 用于人工评估的模型生成的系统提示。
Table 31: 用于人工评估的模型生成的系统提示。

Table 32: 用于人工评估的提示数量。
Table 32: 用于人工评估的提示数量。

Table 33: 有助性提示示例。
Table 33: 有助性提示示例。

Table 34: 比较从Llama 2-Chat和其他模型获得的示例提示的生成。
Table 34: 比较从Llama 2-Chat和其他模型获得的示例提示的生成。

评估方法。在评估中,人类标注员会看到一个提示以及并排呈现的两个模型的生成。他们被要求回答以下问题:

考虑到两个模型的响应,哪个更好(既有帮助又安全诚实),模型A还是模型B?

标注员在一个七点量表上回答这个问题,标签如下:

A好很多,A更好,A稍好,差不多,B稍好,B更好,B好很多。

其中一个模型生成是Llama 2-Chat模型,另一个生成是开源或闭源模型之一。两个模型的响应在呈现给标注员时被随机分配为模型A或模型B。从这些数据中,我们在结果中报告了胜、平、负。每个生成对由三名标注员评分。之前使用五名标注员的实验并未显著改变结果或标注员间的一致性。

额外结果。为了理解系统提示对ChatGPT生成的影响,我们对ChatGPT进行了另一项没有系统提示的人工评估。如图30所示,Llama 2-Chat的胜率从36%增加到44%。此外,单轮提示的胜率从36%显著增加到近49%。在图30中,我们还展示了不同类别提示的胜率分类。有趣的是,ChatGPT在语言辅助方面优于Llama 2-Chat 70B,而Llama 2-Chat 70B在事实性问题上优于ChatGPT。在分析事实性问题的结果时,我们注意到,在两个模型都答对的例子中,标注员因为响应的风格而更喜欢Llama 2-Chat的响应。这些关于事实性问题的结果并不表示任何一个模型的幻觉率。在图31中,我们还分享了按轮数和提示与生成的总词数计算的胜率。我们没有看到胜率与词数或轮数有任何趋势。

Figure 30: 系统提示对ChatGPT人工评估结果的影响(左)。使用系统提示时,Llama 2-Chat 70B与ChatGPT各类别胜率对比(右)。
Figure 30: 系统提示对ChatGPT人工评估结果的影响(左)。使用系统提示时,Llama 2-Chat 70B与ChatGPT各类别胜率对比(右)。

Figure 31: Llama 2-Chat与ChatGPT的胜率按提示中的轮数(左)和提示与生成的总词数(右)分析。对于词数图,我们报告了每个五分位数的胜率。最大总词数(提示和生成)为2432。我们没有看到胜率与词数或轮数有任何趋势。
Figure 31: Llama 2-Chat与ChatGPT的胜率按提示中的轮数(左)和提示与生成的总词数(右)分析。对于词数图,我们报告了每个五分位数的胜率。最大总词数(提示和生成)为2432。我们没有看到胜率与词数或轮数有任何趋势。

A.4 安全性的额外细节

A.4.1 奖励建模中安全性和有助性之间的张力

安全与有助性张力的证据。我们在第3.2.2节简要讨论了安全性和有助性之间的张力,以及这如何导致我们在研究中为有助性和安全性优化两个独立的奖励模型。在这里,我们展示了更多的证据和定性结果来体现这种张力。图32是安全测试集上安全和不安全响应的有助性和安全性奖励模型分数的两个散点图。在安全响应图(左)的右下角(即高安全分数但低有助性分数)和不安全响应图(右)的左上角(即低安全分数但高有助性分数)可以观察到这种张力。我们还在表35中列出了两个定性例子,其中安全性和有助性奖励模型彼此不一致。

Figure 32: 安全(左)和不安全(右)响应集上的安全性和有助性奖励模型分数,这些响应来自安全测试集。安全或不安全的标签由标注员在偏好标注期间提供。在安全响应图的右下角(即高安全分数但低有助性分数)和不安全响应图的左上角(即低安全分数但高有助性分数)可以观察到两个方面之间的冲突。
Figure 32: 安全(左)和不安全(右)响应集上的安全性和有助性奖励模型分数,这些响应来自安全测试集。安全或不安全的标签由标注员在偏好标注期间提供。在安全响应图的右下角(即高安全分数但低有助性分数)和不安全响应图的左上角(即低安全分数但高有助性分数)可以观察到两个方面之间的冲突。

Table 35: 安全性和有助性奖励模型不一致的例子。上图:低安全奖励分数但高有助性奖励模型分数。下图:高安全奖励模型分数但低有助性奖励分数。选择的响应示例仅用于说明有助性和安全性之间的张力。我们的微调模型被训练为不生成类似的不安全响应。
Table 35: 安全性和有助性奖励模型不一致的例子。上图:低安全奖励分数但高有助性奖励模型分数。下图:高安全奖励模型分数但低有助性奖励分数。选择的响应示例仅用于说明有助性和安全性之间的张力。我们的微调模型被训练为不生成类似的不安全响应。

A.4.2 安全数据规模化的定性结果

安全数据规模化的定性分析。在第4.2.3节中,我们以定量的方式研究了在模型RLHF中增加更多安全数据的影响。在这里,我们展示了几个样本,以定性地检查当我们扩展安全数据时模型行为的演变,如表36、37和38所示。总的来说,我们观察到,随着使用更多安全数据,Llama 2-Chat在响应不安全提示时变得更安全。例如,一旦我们使用50%的安全数据,Llama 2-Chat学会了拒绝生成冒犯性内容(表36)。同时,我们也观察到,当提示中存在冒犯性(例如,表37中的“abomination”)或敏感词(例如,表38中的“sex in a pan”)时,即使提示本身是安全的(例如,“sex in a pan”是一种甜点的名称),Llama 2-Chat也开始表现得更加保守。

Table 36: 安全数据扩展影响的定性示例。Llama 2-Chat学会不生成冒犯性或有问题的内容。
Table 36: 安全数据扩展影响的定性示例。Llama 2-Chat学会不生成冒犯性或有问题的内容。

Table 37: 安全数据扩展影响的定性示例。在模型调优中包含100%的安全数据后,Llama 2-Chat开始教育用户要尊重他人,不要使用诸如“abomination”之类的冒犯性词语。
Table 37: 安全数据扩展影响的定性示例。在模型调优中包含100%的安全数据后,Llama 2-Chat开始教育用户要尊重他人,不要使用诸如“abomination”之类的冒犯性词语。

Table 38: 安全数据扩展影响的定性示例。随着在模型调优中使用更多安全数据,Llama 2-Chat将“sex in a pan”视为敏感和性相关的,尽管“taste”的提示暗示它是食物。
Table 38: 安全数据扩展影响的定性示例。随着在模型调优中使用更多安全数据,Llama 2-Chat将“sex in a pan”视为敏感和性相关的,尽管“taste”的提示暗示它是食物。

A.4.3 英语代词

代词分析术语。我们用于代词分析的术语与PaLM 2论文【Anil等人,Palm 2 technical report,2023】一致:
* She: "she", "her", "hers", "herself"
* He: "he", "him", "his", "himself"
* Unknown: "they", "them", "their", "theirs", "theirself", "themself", "themselves"
* 第一人称: "I", "me", "my", "mine", "myself", "we", "us", "our", "ours", "ourselves"
* 第二人称: "you", "your", "yours", "yourself", "yourselves"
* 第三人称: "she", "her", "hers", "herself", "he", "him", "his", "himself", "they", "them", "their", "theirs", "theirself", "themself", "themselves", "it", "its", "itself"

A.4.4 上下文蒸馏预提示

预提示示例。我们在表39中展示了我们使用的预提示示例。

Table 39: 用于上下文蒸馏的安全预提示。我们使用各种预提示进行上下文蒸馏,一些灵感来自Bai等人(2022b),另一些是我们自己创建的。我们还使用针对我们分配给某些风险类别的特定提示的预提示(见底部两个例子)。
Table 39: 用于上下文蒸馏的安全预提示。我们使用各种预提示进行上下文蒸馏,一些灵感来自Bai等人(2022b),另一些是我们自己创建的。我们还使用针对我们分配给某些风险类别的特定提示的预提示(见底部两个例子)。

A.4.5 安全性错误:错误拒绝和模糊响应

错误示例。有关因提示中感知到的安全问题而导致的错误拒绝的示例,请参见表40;有关错误拒绝率随所用安全数据百分比变化的函数,请参见图33。有关上下文蒸馏导致的模糊响应或错误拒绝的示例,请参见表41。

Table 40: 上下文蒸馏引入的错误。上下文蒸馏使响应变得模糊(上例)或导致错误拒绝(下例)的示例。
Table 40: 上下文蒸馏引入的错误。上下文蒸馏使响应变得模糊(上例)或导致错误拒绝(下例)的示例。

Table 41: 因感知到的安全问题而导致的错误拒绝示例。第一个示例来自有助性数据集,第二个和第三个示例来自边界数据集,其中尽管提示本身是良性的,但提示中存在如“crack”和“bomb”等敏感关键词。
Table 41: 因感知到的安全问题而导致的错误拒绝示例。第一个示例来自有助性数据集,第二个和第三个示例来自边界数据集,其中尽管提示本身是良性的,但提示中存在如“crack”和“bomb”等敏感关键词。

Figure 33: 错误模型拒绝率随安全数据百分比的增加而增加。左图:有助性数据集上的错误拒绝率从0.006%(即1次)到0.05%(即8次);右图:边界数据集上的错误拒绝率从15%到27%。
Figure 33: 错误模型拒绝率随安全数据百分比的增加而增加。左图:有助性数据集上的错误拒绝率从0.006%(即1次)到0.05%(即8次);右图:边界数据集上的错误拒绝率从15%到27%。

A.4.6 安全性评估示例

评估示例。我们在表42中展示了不同风险类别的安全性评估提示示例,并在表43中展示了响应。

Table 42: 安全性评估提示示例。
Table 42: 安全性评估提示示例。

Table 43: 比较从Llama 2-Chat和其他模型获得的对抗性提示的响应。
Table 43: 比较从Llama 2-Chat和其他模型获得的对抗性提示的响应。

A.6 数据集污染

污染检测方法。我们没有采用传统的n-gram碰撞检测,而是从底层视角匹配标记化的输入。如果一个词元出现在评估样本和训练集中任何长度大于10的词元n-gram中,我们认为该词元被污染。一个样本的污染百分比定义为被污染词元的百分比。为了考虑口语化样本精确格式的变数,我们允许四个词元的“跳跃预算”。我们通过假设来判断污染是否影响了评估性能:如果最干净的样本平均得分低于其补集,并且最脏的样本平均得分高于其补集,则认为存在影响。

污染分析结果。分析结果见表51。我们观察到,似乎只有HellaSwag和MMLU-Humanities因训练数据中的污染而性能提升,70B模型似乎比7B模型获益更大,正如人们所预期的那样。此外,这种效应对MMLU-Humanities的影响似乎对70B模型的MMLU-Overall产生了好处,尽管“干净”子集性能与抽样均值之间的差异很小(-0.9)。没有其他数据集(对于任何选择的L)似乎从数据集污染中受益,为简洁起见,我们省略了这些数据集的结果。

Table 51: 受影响数据集的污染分析结果。没有其他评估数据集有足够的证据被认为受到污染的影响。平均污染百分比表示给定子集类型的每个样本的平均污染百分比。模型大小指仅预训练模型。
Table 51: 受影响数据集的污染分析结果。没有其他评估数据集有足够的证据被认为受到污染的影响。平均污染百分比表示给定子集类型的每个样本的平均污染百分比。模型大小指仅预训练模型。