我们来深入讲GPT 的参数训练机制,我会用尽量清晰的方式拆解整个过程,步步分析。
一、什么是GPT 参数?
GPT 模型有数十亿甚至上百亿个参数,这些参数本质上是:
-
权重(weights):神经网络中每条连接的强弱
-
偏置(biases):控制神经元输出的灵敏度
可以把GPT 想象成一个巨大的公式:
和=f(x;我)y = f(x; θ)
-
xx= 输入token(文本数字化后的编码)
-
和和= 模型预测的下一个token
-
我θ= 模型的所有参数(权重和偏置)
训练的核心目标就是找到最优的我θ,让预测尽量接近真实文本。
二、训练步骤
GPT 参数训练主要分三步:
1️⃣ 数据准备
模型需要大量文本数据:
-
书籍、新闻、论坛、网页
-
编程代码、百科知识
-
不同语言、不同领域文本
训练前,文本会被切分成Token(词或子词),并映射成数字向量。
示例:
2️⃣ 前向传播(Forward Pass)
这一步是模型计算预测:
-
输入token 向量
-
经过Transformer 的多层Self-Attention + Feed Forward
-
输出每个位置可能的下一个token 的概率分布
例如:
输入"Hello"→ 输出下一个token 概率:
| 令牌 | 概率 |
|---|---|
| “世界” | 0.7 |
| “那里” | 0.2 |
| “GPT” | 0.1 |
3️⃣ 损失计算(Loss Function)
GPT 使用的损失函数是交叉熵损失(Cross-Entropy Loss):
损失=−∑我和我日志(和^我)损失 = – ∑_{i} y_i log(\hat{y}_i)
-
和我y_i= 真实下一个token
-
和^我\hat{y}_i= 模型预测的概率
损失值越小→ 模型预测越准确。
4️⃣ 反向传播(Backpropagation)
损失计算后,模型就知道“哪里预测错了”。
反向传播用来更新参数:
-
计算每个参数对损失的梯度
-
用梯度下降法更新参数:
我新的=我老的−或者∂损失∂我\theta_{\text{new}} = \theta_{\text{old}} – \eta \frac{\partial \text{Loss}}{\partial \theta}
-
或者\和= 学习率,控制更新幅度
-
这个过程会在所有参数上重复进行(数百亿次梯度更新)
三、训练优化技术
为了训练这么大的模型,有几个关键技术:
-
Adam优化器
-
带动量的梯度下降,收敛更快、更稳定
-
-
层归一化
-
保持各层输出稳定,防止梯度爆炸
-
-
学习率调度(Warmup + Decay)
-
训练初期慢慢升学习率,再逐渐衰减
-
-
分布式训练
-
数百甚至上千张GPU 同时训练,拆分参数和数据
-
-
梯度裁剪(Gradient Clipping)
-
防止梯度太大导致训练不稳定
-
四、参数训练完成后
-
模型可以根据输入预测下一个token
-
参数就固定了(除非进一步微调)
-
生成文本就是一步步使用这些参数计算概率,选择最可能的词
五、参数数量与能力的关系
-
GPT-3:1750亿参数
-
GPT-4:更多(官方没完全公开)
规律:
参数越多→ 模型能捕捉更多语言模式和知识→ 生成文本越自然、越连贯
但参数增大也带来:
-
训练成本巨高
-
推理计算量大
-
并不保证“常识正确”,仍会有幻觉
?总结一句话:
GPT 参数训练就是:
用大规模文本不断“试错+ 调整”,通过前向计算预测→ 损失计算→ 反向传播→ 更新参数,让模型学会语言规律和知识模式。