LlaMA 2是一个经过预训练与微调的基于自回归的transformer的LLMs,参数从7B至70B。同期推出的Llama 2-Chat是Llama 2专门为对话领域微调的模型。 在许多开放的基准测试中Llama 2-Chat优于其他开源的聊天模型,此外Llama 2-Chat还做了可用性与安全性评估。 Meta官方推荐可将其作为大部分的闭源模型替代品。
Meta不仅开源了Llama 2而且还详细说明了其微调的方法和安全改进的方案, 是目前国内部分知名LLMs的前身,值得好好研究,内容比Gemini的报告强不少。
译自’Llama2: Open Foundation and Fine-Tuned Chat Models’ 只做了速检,笔者水平有限,敬请勘误。
原始信息
- 名称: Llama 2: Open Foundation and Fine-Tuned Chat Models
- 译名: Llama 2:开源的基础模型和微调的聊天模型
- 文章: arxiv.org/pdf/2307.09…
- 代码:huggingface.co/meta-llama
- 日期: 2024-9-25
- LlaMA全称:Large Language Model Meta AI
引言
大模型作为一个能力强大的AI助手, 擅长复杂的推理任务,这些任务往往需要广泛领域专业知识,包括编程、创意写作等专业领域。他们能通过直观的聊天界面与人类互动,使其在普通大众间迅速的传播及使用。
方法简单能力出众的LLMs, 需要大量的算力与人工标注成本
自回归的transformers是由大量的自监督语料库训练而成,然后通过诸如人类反馈强化学习(Reinforcement Learning with Human Feedback, RLHF) 等技术与人类偏好对齐。 尽管训练方法有简单,但其高算力的要求让LLMs的开发仅限在了几个大企业之间。目前有一些公开发行的LLMs(如BlOOM、LLaMa-1 和 Falcon) 其性能更靠近封闭式的预训练模型GPT-3和Chinchilla, 但这些产品并不是封闭式LLMs(如 ChatGPT、BARD 和 Claude) 的替代品。后者经过大严格的微调更符合人类偏好,且更具可靠性和安全性。 这些需要大量的算力和人工标注成本, 这些既不透明又不易于复制(easily reproducible) 的成本限制了社区推进AI对齐研究的进展。
我们发布的Llama 2,是经过微调与预训练的系列产品,Llama 2和Llama 2-Chat, 参数高达70B。 我们做一系列的可用性与安全性测试,Llama 2-Chat比现有的模型表现更好。它们似乎也和某些闭源模型的能力不相上下, 至少在我们的人工评测上是这样的。我们在提升模型安全性上采取了措施: 通过使用专有的安全数据标注与调整,进行了红蓝对抗(red-teaming)和迭代评估。 该论文包含了详尽的Llama 2的微调方式和其提升安全性的方法。我们希望这种开放性能让社区复制这个微调过的模型和并继续提高模型的安全性,为更尽责的发展LLMs铺平道路。
在该论文中,我们还分享了在开发Llama 2 and Llama 2-Chat过程中所做创新,诸如时间组织的知识和工具使用。
发布的Llama 2系列版本,可供研究与商业使用
1、Llama 2, 是Llama 1的升级版,由公开可用的数据重新组合训练而成。对比Llama 1其预训练语料库的大小增加了40%,模型的上下度增加了一倍, 采用了分组查询注意力。 Llama 2一共发行了7B,13B和70B参数的三个不同参数的版本,另外Meta内部训练了一个34B参数的版本,该版本在论文中提及并没有发布。
2、Llama 2-Chat,专门针对对话场景做了优化与精调听Llama 2版本,该Llama 2-Chat也有7B, 13B, and 70B的三个不同参数的版本。
Meta声明公开发行的Llama 2采用了新的技术,这些新技术在使用时目前还有潜在风险,因此Meta对Llama 2做了安全评测与调整。Meta相信这个经过安全评测的LLMs是对社会有益。 论文指出目前所有用于Llama 2测试数据都是基于英文的,并没有涵盖所有的场景,他们建议开发人员在配置Llama 2-Chat之前应该根据他们特定的应用程序对模型进行安全测试与调整。
LLAMA 2-CHAT的训练过程图
上图是LLAMA 2-CHAT的训练图示。 LLAMA 2使用了公开可用的在线数据进行预训练,基于此,Llama 2构建了一个LLAMA 2-CHAT的初始版本,该版本应用了有监督的微调技术。随后,模型使用RLHF对模武做了迭代策调,采用了拒绝采样与近端策略优化(Proximal Polic Optimization,简称PPO)。 在整个RLHF阶段, 迭代奖励建模数据的累积与模型增强并行,这确保被奖励的模型保持在其分布的范围内。
预训练
预训练数据
我们的预训练语料库来自公开来源的新数据组合,他们并不包含来自Meta的产品或服务的数据。我们删除从某些已知的保留大量个人信息网站上的数据。我们训练了2万亿的数据,这提供了良好的性能与成本权衡 (performance–cost trade-off), 对真实数据来源做了采样,以增强模型的知识性并抑制幻觉。
预训练数据来源有: CommonCrawl、C4、Github、Wikipedia、Books、ArXiv、StackExchange
训练细节
我们采用了Llama 1中的大部分预训练配置与架构,使用标准了transformered架构,使用RMSNorm(均方根误差) 应用预归一化,使用SwiGLU激活函数,施转嵌入定位(RoPE)。 与Llama 1架构主要差别是增加了上下文长度和使用分组查询注意力(grouped-query attention GQA)。
超参数
我们使用了AdamW优化器, 其中β1=0.9,β2=0.95,eps=10−5β1=0.9,β2=0.95,eps=10−5。 我们使用了余弦学习率表,预热2000步,学习率最后衰减至其峰值的10%。我们使用了0.1衰减权重和1.0的梯度裁剪。
Table 1:Llama 2 与 Llama 1的属性对比
Figure 5: LlaMa 2的损失训练