Llama开源家族排行榜:从Llama-1到Llama-3版本对比
在AI领域,大模型的技术迭代速度,快到让人有点追不上。
北京时间4月19日凌晨,Meta正式官宣了Llama-3。作为Llama家族第三代成员,它在多个基准测试中实现了全面领先,性能直接碾压了业内同类最强模型。从Llama-1到Llama-3,这个系列不仅一次次刷新技术天花板,也在商业和学术界投下了重磅冲击波。系统性地梳理这几个版本的演进,既能看清技术细节的脉络,也能帮我们理解这些大模型是如何解决真实世界中的复杂问题的。
这篇文章会详细梳理Llama开源家族的演进历程,内容覆盖以下几个维度:
- Llama进化史(第1节)
- 模型架构(第2节)
- 训练数据(第3节)
- 训练方法(第4节)
- 效果对比(第5节)
- 社区生态(第6节)
- 总结(第7节)
1. Llama进化史
这一节先快速过一下每个版本的核心信息,包括发布时间和主要特点。
1.1 Llama-1 系列
Llama-1是Meta在2023年2月放出来的大模型,当时在开源阵营里可以说是拔尖的。它提供了7B、13B、30B、65B四个参数量版本,每个版本都在超过1T token的数据上进行了预训练。最大的65B模型在2048张A100 80G GPU上跑了将近21天,然后在大多数基准测试中,直接把175B的GPT-3按在地上摩擦。
模型一开源,社区瞬间沸腾。Llama迅速成为开源社区里最受欢迎的大模型之一,围绕它建立起来的生态圈也随之崛起——这点在第6节会细聊。大量研究者拿它当基座,做继续预训练或者微调,衍生出了数不清的变体模型。唯一的遗憾是,因为开源协议的限制,Llama-1不能免费商用。
1.2 Llama-2 系列
五个月后,也就是2023年7月,Meta推出了免费可商用的Llama-2。这次它有7B、13B、34B、70B四个参数版本,但34B版本最终没有开源。相比Llama-1,Llama-2把预训练语料扩充到了2T token,上下文长度从2048翻倍到4096,还引入了分组查询注意力机制(GQA)等技术。
有了更强的基座模型,Meta还通过有监督微调(SFT)和基于人类反馈的强化学习(RLHF)进行迭代优化,发布了面向对话场景的Llama-2 Chat系列。这套“预训练-有监督微调-强化学习”的组合拳打下来,Llama-2 Chat不仅在众多基准测试中刷出更好的成绩,安全性也上了个台阶。随后,2023年8月,Meta又顺势推出了专注于代码生成的Code-Llama,有7B、13B、34B、70B四个版本。
1.3 Llama-3 系列
2024年4月,Meta正式发布了Llama-3,首批推出8B和70B两个版本。另外,一个400B的超大版本还在训练中。相比Llama-2,Llama-3支持8K长文本,采用了一个编码效率更高的tokenizer,词表大小达到了128K。在预训练数据上,Llama-3一口气用了超过15T token的语料——这比Llama-2的7倍还多。性能上,它实现了质的飞跃,在同规模模型中拿下了最优异的成绩。推理、代码生成、指令跟随等能力都有大幅改进,让模型变得更加可控。
2. 模型架构
这一节深入聊聊Llama的模型架构,包括神经网络的大小、层数、注意力机制等细节。
目前主流的大语言模型基本上都采用了Transformer架构。原始的Transformer由编码器和解码器两部分组成,这两部分也可以独立使用——比如基于编码器的BERT和基于解码器的GPT。Llama和GPT类似,采用了基于解码器的架构,但在原始Transformer解码器的基础上做了一些关键改动:
- 把层归一化换成了前置的RMSNorm,主要是为了训练更稳定。
- 激活函数换成了SwiGLU,用来提升模型性能。
- 位置编码用了RoPE,利于建模长序列数据。
- 部分模型还引入了分组查询注意力机制(GQA),在效率和性能之间做平衡。
具体流程是这样的:输入的token序列先通过词嵌入矩阵转成词向量序列,然后这些词向量以隐藏层状态的形式依次经过若干个解码器层,最后再用RMSNorm归一化一下,作为最终输出。在每个解码器层内部,隐藏层状态先过RMSNorm,再送入注意力模块;注意力模块的输出会和归一化前的状态做残差连接;之后再次归一化,送入前馈网络层;同样,前馈网络输出再残差连接一次,作为整个解码器层的输出。
每个版本的Llama因为隐藏层大小和层数不同,都有不同的变体。下面逐个看看。
2.1 Llama-1 系列
Llama-1的模型架构可以参考官方MODEL_CARD。分词方面,它用了基于BPE算法的sentencepiece。有意思的是,Llama-1把所有数字都拆成了单个数字,对于未知的UTF-8字符则回退到字节进行分解。词表大小是32k。
2.2 Llama-2 系列
Llama-2沿用了Llama-1的架构和tokenizer,不同之处在于:上下文长度扩展到了4k,并且34B和70B版本用了GQA。
2.3 Llama-3 系列
Llama-3的tokenizer从sentencepiece换成了tiktoken——这和GPT-4保持一致。词表大小从32k直接拉到了128k。另外,为了提升效率,8B和70B版本都采用了GQA,上下文长度也扩展到了8k。
3. 训练数据
训练数据是大模型的“养料”,这一节来看看每个版本的数据来源、规模和处理方式。
3.1 Llama-1 系列
Llama-1用的是海量无标注数据进行自监督学习,所有数据都是公开可获取的。主要来源包括:
- 英语CommonCrawl:预处理了2017-2020年间的五个CommonCrawl数据集。经过行级去重、基于fastText分类器的语言识别,再用n-gram语言模型过滤低质量内容。还额外训练了一个线性模型,用来区分维基百科中的参考页面和随机采样页面,没被分类为参考的页面直接扔掉。
- C4:一个公开可用的数据集。预处理也包括去重和语言识别,质量过滤主要靠标点符号、单词和句子数量这类启发式规则。
- Github:只保留Apache、BSD、MIT许可下的项目。用基于行长度和字母数字比例的规则过滤低质量文件,再用正则表达式去掉页眉之类的样板内容,最后在文件级别做精确去重。
- 维基百科:涵盖20种使用拉丁或西里尔文字的语言,去掉了超链接、评论等格式化内容。
- Gutenberg和Books3:两个书籍语料库,在书籍级别去重,移除超过90%内容重合的书籍。
- ArXiv:增加了科学数据,移除了第一节之前的内容、参考文献、注释,并内联扩展了自定义的宏和定义。
- Stack Exchange:保留了28个最大站点的数据,移除了HTML标签,答案按得分排序。
最终,Llama-1的训练数据集大约包含1.4T token。大部分数据在训练中只过一遍,但维基百科和Books的数据大约跑了两个epoch。
3.2 Llama-2
Llama-2的预训练数据来自公开来源,共计2T token。针对对话场景,Llama-2-Chat还在项目自建的27540个提示-响应对上做了额外微调——这批数据量虽不大,但质量远优于那些更大却杂乱的第三方数据集。在RLHF阶段,使用了包含1,418,091个Meta示例和七个较小数据集的组合。微调数据包括公开可用的指令数据集,外加超过一百万个新的人工标注示例。
在预训练过程中,Llama-2对数据安全性做了全面考量,排除了已知含有大量个人信息的网站。值得注意的是,Llama-2没有对数据集做额外过滤——这样能让模型在各种任务中更广泛可用,同时避免过度清洗带来的意外人口统计消除。预训练主要集中在英语数据上,非英语语言的熟练度受限于数据量,表现相对脆弱。不过,Llama-3通过扩充词表和增加多语言训练语料,很好地解决了这个问题,在多语言任务中实现了大幅提升。
3.3 Llama-3 系列
Llama-3的训练数据量大幅增加,从2T Tokens扩展到了15T Tokens,增长了约8倍。其中,代码数据扩充了4倍,显著提升了模型的代码能力和逻辑推理水平。三个版本各有定位:8B版本略优于Mistral 7B和Gemma 7B;70B版本介于ChatGPT 3.5和GPT-4之间;400B版本还在训练中,目标是对标GPT-4或GPT-4V。
值得注意的是,Llama-3没有采用MOE(混合专家)结构。MOE主要用于降低训练和推理成本,但性能上通常拼不过同规模的密集模型。随着模型规模越来越大,如何降低成本会成为一个关键问题。
此外,训练数据中包含了大量代码token和超过5%的非英语token,覆盖30多种语言。这不仅让模型处理英语更高效,也显著提升了多语言处理能力。为了保证数据质量,Meta开发了一系列数据过滤pipeline,包括启发式过滤器、NSFW过滤器、语义去重技术,以及用于预测数据质量的文本分类器。通过这些工具,并结合不同来源数据的最佳混合策略,Llama-3在多种场景下都展现出了卓越性能。
4. 训练方法
训练方法决定了模型的上限。这一节看看每个版本在预训练、有监督微调和强化学习上的差异。
4.1 Llama-1系列
Llama-1是一个基础的自监督学习模型,没有做任何特定任务的微调。它的训练配置采用了AdamW优化器、余弦学习率调度、0.1的权重衰减、1.0的梯度裁剪,以及预热策略。此外,Llama-1还做了一系列优化:使用xformers库中因果多头注意力的高效实现来减少内存占用和计算时间;手动实现反向传播函数,替代自动微分系统;利用检查点技术保存计算成本高的激活;通过模型并行和序列并行以及GPU通信优化,进一步提升训练效率。对于650亿参数的大模型来说,这些优化显著缩短了训练时间。
4.2 Llama-2系列
Llama-2在Llama-1基础上继续发展,Llama-2-Chat则是基于Llama-2微调的对话版本。两个模型都保持了固定的4k上下文长度。在微调中采用了自回归损失函数,用户输入提示部分的token损失被清零,让模型更专注于生成回复。
Llama-2-Chat的训练流程是这样的:先用公开数据预训练Llama-2,然后通过有监督微调创建初始版本,接着用RLHF方法迭代改进——具体包括拒绝采样和近端策略优化(PPO)。在RLHF阶段,人类偏好数据也在并行迭代,以保持奖励模型的更新。
4.3 Llama-3系列
Llama-3也有两个版本:预训练模型和微调后的Llama-3-Instruct。在预训练阶段,Meta通过为下游基准测试制定扩展法则,在训练前就能预测模型在关键任务上的表现,从而选择最佳的数据组合。在这个过程中,有一些新发现值得关注:根据Chinchilla扩展法则,8B模型的最优训练数据量约为200B token,但实际上,即使训练了15T token之后,8B和70B模型的性能仍在以对数线性的方式继续提升。
为了训练最大的Llama-3模型,Meta结合了数据并行、模型并行和流水线并行三种策略。在16K GPU上同时训练时,最高效的策略实现了每个GPU超过400 TFLOPS的计算利用率。Meta还开发了先进的新训练堆栈,可以自动检测、处理和维护错误,总有效训练时间超过了95%——这些改进让Llama-3的训练效率比Llama-2提高了约三倍。
在微调阶段,Meta结合了SFT、拒绝采样、PPO和直接策略优化(DPO)等多种方法。特别是通过偏好排序的训练,Llama-3在处理复杂逻辑推理问题时能更准确地选择最合适的答案,这对提升AI的实际可用性和可靠性至关重要。
5. 效果对比
这一节直接看数据——不同版本在基准测试中的表现差异。
5.1 Llama-2 vs Llama-1
Meta的官方数据很明确:Llama-2在众多基准测试中全面优于Llama-1和其他开源语言模型。
5.2 Llama-3 vs Llama-2
在各自参数规模上,Llama-3的表现相当亮眼。8B版本在多项基准测试中全面领先,直接碾压了Gemma 7B和Mistral 7B Instruct;70B版本则超越了闭源模型Claude 3 Sonnet,和谷歌的Gemini Pro 1.5打得有来有回。Meta还专门开发了一个包含1800个提示的高质量人类评估集,结果显示Llama-3不仅大幅超越Llama-2,也战胜了Claude 3 Sonnet、Mistral Medium和GPT-3.5这些知名模型。
Llama-3能取得这样的成绩,预训练模型的优异性能功不可没。在众多基准测试中,8B模型超越了Mistral 7B和Gemma 7B,70B模型则战胜了Gemini Pro 1.0和Mixtral 8x22B。另外,Meta透露,最大的400B版本还在训练中,等训练完成后会发一篇详细的研究论文。据英伟达科学家Jim Fan的整理,Llama-3 400B基本逼近Claude-3-Opus和GPT-4-turbo——这意味着开源社区即将迎来GPT-4级别的大模型。
6. 社区影响
Llama对开源社区的影响,远比参数数字本身更值得关注。
6.1 开放源代码模型的力量
自Llama发布以来,它对全球AI社区的冲击是深远的。作为一个开源的大语言模型,Llama不仅提供了强大的技术基础,还推动了AI技术的广泛采用和创新。有人把Llama的开源策略比作LLM时代的“安卓”——模块化、可定制,让研究人员和开发者能够按需调整和优化模型。这大大降低了进入门槛,从小型创业公司到大型企业都能轻松上车。4月19日Llama-3发布当天,下载量就突破了1.14k,两个8B模型直接冲上了trending第一。
6.2 对全球AI研发的影响
OpenAI转向更封闭的商业模式后,Llama的发布给全球AI研发团队提供了一种可靠的选择。开源意味着用户不必完全依赖单一的商业API,在数据安全和成本控制上有了更多自主权和安全感。
6.3 技术进步和社区创新
技术上,Llama已经展示了与GPT不相上下的性能——开源社区在推动前沿技术方面的能力被充分证明。同时,社区通过对模型的持续优化和调整,在不同垂直领域开发出了各种实用的解决方案,这有点像Stable Diffusion和Midjourney那种社区驱动的模式。
6.4 生态系统和多样性
Llama的应用已经扩展到多种平台和设备,包括移动端和边缘设备。云平台如AWS和Google Cloud的积极参与,也证明了它的广泛适用性和强大功能。
6.5 Llama社区的未来展望
随着Llama的持续迭代,Meta明确表达了在多模态AI、安全性和社区支持上的持续投入。这些方向不仅符合当前AI发展的趋势,也为Llama社区的未来画出了一条清晰的路线图。
7. 总结
总的来看,Llama模型的发布证明了开源模型在全球AI领域的重要地位,也为AI的未来发展提供了新的视角和动力。通过持续的技术进步和社区驱动的创新,Llama有望继续推动全球AI技术的广泛应用和持续进化。
