- 名称: Llama 2: Open Foundation and Fine-Tuned Chat Models
- 译名: Llama 2:开源的基础模型和微调的聊天模型
- 文章: arxiv.org/pdf/2307.09…
- 代码:huggingface.co/meta-llama
- 日期: 2023-07-19
- LlaMA全称:Large Language Model Meta AI
- 译自’Llama 2: Open Foundation and Fine-Tuned Chat Models’,此为下文, 敬请勘误。
- 安全、讨论与相关工作及附录未翻译全(文章实在太长了, 笔者后面继续)。
- 结论处笔者附加了总结。
接 Llama系列-Llama 2及LLaMA_chat(上)
多转一致性的系统消息 – System Message for Multi-Turn Consistency
在对话设置中,某些指示应适用于所有对话轮次。 例如,简洁地响应,或”充当”某个公众人物。当我们向Llama 2-Chat提供此类指示时,后续应响应始终遵守约束。然而,我们最初的RLHF模型往往会在几轮对话后忘记最初的指令,如图9(左)所示。为了解决这个问题,我们提出了Ghost Attention(GAtt),这是一种受上下文蒸馏启发的非常简单的方法,它对微调数据进行破解(hacks),以帮助注意力集中在多阶段过程中。如图9(右)所示,GAtt能控制对多轮对话,如图(9)右所示。
GAtt方法
假设我们有一组两人之间的多轮对话的数据集(例如,一个用户一和个助理),其中用户信息为u开头,助理回应的消息为a开头, n代表轮次, 对话内容为[u1,ai,…,un,an]。 然后我们再定义一个作用于整个对话的指令(例如,指令可以是”act as”),并将该指令与对话集融合。
下一步,我们使用最新的RLHF模型从这个合成的对话集中进行采样。 我们现在就有一个上下文对话和样本,可采用类似于拒绝采样的过程对模型进行微调。 我们可以在除了第一回合之后移除了,而不是用指令来扩充所有的上下文对话,但这会导致系统消息(即最后一个回合之前的所有中间辅助消息)和我们的样本在训练时间上的不匹配。为了解决这个可能会影响到训练的问题,我们只需将前几回合的token的损失设置为0,这些token包括辅助消息。
为了这些训练的指令,我们创建一些合成约束条件来进行采样:爱好(比如”你喜欢网球”),语言(比如”讲法语”),或公众人物(比如“扮演拿破伦”)。 这些兴趣爱好与公众人物列表 我们要求Llama 2-Chat来生成,这样可以指令和模型知识间的不匹配(例如:要求模型去扮演在训练时不存在的人物或兴趣). 为了让指令更加的复杂和多样式,我们通过随机组合上述约束来构建最终指令。在为训练数据构建最终的系统统消息时,我们也会有一半的时间去修改原始指令,使期不要那么冗长,例如:”从现在开始总是充当拿破仑“将改为”身份:拿破仑.”。这些步骤会生成一个SFT数据集,用于微调Llama-2-chat.
GAtt评估
我们RLHF V3之后开始使用Gatt。 我们的一份定量分析报告指明GAtt可以让多轮对话在达到最大上下文长度之前将对话持续20+轮,还能保证一致性。 图28我们展示了推理时Gatt训练时不使用约束的情况,从图中可以看出,模型一致性保持的不错。
为了描述GAtt在微调期间如何重塑注意力,图10展示了我们模型的最大注意力激动情况,其中图的左侧对应的系统消息(例如“扮演奥斯卡·王尔德”),左图为没用GAtt模型的情况,右图为使用GAtt模型的史。我们从图可以看到,与没有Gatt(左)的模型相比,配备了GAtt的模型(右)在对话的大部分时间里保持了对系统消息的最大注意力激活。尽管他很实用,但当前的GAtt实现是vanilla且该技术的更多开发和迭代可能对该模型更有益。例如,我们可以教模型去在对话期间过程中通过在微调过程中集成这些数据去改变系统消息。
RLHF结果
Model-Based Evaluation
评估LLMs是一个具有挑战性的开放研究问题。虽然人类评估是一个黄金标准,但也可能因为各种HCI因素而变的复杂,且并不总是可扩展的。为了在每 在从RLHF-V1到V5的每次迭代的几个消融中选择性能最好的模型, 我们首先从最新的奖励模型中观察到奖励的改进,以节省成本同时提高迭代速度。我们后来通过人工评估验证了主要模板的版本。
基于模型的评估能走多远? 为了衡量我们奖励模型的鲁棒性,我们收集了一组安全性与有用性并存的提示测试性, 要求三位标注者根据7-point Likert方法值(越高越好)来判断答案的质量。由此,我们观察到我们的奖励模型总体上与人类偏好是对齐的,如下图(图29)。这证实了使用我们的奖励作为逐点指标的相关性,尽管我们接受了成对排名损失的训练。
尽管如此,正如Goodhart定律所指出的,当措施变成目标时,它就不再是一个好的措施。为了保证我们的措施与人类偏好没有偏离,我们还用了一种更通用的奖励,在不同的开源奖励模型集进行训练。我们还没观察到任何的偏离,因此我我们假设迭代模型更新可能有助于防止这种情况的发生。
最后一个验证步骤,是确保我们的新模型与前一个模型之间不存在回归, 我们在下一个标注迭代中使用这两个模型进行采样。这样我们可以在新提示上“免费”进行模型比较,还有助于增加采样的多样性。
模型进展。 下图(图11) 展示了我们针对SFT和RLHF不同版本版本的进展,该图示是由我们内部的安全性与有用性的奖励模型测量所得。在这些评估集中,RLHF-V3后我们在SFT和RLHF上都胜过了ChatGPT(无害性与有用性都超过了50%)。尽管前面提到了使用我们奖励作为逐点衡量标准(point-wise metric)的相关性,但可以说,它可能偏向于Llama 2-Chat。因此为了比较的公平性,我们使用GPT-4额外计算最终结果,用于评估模型优劣。ChatGPT和Llama 2-Chat的输出顺序 GPT-4的提示
为了避免任何偏差,ChatGPT和Llama 2-Chat输出在GPT-4提示下出现的顺序是随机且交替的,这样可以避免任何偏差。正如所预期的那样,尽管我们最新的Llama 2-Chat获得了超过60%的胜率,但支持Llama 2-Chat的胜率并不那么明显。 这个提示分别对应于1586和584个安全性和有用性验证集。
Human Evaluation
人类评估通常被视为评判自然语言生成模型(包括对话类模型)的黄金标准。 为了评估主要模型版本的质量,我们要求人类评估员对其安全性与有效性进行评分。我们采用超过4000个单轮或多轮的提示就Llama 2-Chat与其他开源的模型(Falcon, MPT MosaicML NLP Team et al. (2023), Vicuna Chiang et al. (2023), as well as closed-source models (ChatGPT (OpenAI, 2023) and PaLM Anil et al. (2023))做了比较,其中ChatGPT我们使用了gpt-3.5-turbo-0301型号的模板, PaLM我们使用了chat-bison-001型号的模型,每一个模板的人类评估所使用的提示数量见表Table 32. 更多的理论细节见附录的A.3.7章节。下面的章节,我们只展示有用性结果,而安全性相关的结构将在安全性的章节中阐述(Section 4.4).
结论。 从图12(上图)可以看出,Llama 2-Chat在单轮与多轮提示中都明显优于其他开源模型。特别是Llama 2-Chat 7B模型在提示上要超过MPT-7B-chat的60%。Llama 2-Chat 34B与同等尺寸的Vicuna-33B和Falcon 40B型号相比,总体胜率超过75%。最大参数的Llama 2-Chat模型与ChatGPT很具竞争力的。Llama 2-Chat 70B模型相对于ChatGPT的胜率36%,平局率为1.5%。 在我们的提示集中Lama 2-Chat 70B模型要PaLM bison Chat模型好很多。更多结果和分析见第A.3.7节。
Inter-Rater Reliability (内部评测方法的可靠性,简称IRR)。在人类评估中,三个不同的标注为每一个模型生成比较提供独立的评估。从数据质量的角度来看,高IRR分值(接近1.0)常能被视为更好,然后,上下文很重要。高度主观的任务,比如评估LLM生成的总体有用性,通常比更客观的标记任务会有较低的IRR分值。针对这些任务的公共基准测试集相对要少,所以我们认为分享我们的分析结果有利于研究界。
我们使用Gwet的AC1/2统计方法来评测IRR,因为我们发现他是不同测量场景中最稳定的指标。在使用7-point Likert方法评估模型有用性任务时,根据不同的模型,Gwet的AC1/2统计得分在 0.37 到 0.55之间变化。 在获胜负相近的模型比较(比如Llama 2-Chat-70B-chat和ChatGPT比较)中其分值处于低分区。而在胜负相差较明显的两个模型(比如: Llama 2-Chat-34b-chat和Falcon-40b-instruct比较中,其分值处于高分区。
人类评估局限制。 尽管我们结果表示表明,Llama 2-Chat在人类评估方面与ChatGPT不相上下,但值得注意是事,人类评估有一些局限制:
- 按学院和研究标准,我们的4k的提示词集已足够大了。然而,他并不覆盖查模型在真实使用的使用场景,后者需要更额外更多的用例。
- 提示的多样性是影响结果的另外一个因素。例如,我们的提示集并不包含任何与编码或推理相关的提示。
- 我们仅评估多轮对话的最后一轮的结果。 一个更有意思的评估是要求模型去完成一个任务,并对模型在整个多轮对话的整体体验进行评估。
- 生成模型的人类评估本质上是主观的且有噪声的。因此,对不同提示词集合或不同指令的评估可能会导致不同的结果
安全性
安全预训练
重要的是要了解预训练数据中的内容,这不仅可以提高透明度,还可以阐明潜在问题(如潜在的偏见)的根本原因。这将能告知(如果有的话)下游需要考虑哪些缓解措施,同时帮助指导适当的模型使用。在本节中,我们分析了预训练数据的语言分布、人类学特征和和有害内容。我们还展示了在现有安全基准上测试预训练模型的结果
完成一次“负责任”的预训练需要采取哪些步骤。 对于训练中使用的每个数据集,我们遵循了Meta的标准隐私策略和法律审查流程。 在训练中,我们没有使用Meta用户的私有数据。我们排除来自某些已知包含大量个人信息的网站的数据。我们尽最大努力高效的训练模型,以减少预训练期间的碳足迹(第 2.2.1 节)。尽可能的共享Meta的模型以减少重复造轮子。也没有对数据集进行额外的过滤,这样可以使得Llama 2的适用于更多的任务(例如,它可以更好地用于仇恨言论分类),同时避免有时因过度清理而导致的意外统计数据擦除的可能。 更重要的是,这将使得Llama 2-Chat在安全微调时能用更少样本进行更有效地泛化。最后,在使用和后续开发Llama 2模型时应当非常谨慎,充分注意到安全性。
人类表征:代词. 模型生成中的偏差可能是从训练数据本身继承而来的。 例如,Bailey等人的研究表明,在大量文本语料库中,”people”在上下文中常常与代表”男性”的单词相似。Ganesh等人研究表明 就公平性指标而言,模型在公平性指示上的表现,可能高度的依赖于模型训练时如何对待小规模人口群体(representing underrepresented demographic groups). 在英语训练语料库中,我们对最常见的英语代词的频率做了计算,见表9a. 我们观察到,比’SHE’,’He’这个代词在文档中的比例通常更高(过高),与此相似,在描述大小的模型预训练数据集的代词中,也有类似的现象。这可能意味着模型在预训练过程中对提到She代词的上下文学习较少,因此可能会更倾向于生成He相关的内容。
人类表征:身份. 我们还通过 测量HolisticBias数据集中人口特征术语的使用率,分析了预训练数据中不同人口群体的身份指代词。我们对预训练语料库中每个术语的使用频率进行了计算。 当归纳总结为5维(宗教、性别、国籍、种族和民族以及性取向),见表9b中显示每个维度中排名前5的术语。在前5维术语中,我们删除了一些术语,例如”直”(注:性取向)、“白”和“黑”(注:肤色),因为这些术语在除了人类表征的其他领域也有着频繁的使用(例如,作为基本颜色术语)。我们还对列表进行重复数据删除,删除了和”性别”和”性与性取向”有关的术语。对于性别和性,虽然很少用到”她”这个代词,但是”女性”一词经常出现。这可能意味着,虽然有关”她”这个代词的上下文较少,但有关”女性”的评论更多,这可能反映了这些术语的语言标记性差异。对于性取向,排名前五的术语均与LGBTQ+ 的身份相关。对于国籍、种族和民族以及宗教,我们观察到这些数据更偏向于西方世界的文化。例如,69.4%的参考文献中提到了”美国”一词,”欧洲人”一词比其他种族和民族出现得更普遍,”基督教”是出现最多的宗教,其次是”天主教”和”犹太教”。
数据毒性(Toxicity). 我们使用了在ToxiGen数据集上微调的使用HateBERT分类器构建语料库,测量预训练语料中英语部分的有害言论的出现概率。我们针对文档的每一行进行打分,平均后作为文档的分值。图13显示了从总体语料中随机抽样10%的条件下的打分分布情况,其中约0.2%文档得分>=0.5,这意味着预训练数据中存在少量有害内容。
语言识别. 虽然我们的预训练数据主要是英语,但也包括少量其他语言的内容。表10显示了我们语料库中语言的分布(统计抽样子集为总语料库的0.005%)。我们使用fastText语言识别工具,并设置了0.5阈值的语言检测。以英语为主的训练语料库意味着该模型可能不适合在其他语言中使用
预训练模型的安全基准评估。我们根据三个主流的自动化评估基准(Benchmarks) 评估离Llama 2 的安全能力,其中涉及大模型的预训练中的三个关键维度。
-
Truthfulness, referring to whether a language model produces known falsehoods due to misconceptions or false beliefs. We employ TruthfulQA (Lin et al., 2021) to measure how well our LLMs can generate reliable outputs that agree with factuality and common sense.
-
Toxicity, defined as the tendency of a language model to generate toxic, rude, adversarial, or implicitly hateful content. We choose ToxiGen (Hartvigsen et al., 2022) to measure the amount of generation of toxic language and hate speech across different groups.
-
Bias, defined as how model generations reproduce existing stereotypical social biases. We use BOLD (Dhamala et al., 2021) to study how the sentiment in model generations may vary with demographic attributes.
We compare the performance of Llama 2 with Llama 1 (Touvron et al., 2023), Falcon (Almazrouei et al., 2023), and MPT (MosaicML NLP Team et al., 2023) in Table 11. For decoding, we set temperature to 0.1 and use nucleus sampling (Holtzman et al., 2020) with top-p set to 0.9. For TruthfulQA, we present the percentage of generations that are both truthful and informative (the higher, the better). For ToxiGen, we present the percentage of generations that are deemed toxic by the metric (the lower, the better). Detailed descriptions of the benchmarks and metrics can be found in Appendix A.4.7. When compared to Llama 1-7B, Llama 2-7B demonstrates a 21.37% increase in truthfulness and informativeness and a 7.61% decrease in toxicity. We also observe an increase in toxicity in the pretrained 13B and 70B Llama 2, which may result from larger pretraining data or a different dataset mix. Some have postulated the existence of a relationship between pretraining dataset size and downstream model toxicity or bias (Bender et al., 2021b), but empirical work to validate this claim is still ongoing (Dodge et al., 2021; Smith and Williams, 2021; Tal et al., 2022), and further evidence from up-to-date models is still needed。
In Appendix A.4.7, we present bias metrics, such as how the sentiment of model generations varies with demographic attributes. We note an increase in positive sentiment overall for many of the groups using BOLD prompts. More detailed results split by different demographic groups can be found in Appendix A.4.8。
Llama 2 does not outperform other models on toxicity metrics, and we speculate that this may be because we refrained from aggressively filtering the pretraining data. Recall that leaving pretraining data unfiltered may enable base models tuned to perform well on more downstream tasks (including hate speech detection), and it carries less risk of accidentally filtering out some demographic groups. We observe that models trained from less aggressively filtered pretraining data also required fewer examples to achieve reasonable safety-alignment. We reiterate that this motivated choice does imply that additional safety mitigations should be applied before deployment of base Llama 2 models。
Benchmarks give a summary view of model capabilities and behaviors that allow us to understand general patterns in the model, but they do not provide a fully comprehensive view of the impact the model may have on people or real-world outcomes; that would require study of end-to-end product deployments. Further testing and mitigation should be done to understand bias and other social issues for the specific context in which a system may be deployed. For this, it may be necessary to test beyond the groups available in the BOLD dataset (race, religion, and gender). As LLMs are integrated and deployed, we look forward to continuing research that will amplify their potential for positive impact on these important social issues。
结论
在这项研究中,我们介绍了Llama 2系列模型的预训练和微调模型,其规模从70亿到700亿个参数不等。这些模型已经证明了它们与现有的开源语言模型相比的竞争力,并且在评估数据集上表现出了等同于某些专有模型(闭源模型)的能力,虽然Llama 2仍然落后于一些模型,如GPT-4。我们详细阐述了实现这些模型所应用的方法和技术,重点强调其同时具备有用性和安全性。为了更有意义地为社会做出贡献并促进研究,我们负有责任地开放了Llama 2和Llama 2-Chat的访问权限,作为持续致力于透明度和安全性的一部分,我们计划在未来的工作中进一步改进Llama 2-Chat。
以下是笔者添加的总结
Llama 2 总结
沿用了Llama 1的设计与架构:RoPE、RMSNorm、SwiGLU+AdamW
- Llama 2采用了Llama 1中的大部分预训练设置和模型架构,包括标准Transformer架构、使用RMSNorm的预归一化、SwiGLU激活函数和旋转位置嵌入(RoPE)。
- 采用AdamW 优化器进行训练,其中β1=0.9,β2=0.95,eps=10−5β_1= 0.9,β_2 = 0.95,eps = 10^{−5}。同时使用余弦(consin)学习率表, 预热2000 步,并最终将学习率衰减到了峰值学习率的10%。
- Meta在其研究超级集群(Research Super Cluster, RSC)以及内部生产集群上都对模型进行了预训练。
Llama 2的预训练与微调
- Llama 2的数据量比Llama 1多了40%,上下文长度增加了一倍(上下文长度高达 4096)。
- Llama 2模型是在2万亿个标记上进行训练的,Llama-2-chat模型还额外训练了超过100万个新的人类标注。
- 上下文长度高达4096(是 Llama 1的两倍)
- 高质量SFT
- RLHF对齐(PPO+Rejection Sampling fine-tuning 近邻策略和拒绝采样微调):Llama-2-chat使用从人类反馈中进行的强化学习来确保安全和有用。
Llama 2的安全性
- 通过三个常用基准评估Llama 2的安全性:采用 TruthfulQA 基准评估真实性; 采用ToxiGen基准评估毒性,采用BOLD基准评估偏见。
- Meta在安全微调中使用监督安全微调、安全RLHF、安全上下文蒸馏。
附录
(待续)
各种型号Llama2模型地址
- 中文
- Llama2-Chinese-7b-Chat: huggingface.co/FlagAlpha/L…
- Atom
- Atom-7B: huggingface.co/FlagAlpha/A…
- Atom-7B-Chat: huggingface.co/FlagAlpha/A…
- hf
- Llama-2-7b-hf: huggingface.co/meta-llama/…
- Llama-2-70b-hf: huggingface.co/meta-llama/…
- Llama-2-13b-hf: huggingface.co/meta-llama/…
- Llama-2-13b-chat-hf: huggingface.co/meta-llama/…
- Llama-2-70b-chat-hf: huggingface.co/meta-llama/…
- Llama-2-7b-chat-hf: huggingface.co/meta-llama/…
- base
- Llama-2-7b: huggingface.co/meta-llama/…
- Llama-2-13b: huggingface.co/meta-llama/…
- Llama-2-70b: huggingface.co/meta-llama/…
- char
- Llama-2-7b-chat: huggingface.co/meta-llama/…
- Llama-2-13b-chat: huggingface.co/meta-llama/…
- Llama-2-70b-chat: huggingface.co/meta-llama/…
术语
- Red Teaming: : 红蓝对抗, 在大模型开发的诸多环节中,Red Teaming是一个关键过程,它通过模拟真实世界,来测试AI模型的潜在漏洞、偏见和弱点,以确认模型性能足够可靠。
- PPO(Proximal Polic Optimization),梯度策略的一种改进算法, 详细)
- RMS Norm(均方根误差)是一种常见的数学和统计学概念,用于衡量预测值和真实值之间的平均误差。
- Cosine Learning Rate Decay : 余弦学习率衰减
- MPT: MosaicML预训练模型系列
- Ghost Attention: Gatt – 最初的RLHF模型在几轮对话后忘记最初的指令,下图(左)所示。为了解决这些限制,提出Ghost Attention方法(Gatt,其实是一个训练trick)来增强模型对指令的遵从。
- bootstrap: bootstrap 是从数据样本中估算数量的一种强大的统计方法。例如平均数。你从数据中抽取大量样本,计算平均值,然后平均所有的平均值以便更好的估计真实的平均值,可看看(bagging)。
- 温度参数(temperature parameter),在人工智能领领域,温度参数是指在生成式模型中使用的一种技术,可以用于控制生成结果的多样性和随机性
- HCI: 人机交互(HCI)是一个多学科的实践,注重于用户(人)和计算机之间的交互以及计算机交互界面的设计。
- Inter-Rater Reliability(IRR)系数,两名或更多的评分者之间对同一组受试者评分的可信度(variation)。