大模型训练原理详解
1. 引言
在自然语言处理(NLP)领域,尤其是大语言模型(LLM)如 GPT 系列的发展中,训练方式的选择至关重要。许多开发者常困惑于大模型究竟采用有监督学习还是无监督学习,以及数据标签的来源。事实上,主流大模型的预训练阶段主要采用(Self-Supervised Learning)模式。
大模型训练主要采用自监督学习模式,无需人工标注标签。详细解析了掩码语言模型与因果语言模型的区别,重点阐述了 GPT 系列模型通过预测下一个词进行训练的原理。内容涵盖数据分词、嵌入表示、位置编码及损失函数计算等核心步骤,帮助读者理解大模型如何从海量文本中习得语言规律与结构知识。

在自然语言处理(NLP)领域,尤其是大语言模型(LLM)如 GPT 系列的发展中,训练方式的选择至关重要。许多开发者常困惑于大模型究竟采用有监督学习还是无监督学习,以及数据标签的来源。事实上,主流大模型的预训练阶段主要采用(Self-Supervised Learning)模式。
传统的有监督学习需要大量人工标注的数据,成本高昂且难以规模化。互联网上的文本数据虽然海量,但几乎全部是无标签的。如果强行进行人工标注,不仅效率低下,而且对于长文本或复杂语境,标注标准也难以统一。
因此,大模型利用数据本身的结构生成'伪标签',无需人工干预即可进行训练。这种模式被称为自监督学习,它是无监督学习的一种特殊形式。
在大模型训练中,主要有两种经典的自监督任务范式:
以 GPT 为代表的因果语言模型,其核心目标是最大化下一个词出现的概率。以下是详细的训练流程解析。
原始文本不能直接输入神经网络,需经过以下步骤:
输入序列经过 Embedding 层和 Positional Encoding 后,进入 Transformer Encoder/Decoder 堆叠层。在 GPT 中,通常使用 Decoder-only 架构。
# 简化的 GPT 训练逻辑伪代码
import torch
import torch.nn as nn
class GPTTrainer:
def __init__(self, model, optimizer, loss_fn):
self.model = model
self.optimizer = optimizer
self.loss_fn = loss_fn
def train_step(self, input_ids, target_ids):
# 1. 前向传播
outputs = self.model(input_ids) # 输出 logits
# 2. 计算损失
# 注意:通常忽略 padding 位置的损失
shift_logits = outputs.logits[..., :-1, :]
shift_labels = target_ids[..., 1:]
loss = self.loss_fn(shift_logits.view(-1, shift_logits.size(-1)),
shift_labels.view(-1))
# 3. 反向传播
self.optimizer.zero_grad()
loss.backward()
self.optimizer.step()
return loss.item()
在训练过程中,模型的目标是使预测分布尽可能接近真实分布。常用的损失函数是交叉熵损失 (Cross Entropy Loss)。
假设输入序列为 $X = [x_1, x_2, ..., x_n]$,目标序列 $Y$ 实际上是 $X$ 向右平移一位的结果,即 $y_i = x_{i+1}$。
损失计算公式为: $$ L = -\sum_{i=1}^{n} \log P(x_{i+1} | x_1, ..., x_i) $$
这意味着模型不仅要预测对第一个词,还要预测对第二个词,以此类推。通过最小化这个总损失,模型参数得以更新。
optimizer.zero_grad() 清除上一轮的梯度缓存。loss.backward() 计算损失相对于每个参数的梯度。optimizer.step() 根据梯度下降法更新模型权重。预训练完成后,模型具备了通用的语言能力。为了适应特定任务(如问答、分类),通常需要进行微调:
大模型的训练是一个从海量无标签数据中提取知识的过程。通过自监督学习,特别是因果语言建模,模型学会了语言的统计规律和逻辑结构。理解 Tokenization、Embedding、Transformer 架构以及交叉熵损失的计算机制,是掌握大模型技术的基础。随着技术的发展,高效微调方法如 LoRA 和 RLHF(基于人类反馈的强化学习)进一步提升了模型在垂直领域的应用能力。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online