Llama 2 发布! Meta 刚刚发布了 LLaMa 2,它是 LLaMA 的下一代版本,具有商业友好的许可证。 LLaMA 2 有 3 种不同的尺寸:7B、13B 和 70B。 7B & 13B 使用与 LLaMA 1 相同的架构,并且是商业用途的 1 对 1 替代
- 公告: https://ai.meta.com/llama/
- 论文:https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/
- 模型: https://huggingface.co/models?other=llama-2
Llama 2 模型接受了 2 万亿个标记的训练,上下文长度是 Llama 1 的两倍。Llama-2-chat 模型还接受了超过 100 万个新的人类注释的训练。
Llama 2训练语料相比LLaMA多出40%,上下文长度是由之前的2048升级到4096,可以理解和生成更长的文本。
训练 Llama-2-chat:Llama 2 使用公开的在线数据进行预训练。 然后通过使用监督微调创建 Llama-2-chat 的初始版本。 接下来,Llama-2-chat 使用人类反馈强化学习 (RLHF) 进行迭代细化,其中包括拒绝采样和近端策略优化 (PPO)。
为了创建新的 Llama 2 模型系列,我们从Llama预训练方法开始(在参数小的情况尽量学习更多高质量的数据),使用优化的自回归变压器,但进行了一些更改以提高性能。具体来说,进行了更强大的数据清理 ,更新了数据混合,对总标记数量增加了 40% 进行了训练,将上下文长度加倍,并使用分组查询注意力 (GQA) 来提高更大模型的推理可扩展性。 表 1 比较了新 Llama 2 型号与 Llama 1 型号的属性。
从论文总结来看,主要有以下工作:
Llama 2采用了 Llama 1 的大部分预训练设置和模型架构,使用标准Transformer 架构,使用 RMSNorm 应用预归一化、使用 SwiGLU 激活函数和旋转位置嵌入RoPE。
与 Llama 1 的主要架构差异包括增加了上下文长度和分组查询注意力(GQA)。 论文在附录 A.2.1 节中详细介绍了这些差异消融实验以证明其重要性。
Llama 2使用与 Llama 1 相同的分词器; 它采用字节对编码(BPE)算法,使用 SentencePiece 实现。 与Llama 1 一样,将所有数字拆分为单独的数字,并使用字节来分解未知的 UTF-8 字符。 总数
词汇量为 32k 个token
Llama 2 在许多外部基准测试中都优于其他开源语言模型,包括推理、编码、熟练程度和知识测试。
Llama 2-Chat 是数月实验研究和对齐技术迭代应用的结果,包括指令微调和 RLHF,需要大量的计算和数据标注资源。
假设我们可以访问两个人(例如,用户和助手)之间的多轮对话数据集,其中包含消息列表 [u1, a1, . 。 。 , un, an],其中 un 和 an 分别对应于第 n 轮的用户消息和助理消息。 然后,我们定义一条指令,inst,在整个对话过程中都应遵守该指令。 例如,inst 可以是“充当”。 然后我们可以将该指令综合连接到对话的所有用户消息。接下来,可以使用最新的 RLHF 模型从这些合成数据中进行采样。 我们现在有了一个上下文对话和样本,可以用来微调模型,其过程类似于拒绝采样。 可以在除第一轮之外的所有轮次中删除它,而不是用指令来增加所有上下文对话轮次,但这会导致系统消息之间的训练时间不匹配,即最后一个轮次之前出现的所有中间辅助消息 轮到我们的样品了。 为了解决这个可能会损害训练的问题,我们只需将前一轮的所有标记的损失设置为 0,包括辅助消息。
此外论文还有大篇幅介绍RLHF,我们后续再讲
预训练数据中的语言分布,百分比 >= 0.005%。 大多数数据都是英文的,这意味着 Llama 2 在英语用例中表现最佳。 大的未知类别是部分由编程代码数据组成。
另外词表也是Llama 1同样大小(32k),所以基于Llama2还需要做中文增强训练。