LLM 模型的主要结构
大语言模型(LLM)的核心架构基于 Transformer,其结构主要由以下模块组成:
-
自注意力机制(Self-Attention)
- 核心作用:通过计算每个词元(token)与其他词元的关联性,捕捉长距离依赖关系。
- 实现方式:通过查询(Query)、键(Key)、值(Value)的矩阵运算,动态分配注意力权重。
- 变体:多头注意力(Multi-Head Attention, MHA),并行计算多个注意力头,提升模型表达能力。
-
前馈神经网络(Feed-Forward Network, FFN)
- 结构:全连接层 + 激活函数(如 SwiGLU)。
- 功能:对每个词元进行非线性变换,增强模型的局部表达能力。
-
归一化层(Normalization)
- 常见形式:层归一化(LayerNorm)或 RMSNorm(简化版,计算效率更高)。
- 作用:稳定训练过程,防止梯度爆炸或消失。
-
位置编码(Positional Encoding)
- 作用:为模型提供序列顺序信息(如位置嵌入或旋转位置嵌入 RoPE)。
- 实现方式:固定正弦/余弦函数(Transformer 原始设计)或可学习的嵌入向量(如 LLaMA)。
-
堆叠的 Transformer 层
- 典型结构:多个 Transformer 块(Encoder 或 Decoder)堆叠,层数从几层到几十层不等(如 GPT-3 有 96 层)。
- 残差连接:每层的输入与输出相加,缓解梯度消失问题。
BERT 与 GPT 的关键区别
1. 架构设计
| 维度 | BERT | GPT |
|---|---|---|
| 结构类型 | Encoder-only(仅编码器) | Decoder-only(仅解码器) |
| 上下文建模 | 双向(同时利用左右上下文) | 单向(仅利用左侧行文顺序) |
| 典型任务 | 分类、匹配(如问答、NER) | 生成(如文本补全、对话生成) |
2. 训练方式
| 维度 | BERT | GPT |
|---|---|---|
| 预训练任务 | Masked Language Model (MLM) 随机遮盖词元,要求预测被遮盖词。 | Autoregressive Language Model 按顺序预测下一个词。 |
| 辅助任务 | Next Sentence Prediction (NSP) 判断两个句子是否连续。 | 无辅助任务,仅通过自回归生成训练。 |
| 训练目标 | 静态特征提取(适合判别式任务) | 动态生成(适合生成式任务) |
3. 输入与输出
| 维度 | BERT | GPT |
|---|---|---|
| 输入形式 | 句子对或单句(如分类任务) | 单句或初始文本(生成任务) |
| 输出形式 | 上下文表示(如 [CLS] 向量) | 逐词生成(自回归生成) |
4. 应用场景
-
BERT
- 优势:擅长理解任务(如情感分析、问答系统)。
- 案例:通过 [CLS] 向量进行文本分类,或利用双向上下文进行指代消解。
- 局限:生成能力较弱,需通过微调适配生成任务。
-
GPT
- 优势:擅长生成任务(如小说创作、对话生成)。
- 案例:通过提示工程(Prompt Engineering)实现少样本学习(Few-shot Learning)。
- 局限:对双向上下文理解不足,需依赖大量训练数据。
核心差异总结
| 对比点 | BERT | GPT |
|---|---|---|
| 哲学导向 | 全知视角(双向建模) | 渐进生成(单向建模) |
| 技术目标 | 静态特征提取(判别式任务) | 动态生成(生成式任务) |
| 并行性 | 支持并行预测多个遮盖词 | 串行生成(逐词预测) |
| 微调需求 | 需要微调适配下游任务 | 可通过提示工程直接使用 |
扩展说明
-
LLM 的改进方向
- LLaMA 系列:采用 Pre-Normalization、RMSNorm、SwiGLU 激活函数,提升训练效率和性能。
- 混合模型:如 T5(Text-to-Text Transfer Transformer),结合 Encoder-Decoder 结构,兼顾理解与生成能力。
-
实际应用选择
- 理解任务:优先选择 BERT 或类似模型(如 RoBERTa)。
- 生成任务:优先选择 GPT 或类似模型(如 Llama、ChatGLM)。
- 混合场景:使用 T5 或 FLAN-T5 等双塔模型。
通过上述对比,可以更清晰地理解 LLM 的架构设计原则及不同模型的适用场景。