Llama的前世今生

在AI领域的快速发展中,大模型正以前所未有的速度推动着技术的边界。Meta发布的Llama系列模型,尤其是最新的Llama-3.1,引起了广泛的关注。本文将详细梳理Llama开源家族的演进历程,包括进化史、模型架构、训练数据、训练方法、效果对比以及社区生态等方面。

1、引言

北京时间7月23日,Meta官宣了Llama3.1,这是继Llama1、Llama2、Code-Llama和Llama3之后的第三代模型,在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。Llama系列模型的演进不仅展示了技术的进步,也对商业和学术界产生了深远的影响。

2、Llama进化史

1、Llama1系列

  • 发布时间和特点:Llama1于2023年2月发布,有7B、13B、30B和65B四个参数量版本,在超过1T token的语料上进行预训练,最大的65B参数模型在2,048张A100 80G GPU上训练近21天,在大多数基准测试中超越了具有175B参数的GPT-3。
  • 开源协议问题:不可免费商用。
  • 生态影响:由于模型开源且性能优异,成为开源社区中最受欢迎的大模型之一,众多研究者将其作为基座模型进行衍生开发,推动了大模型领域的研究进展。

2、Llama2系列

  • 发布时间和特点:时隔5个月,Meta于2023年7月发布,有7B、13B、34B和70B四个参数量版本,除了34B模型外,其他均已开源。预训练语料扩充到2T token,上下文长度翻倍到4,096,并引入分组查询注意力机制(GQA)等技术。
  • 相关模型:通过进一步的有监督微调(SFT)、基于人类反馈的强化学习(RLHF)等技术,Meta发布了面向对话应用的微调系列模型Llama2-Chat;2023年8月,基于Llama2的优异性能,发布了专注于代码生成的Code-Llama。

3、 Llama3系列

  • 发布时间和特点:2024年4月发布,包括8B和70B两个参数量版本,400B的Llama3还在训练中。支持8K长文本,采用编码效率更高的tokenizer,词表大小为128K,预训练数据使用了超过15T token的语料。
  • 性能提升:推理、代码生成和指令跟随等能力得到极大改进,更加可控,在相同规模的大模型中取得最优异的性能。

3、模型架构

主流大语言模型采用Transformer架构,Llama模型与GPT类似,采用基于解码器的架构,并进行了一些改动:

  1. 采用前置的RMSNorm作为层归一化方法,增强训练稳定性。
  2. 采用SwiGLU作为激活函数,提高模型性能。
  3. 采用RoPE作为位置编码,更好地建模长序列数据。
  4. 部分模型采用分组查询注意力机制(GQA),平衡效率和性能。

具体来说,输入的token序列通过词嵌入矩阵转化为词向量序列,依次通过多个解码器层,最后进行归一化输出。每个解码器层中,输入状态经过归一化、注意力模块和前馈网络层处理,输出进行残差连接。

模型 改进
Llama1系列 使用BPE算法分词,由sentencepiece实现,词表大小为32k。
Llama2系列 使用与Llama - 1相同的架构和tokenizer,上下文长度扩展到4k,34B和70B参数量版本使用GQA。
Llama3系列 tokenizer由sentencepiece换成tiktoken,与GPT4保持一致,词表大小扩展到128k,8B和70B都采用GQA,上下文长度扩展到8k。

4、训练数据

1、Llama1系列

  • 数据来源和处理:使用海量无标注数据进行自监督学习,数据来源包括英语CommonCrawl、C4、Github、维基百科、Gutenberg和Books3、ArXiv、Stack Exchange等。经过一系列处理,整个训练数据集包含大约1.4T token,部分数据进行了约两个epoch的训练。

2、Llama2系列

  • 预训练数据:使用来自公开可用源的2T个数据token,对数据安全性进行全面考量,包括隐私和法律审查、排除含大量个人信息的网站数据等,预训练主要集中在英语数据上,非英语语言熟练度有限。
  • 微调数据:Llama2-Chat在为此项目创建的27,540个提示 - 响应对上进行额外微调,使用包含Meta示例和多个小数据集的人类反馈强化学习(RLHF)。

3、Llama3系列

  • 数据量和模型版本:训练数据量从Llama - 2的2T Tokens扩展到15T Tokens,代码数据扩充4倍。提供8B、70B和400B(仍在训练中)三种模型版本,8B性能略优于Mistral 7B和Gemma 7B,70B性能介于ChatGPT 3.5和GPT 4之间,400B旨在成为多模态、多语言版本,预期性能与GPT 4或GPT 4V相当。
  • 数据特点:训练数据包括大量代码token和超过5%的非英语token,来源于30多种语言,提升了模型在多语言处理和代码能力方面的表现。
  • 数据质量保障:Meta开发了一系列数据过滤pipeline,包括启发式过滤器、NSFW过滤器、语义重复数据删除技术及文本分类器,还通过实验评估了混合数据的最佳策略。

5、训练方法

1、Llama1系列

  • 自监督学习:是基础的自监督学习模型,使用AdamW优化器,采用余弦学习率调度、权重衰减、梯度裁剪和预热步骤,还进行了一系列优化措施,如使用xformers库、手动实现反向传播函数、利用检查点技术、采用模型和序列并行性及优化GPU通信等。

2、Llama2系列

  • 微调过程:Llama2-Chat基于Llama2微调,保持固定的4k上下文长度,采用自回归损失函数,训练过程中用户输入提示的token损失被清零。

3、Llama3系列

  • 预训练:投入大量精力扩大预训练,为下游基准测试制定扩展法则,对扩展法则有新观察,如8B模型在训练两个数量级数据后性能仍提高,70B参数模型也有类似表现。结合三种并行策略训练最大模型,开发新训练堆栈提高训练效率,训练效率比Llama2提高约三倍。
  • 微调:对模型的微调方法进行创新,结合有监督微调(SFT)、拒绝采样、近似策略优化(PPO)和直接策略优化(DPO),通过偏好排序的训练提高模型在处理复杂逻辑推理问题时的准确性。

6、Llama3.1介绍

Llama3.1最近才出来,而且还是属于Llama3版本,所以暂时就不归入到前面介绍的内容,在这里单独开一张简单介绍一下。本着旧不如新,如果要部署的话就直接从最新版本开始吧。

6.1 Llama3.1系列模型简介

Llama3.1 系列模型是 Llama3 系列模型持续训练的产物,包含 80 亿参数的 Llama3.1 - 8B、700 亿参数的 Llama3.1 - 70B 和 4050 亿参数的 Llama3.1 - 405B 这三个不同参数规模的版本。这三个模型的训练数据量均达 15 万亿 tokens,上下文长度均为 128K。这里15万亿数据来自公开可用数据集,而微调数据集除了公开数据外,还包含了2500万合成的数据。

模型名称 Llama 3.1 上下文长度 128k
训练数据 公开数据集 是否支持GQA 支持
参数规模 80亿、700亿和4050亿 训练tokens数 15万亿+
输入模态 多语言文本 知识日期 2023年12月份
输出模态 多语言文本和代码

Llama3.1 模型能够支持多种不同的语言,不过仅支持文本的输入与输出。Llama3.1 系列模型依然属于自回归架构的语言模型。其微调版本的模型经历了有监督微调以及 RLHF 训练。该模型支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语等。从上表能够明显看出,Llama3.1 系列模型还支持代码输出。

6.2 Llama3.1系列模型的开源地址

Llama3.1系列模型的开源协议是允许商用的,包括4050亿参数规模的Llama3.1-405B,但是使用的时候必须显著提示“Built with Llama”。此外,月活用户超过7亿,必须向Meta申请额外许可。但是,对于我们影响最大的还是该协议遵守贸易合规,这意味着受到制裁的企业可能无法使用。
Llama3.1系列模型的开源地址等其它信息参考DataLearnerAI大模型信息卡:

模型名称 模型地址
Llama3.1-405B https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-405B
Llama3.1-405B-Instruct https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-405B-Instruct
Llama3.1-70B https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-70B
Llama3.1-70B-Instruct https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-70B-Instruct
Llama3.1-8B https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-8B
Llama3.1-8B-Instruct https://www.datalearner.com/ai-models/pretrained-models/Llama3_1-8B-Instruct

参考

[1] https://cloud.tencent.com/developer/article/2411892
[2] https://www.datalearner.com/llm-blogs/llama3-model-upgrade-analysis

猜你喜欢

转载自blog.csdn.net/baidu_39231810/article/details/140801735