大数跨境

大模型为什么会“变聪明”?一文讲透损失函数和梯度下降

大模型为什么会“变聪明”?一文讲透损失函数和梯度下降 AI科技在线
2026-05-30
6
导读:想象一下,你正在训练一个拥有数千亿参数的大语言模型。第一轮训练,模型输出的内容杂乱无章,几乎是在随机猜测。

想象一下,你正在训练一个拥有数千亿参数的大语言模型。

第一轮训练,模型输出的内容杂乱无章,几乎是在随机猜测。

第十轮训练,模型开始能说一些通顺的句子了。

第一百轮训练,模型已经能写出逻辑清晰的文章,甚至能写代码、做推理。

问题来了:在这个过程中,模型是怎么知道自己"进步了"?它又是如何知道该往哪个方向调整参数才能变得更好?

答案就藏在两个核心概念里——损失函数梯度下降

这篇文章,我们就来深入理解这两个概念,揭开大模型"学习"的神秘面纱。


一、先弄清楚:模型到底在干嘛?

很多人以为大模型在“理解语言”,其实不是。它只在做一件事:

👉 根据前面的内容,预测下一个最可能的词

例如:

输入:我喜欢机器

模型输出的不是一个词,而是一个概率分布:

学习:0.6工作:0.2睡觉:0.05...

✅ 什么是“正确答案的概率”?

训练数据会告诉模型:正确答案:学习

所以:

👉 正确答案的概率 = 模型给“学习”的概率(比如 0.6)


二、损失函数:模型是怎么被“批评”的?

模型每预测一次,都会被打一个分:

👉 错得越离谱,罚得越狠

这个评分规则就是:

👉 损失函数(Loss Function)

定义:损失函数是衡量模型预测值与真实值之间差距的函数,它将模型的"错误程度"量化为一个标量值。

对于语言模型,损失函数的输入是:

  • 模型预测的概率分布

图片
  • 真实的 token 

输出是一个标量损失值:

图片

它具备三重角色:

  • 评估指标(Evaluation Metric):量化模型当前表现,模型有多好?

  • 优化目标(Optimization Objective):定义训练方向,我们要优化什么?

  • 梯度来源(Gradient Source):提供反向传播信号,参数改怎么改?


三、LLM为什么选用“交叉熵”损失函数?

LLM 的预训练任务是Next token prediction,每个预测位置都是一个多分类问题,标准配置为:交叉熵损失函数。

直接给你最核心公式:

图片

3.1 这公式到底在干嘛?

只看一件事:

👉 模型给“正确答案”的概率有多大


3.2 为什么一定要加 log?

如果不用 log:

  • 0.9 和 0.99 差别很小

  • 模型学不动

加了 log 之后:

正确概率
损失
0.9
很小
0.5
中等
0.01
非常大

✅ 一句话结论

👉 log 的作用:放大错误,让模型“更痛”


3.3 交叉熵到底是什么?

完整形式是:

p为真实分布,q为模型预测分布

但在 LLM 中:

  • 真实答案是 one-hot,如 p = [0, 0, 1, 0, 0, ...]

  • 所以只剩一项

👉 就变成:

只看正确答案的概率


四、模型怎么知道“该怎么改”?(梯度)

现在模型已经知道:

❌ 自己错了(loss)

但问题是:

👉 怎么改参数?

答案是两个字:

👉 求导(梯度)


4.1 梯度是什么?

公式是:


  • θ表示模型的所有参数,为n的向量

  • L就是损失函数

  • L(θ)表示损失函数L对所有参数的变化率

  • 公式右侧表示每一个参数 θᵢ 改一点点,会让 Loss 变多少


4.2 人话解释

👉 某个参数动一下,会让 loss 变多少


4.3 交叉熵最重要的结论

推导过程有点复杂,最终公式:
  • zi表示logits,softmax 之前的原始输出

  • yi^表示第i个词的预测概率

  • yi表示第i个词的真实标签


✅ 一句话理解

👉 梯度 = 预测 - 真实


4.4 这意味着什么?

情况
模型会怎么改
正确答案概率太低
提高它
错误答案概率太高
压低它

👉 这就是模型“自我纠错”的机制

五、真正的学习:梯度下降

有了梯度之后,模型开始更新参数:

  • θ表示模型的所有参数

  • L(θ)表示损失函数L对所有参数的变化率

  • η表示学习率


5.1 一句话解释

👉 往“让错误变小”的方向走一步


5.2 一个非常形象的比喻

你在山上找最低点:

  • 梯度:哪边最陡

  • 梯度下降:往下走

最终:

👉 找到最低点(loss 最小)


六、现实世界:为什么用 AdamW?

普通梯度下降不够好:

  • 容易震荡

  • 收敛慢

  • 不稳定

所以用:

👉 AdamW(大模型标配优化器)


6.1 它在做什么?

核心是两个“记忆”:

  • t 为时间步,第几次更新参数

  • mt 为一阶矩估计(动量)

  • gt 为当前计算的梯度

  • vt 为二阶矩估计(方差)

  • β₁ 为一阶矩衰减率(默认 0.9)

  • β₂ 为二阶矩衰减率(默认 0.999)


6.2 最终更新公式

👉 AdamW = 更稳定 + 自动调节步长 + 防过拟合


七、把整个过程串起来

模型每一步都在做:

 
 
 

① 预测下一个词(概率分布)② 用交叉熵计算错误③ 对损失函数求导(得到梯度)④ 用 AdamW 更新参数

循环:

👉 上亿 / 上百亿次


八、为什么它最后会“变聪明”?

因为它一直在做一件事:

  • 猜错 → 被惩罚

  • 梯度告诉它哪里错

  • 参数被调整

  • 下次更接近正确答案

最终:

👉 逼近人类语言的概率分布

你可以这样理解大模型:

它从来没有“理解语言”

它只是被训练成:👉 在任何上下文下,都能给出“最像人类会说的话”的概率分布


九、一句话总结

LLM 的本质 = 用交叉熵衡量错误 → 用求导得到梯度 → 用 AdamW 做梯度下降 → 不断逼近真实语言分布


来源:码农的快乐时光

【声明】内容源于网络
0
0
AI科技在线
1234
内容 1409
粉丝 0
AI科技在线 1234
总阅读16.4k
粉丝0
内容1.4k