LLM训练到底做了什么?从随机噪声到智能的底层逻辑

LLM训练是通过自监督学习调整随机初始化的数十亿参数,使预测与文本匹配的循环过程。
本文深入解析了大型语言模型(LLM)的训练本质:模型参数最初是随机噪声,通过自监督学习循环——预测下一个token、计算交叉熵损失、反向传播梯度、更新权重——逐步调整。核心难题是信用分配,反向传播利用链式法则高效计算梯度。以GPT-3为例,1750亿参数在3000亿token上训练,约94,000次更新,每次调整所有参数。现代优化技术如Adam、梯度裁剪、学习率调度和权重衰减使训练稳定高效。训练不安装事实,而是将知识分布式压缩在权重中,导致模型无法自查且会产生自信错误。
LLM训练到底做了什么?从随机噪声到智能的底层逻辑
你聊天的那个模型,从未被真正“编写”过。它的行为没有一行代码是由人类撰写的。Llama 3.1 8B 拥有 8,006,464,512 个数字(据 Meta 官方模型卡),没有任何人类选择了其中任何一个。它所做的一切——语法、推理、自信的错误——都只是这些数字碰巧呈现出的样子。那么这些数字从何而来?一个循环,运行了数十亿次。
训练循环:从随机噪声到预测机器
训练始于一堆文本和一个数字完全是随机噪声的模型。引擎读取一段文本,反复预测下一个 token。然后它将每个预测与实际出现的 token 进行比较,并对偏差打分。这个分数称为损失(loss);对于语言模型,通常是交叉熵损失,它对比自信的错误猜测施加比犹豫的猜测更重的惩罚。
注意这里的“老师”就是文本本身。没有人给任何东西打标签。实际跟随其后的下一个 token 就是标签。这就是为什么它被称为自监督学习,也是它能规模化的原因:互联网就是答案卷。
这个循环每一步的具体过程是:预测、评分、反向传播、更新。你在一个文本批次上执行这个过程,然后是下一个批次,再下一个。整个过程就是如此朴素。
自监督学习(self-supervised learning)是LLM训练规模化的关键:它不需要人工标注,而是从文本本身构造监督信号——给定前文,预测下一个token。这与传统监督学习形成对比,后者依赖人工标注的标签(如“这封邮件是垃圾邮件”)。自监督学习利用互联网上现成的海量文本,每个句子都隐含了成千上万个预测任务,从而提供了近乎无限的高质量训练数据。这种“答案卷就在数据里”的特性,使得模型能够从数万亿token中学习,而无需任何人工标注成本。
核心难题:八亿个旋钮,一个错误
当模型出错时,错误只是输出端的一个数字,但模型内部有数十亿个数字。是哪一个导致了这次偏差?每个数字都是一个权重,一个塑造下一层接收内容的旋钮。八十亿个旋钮,一个糟糕的预测。这就是信用分配问题:八十亿个嫌疑人。
解决方案比深度学习本身更古老。对于每个你想调整的权重,你需要一个带符号的数字:梯度,它回答“如果我把这个旋钮调大一点,误差是上升还是下降,速度多快?”权重按层排列,每一层的数学运算馈送给下一层,而微积分恰好有一个针对这种问题形状的规则:链式法则,它说整个管道的敏感度是沿路径敏感度的乘积。从输出端开始逐层计算这些敏感度,同时复用每一层的算术结果,你就能以大约一次前向传播的成本获得每个权重的梯度。误差通过网络向后传播——这就是反向传播(backpropagation)名称的由来。1986 年那篇让该方法闻名于世的《自然》论文标题就是“Learning representations by back-propagating errors”(Rumelhart, Hinton 和 Williams)。
历史简述:1986 年的论文并非凭空发明。反向模式自动微分可追溯到 Linnainmaa(1970),Paul Werbos 在 1982 年将其应用于多层网络。Rumelhart 及其同事独立重新发现了它,并不知晓更早的工作,而他们的《自然》论文正是该领域所铭记的。同一思想路线后来为 Geoffrey Hinton 赢得了 2024 年诺贝尔物理学奖的一部分。
链式法则是微积分中用于计算复合函数导数的基本规则:若y = f(g(x)),则dy/dx = f'(g(x)) * g'(x)。在神经网络中,每一层的输出都是下一层的输入,整个网络就是一个巨大的复合函数。链式法则告诉我们,损失对某个权重的敏感度等于损失对该权重所在层输出的敏感度乘以该层输出对该权重的敏感度。从输出层开始,逐层向后计算这些局部敏感度并相乘,就能高效地得到所有参数的梯度。这正是反向传播的核心,它避免了为每个参数单独扰动计算梯度的巨大开销。
更新步:在数十亿维空间中下山
一旦每个权重都有了梯度,你就将它们全部移动一点:新权重 = 旧权重 - 学习率 × 梯度。学习率是步长。太大,模型会跳过好的区域并开始变差;太小,它会永远缓慢爬行。这个下降思想很古老;梯度下降通常归功于 Cauchy,1847 年。训练就是在数十亿维的空间中向下走,其中“向下”意味着“下一个词与文本更匹配”。
梯度下降是一种迭代优化算法,用于寻找函数的最小值。其基本思想是:在当前点计算函数的梯度(即最陡上升方向),然后沿梯度的反方向移动一小步,重复此过程直至收敛。在LLM训练中,目标函数是损失函数(衡量预测与真实下一个token的差异),参数空间维度高达数十亿甚至数万亿。尽管高维空间难以直观想象,但梯度下降的数学性质保证了在适当学习率下,损失会逐步下降。学习率的选择至关重要:过大可能导致震荡甚至发散,过小则收敛缓慢。现代优化器如Adam通过自适应调整每个参数的学习率,进一步提升了效率。
规模化实例:GPT-3 的公开记录
这个循环在完整规模下最清晰的公开记录是 GPT-3 论文(Brown 等,2020)。从其表格和附录中,可以直接引用:
- 1750 亿个权重,排列在 96 层中。
- 每次更新看到 320 万个 token 的批次。
- 训练总共运行了 3000 亿个 token。3000 亿除以 320 万约等于 94,000 次更新。模型的全部教育就是 94,000 次微调,每次微调调整 1750 亿个旋钮。
从 1986 年的论文到 2020 年,这个循环获得了许多工具,都记录在同一附录中:
- Adam 优化器(beta1 = 0.9,beta2 = 0.95):保留每个权重历史的运行记忆,并单独缩放每一步。动量加上每个旋钮的步长,而不是所有人共用固定步长。
- 梯度裁剪至 1.0:如果一个批次产生异常大的梯度,它会被截断。一个丑陋的批次不能把整个模型推歪。
- 学习率调度:前 3.75 亿个 token 进行预热,然后在 2600 亿个 token 上余弦衰减至峰值的 10%。早期自信、谨慎的步伐;后期小步慢走。
- 权重衰减 0.1,一种温和的压力,防止权重无限制增长。
现代实践是同一个循环加上更好的工具。Llama 2(2023)使用了 AdamW,beta1 = 0.9,beta2 = 0.95,权重衰减 0.1,梯度裁剪 1.0,并在 2 万亿 token 上预训练。Llama 3 旗舰版(2024)在 15.6 万亿 token 上运行该循环,计算量约为最大 Llama 2 的 50 倍。1986 年的配方,工业化了。
Adam优化器(Adaptive Moment Estimation)结合了动量法和RMSProp的思想,为每个参数维护两个指数移动平均:一阶矩(梯度的均值,类似动量)和二阶矩(梯度的平方均值,用于缩放学习率)。更新时,参数的变化量不仅取决于当前梯度,还取决于历史梯度的大小和方向。这使得Adam在稀疏梯度和非平稳目标下表现优异,成为训练LLM的默认选择。其中beta1和beta2分别控制两个移动平均的衰减率。AdamW则是对Adam的改进,将权重衰减与梯度更新解耦,更有效地正则化模型。
训练究竟得到了什么?
经过所有这些更新,没有任何单个权重具有意义。没有一个旋钮标注着“知道法国首都”。一个事实、一条规则、一种风格,全部都涂抹在数十亿个权重上,只有当整个网络运行时它才存在。这与之前关于幻觉的文章观点一致:LLM 中的知识被压缩进权重,而不是归档在某处。训练不安装事实。它调整模型,直到其下一个 token 的猜测在统计上与它读过的文本匹配。
这也是为什么模型无法检查自己的答案。没有查找表可查,没有正确性证书,只有模式。这也是自信错误发生的原因:调优优化的是听起来正确的文本,而听起来正确不等于正确。
所以,整个故事就是:LLM 不是被编写或教导的。它是被调优的。随机噪声,被转动 94,000 次(GPT-3 规模)或喂入 15.6 万亿 token 的文本(Llama 3 规模),直到预测与现实对齐。结果是卓越的,而机制是一个如此朴素的循环,以至于 1986 年的一篇论文标题至今仍精确描述着它。
关键数字验证
为了确保准确性,以下数字均已追溯到原始来源:
- Llama 3.1 8B 参数量 8,006,464,512(Meta 模型卡)
- Rumelhart, Hinton & Williams, "Learning representations by back-propagating errors", Nature 323, 533-536, 1986
- 反向传播历史:Linnainmaa 1970(反向模式自动微分),Werbos 1982(多层网络),Rumelhart 独立重新发现
- Hinton 分享 2024 年诺贝尔物理学奖
- Cauchy 1847 首次提出梯度下降
- GPT-3(Brown 等,arXiv:2005.14165):175B 参数,96 层,批次 320 万 token,总 token 3000 亿,Adam beta1 0.9 beta2 0.95,梯度裁剪 1.0,余弦衰减至 10% 历经 2600 亿 token,线性预热 3.75 亿 token,权重衰减 0.1
- Llama 2(Touvron 等,arXiv:2307.09288):AdamW,beta1 0.9 beta2 0.95,权重衰减 0.1,梯度裁剪 1.0,预训练 2 万亿 token
- Llama 3(Grattafiori 等,arXiv:2407.21783):旗舰 405B 模型预训练 15.6 万亿文本 token,约 3.8e25 FLOPs,几乎是最大 Llama 2 的 50 倍
本文基于 AI 领域独立创作者 Kai 的技术解析,所有数据均追溯至原始论文与模型卡。
相关推荐

uGAP:统一100+非洲地理数据集的AI平台
uGAP是开普敦大学团队开发的非洲地理空间AI平台,统一120余个非洲数据集并提供Python SDK,支持数据发现、处理与模型训练一站式工作流,已用于气旋洪水制图等实战场景。

Cursor能控制你的电脑了:AI代理可驱动桌面应用测试
Cursor 新增桌面控制能力,AI 代理可驱动 iOS 模拟器等桌面应用测试自己构建的功能。本文分析这一更新对开发工作流的影响、技术实现可能路径及可靠性考量。

Vibecoding自研推理引擎:理想丰满,现实骨感
Reddit开发者分享Vibecoding自研推理引擎的真实经历:用WebGL2和GLSL在浏览器跑GGUF Q4模型,却陷入tokenizer调试地狱。本文分析浏览器端LLM推理的工程难点,以及为何直接clone llama.cpp是更理性的选择。