Llama3.1 深度解读:揭秘其结构、训练过程与数据合成技术
Llama3.1 系列模型的开源,真让大模型格局大震,指标上堪比最好的闭源模型比如 GPT-4o 和 Claude3.5,让开源追赶闭源成为现实。这里主要对 LLaMA3.1 的模型结构、训练过程进行分享,并对其带来的影响、小模型要如何做、合成数据等方面谈点看法。
LLaMA3 模型结构

LLaMa3 的模型结构如上图所示,这基本已经形成目前 Dense LLM 模型的标准结构了,绝大多数 LLM 模型结构都与此非常接近。而很多采取 MOE 结构的 LLM 模型,其变化无非是把上图的 FFN 模块里的单个 SwiGLU 模块拓展成 K 个并联的 SwiGLU 模块,形成多个专家,再加上一个路由子网络来选择目前 Token 走这么多专家里的哪几个,如此而已,基本结构也差不太多。
所以不要误会,MOE 是 Transformer 的一种变体,不是独立的模型结构。很多目前的新型结构,其实是'线性 Transformer'结构的变体,目前很少有结构能逃脱 Transformer 架构的影响,都处在它的阴影下。当然我对新结构持支持态度,Transformer 被替换只是时间问题,只不过这不是当前制约大模型能力的瓶颈,改变的迫切性没那么大而已。
之所以 LLaMA 结构基本快形成行业标准,我觉得有两个原因:
- 侧面说明了 Transformer 结构趋于稳定:肯定很多人试过其它变体结构但是要么在效果,要么在可扩展性(Scalability),总之,某一点要比这个结构效果要差,这虽然是无依据的推导,但想来是大概率事件。
- 生态兼容性:目前 LLM 已形成生态,各种衍生的工具比如快速推理框架等都兼容这个结构,如果你新结构变动太大,很多流行工具不支持,就很难扩散影响力形成新的行业标准。新结构不仅仅要达成替换 Transformer 那么简单,你面对的是整个生态,再没有确切证据表明各方面都明显好于上述结构前提下,是很难替换掉 Transformer 的。
从这里就看出 Meta 坚决走开源路线的高明之处了,早开源早形成影响力早成为行业标准,那么以后 LLM 的技术路线做技术选型话语权就非常大,其他人就比较被动。谷歌因为一心二用开源不坚决,有点错失时机。
LLaMA3.1 的预训练过程
Llama3.1 预训练包括三个主要阶段:(1) 初始预训练,(2) 长上下文预训练,以及 (3) 退火(Annealing)。总体而言,和目前一些其它开源模型的训练过程差别不大,不过技术报告公开了很多技术细节。
1. 初始预训练
就是常规的预训练阶段,训练初期使用较小 Batch Size 以稳定训练,随后逐步增大以提高效率,最终达到 16M token 的 Batch 大小。为了提升模型的多语言和数学推理能力,增加了非英语和数学数据的比例。
2. 长上下文预训练
在预训练的后面阶段,采用长文本数据对长序列进行训练,支持最多 128K token 的上下文窗口。采取逐步增加上下文窗口长度策略,在 Llama3.1 405B 的预训练中,从最初的 8K 上下文窗口开始,逐步增加上下文长度,最终达到 128K 上下文窗口。这个长上下文预训练阶段使用了大约 800B 训练 token 数据。
3. 退火(annealing)
在预训练的最后 4000 万个 token 期间,线性地将学习率退火至 0,同时保持上下文长度为 128K 个 token。在这一退火阶段,调整了数据混合配比,以增加高质量数据比如数学、代码、逻辑内容的影响。最后,将若干退火期间模型 Check Point 的平均值,作为最终的预训练模型。在训练后期对高质量数据进行上采样目前其实也是比较标准的做法。

预训练阶段不同类型数据配比
不同类型的数据配比如何配置大模型才能有最好的效果?这可能是目前大模型预训练仅剩的唯一秘密了,LLama3.1 报告对此做了披露,他们先通过小规模实验确定最优配比,然后将之应用到大模型的训练中。
结论是:




