1.2.5 LLaMA系列模型
随着语言模型参数量的不断增加,如何在给定训练成本的情况下训练出效果更好的大型语言模型是一个重要的课题。很多研究表明,在有限的训练资源下,性能最佳的语言模型不是将参数量设置为无限大,而是在更多的数据上训练参数量较少(60亿个参数以上)的模型。在这种情况下,模型的推理成本也更低。
LLaMA模型是由MetaAI在2023年2月提出的,共开源了70亿个参数、130亿个参数、330亿个参数和650亿个参数4种不同大小的模型。经过1.4万亿个Token的数据训练后的LLaMA模型,仅130亿个参数的性能就优于使用1750亿个参数的GPT-3模型。此外,130亿个参数的LLaMA模型只需要一个V100显卡就可以进行推理计算,大大降低了大型语言模型的推理成本。
LLaMA模型在Transformer的解码器结构的基础上进行了以下3点改进。
●预先归一化:为了提高训练的稳定性,将每一层的输入进行归一化后,再进行层内参数计算,其中归一化函数采用RMSNorm函数。
●SwiGLU激活函数:将ReLU激活函数替换成SwiGLU激活函数。
●旋转位置编码:去除原有的绝对位置编码,在每一层网络中增加旋转位置编码。
模型在训练过程中使用AdamW优化器进行训练,其中β1和β2分别为0.9和0.95,并根据模型的大小改变学习率和训练批次大小,详情如表1-4所示。LLaMA模型在训练时进行了训练加速优化,使650亿个参数的模型在单个80GB显存的A100显卡上每秒可以处理380个Token,最终在2048个A100显卡上进行训练,1.4万亿个Token的训练数据在21天内训练完成。
表1-4 不同参数量LLaMA模型的训练参数
LLaMA模型开源后,衍生出了很多基于LLaMA模型进行继续预训练或指令微调的模型,如Alpaca模型、Vicuna模型、Chinese LLaMA模型等,如图1-10所示,可以说LLaMA模型降低了很多人进入大型语言模型赛道的门槛。
图1-10 LLaMA衍生模型示意图
2023年7月18日,MetaAI又开源了LLaMA2模型,此次不仅开源了预训练模型,还开源了利用对话数据微调后的LLaMA2-Chat模型,均包含70亿个参数、130亿个参数和700亿个参数三种。在预训练阶段使用了2万亿个Token,在微调阶段使用了超过10万个数据,人类偏好数据超过100万。
LLaMA2模型依旧采用Transformer的解码器结构,与LLaMA模型相同的是采用RMSNorm归一化、SwiGLU激活函数、RoPE位置嵌入、相同的词表构建方式与大小,与LLaMA模型不同的是增加了GQA(分组查询注意力),扩大了模型输入的最大长度,预训练语料库增加了40%。模型预训练采用AdamW优化器,其β1、β2和学习率分别为0.9、0.95和10×10-5,采用cosin学习率,预热2000步后进行学习率衰减,最终降至峰值的10%,权重衰减系数为0.1,梯度裁剪值为1.0。
模型在进行人类偏好对齐时,重点关注有用性和安全性。由于有用性和安全性很难在同一个奖励模型中表现都很好,因此独立训练了两个奖励模型,一个针对有用性进行了优化,另一个针对安全性进行了优化。由于模型在几轮对话后往往忘记最初的指令,为了解决这些问题,采用Ghost Attention方法来增强模型对指令的遵从。