LLM 模型的主要结构

大语言模型(LLM)的核心架构基于 Transformer,其结构主要由以下模块组成:

  1. 自注意力机制(Self-Attention)

    • 核心作用:通过计算每个词元(token)与其他词元的关联性,捕捉长距离依赖关系。
    • 实现方式:通过查询(Query)、键(Key)、值(Value)的矩阵运算,动态分配注意力权重。
    • 变体:多头注意力(Multi-Head Attention, MHA),并行计算多个注意力头,提升模型表达能力。
  2. 前馈神经网络(Feed-Forward Network, FFN)

    • 结构:全连接层 + 激活函数(如 SwiGLU)。
    • 功能:对每个词元进行非线性变换,增强模型的局部表达能力。
  3. 归一化层(Normalization)

    • 常见形式:层归一化(LayerNorm)或 RMSNorm(简化版,计算效率更高)。
    • 作用:稳定训练过程,防止梯度爆炸或消失。
  4. 位置编码(Positional Encoding)

    • 作用:为模型提供序列顺序信息(如位置嵌入或旋转位置嵌入 RoPE)。
    • 实现方式:固定正弦/余弦函数(Transformer 原始设计)或可学习的嵌入向量(如 LLaMA)。
  5. 堆叠的 Transformer 层

    • 典型结构:多个 Transformer 块(Encoder 或 Decoder)堆叠,层数从几层到几十层不等(如 GPT-3 有 96 层)。
    • 残差连接:每层的输入与输出相加,缓解梯度消失问题。

BERT 与 GPT 的关键区别

1. 架构设计

维度BERTGPT
结构类型Encoder-only(仅编码器)Decoder-only(仅解码器)
上下文建模双向(同时利用左右上下文)单向(仅利用左侧行文顺序)
典型任务分类、匹配(如问答、NER)生成(如文本补全、对话生成)

2. 训练方式

维度BERTGPT
预训练任务Masked Language Model (MLM)
随机遮盖词元,要求预测被遮盖词。
Autoregressive Language Model
按顺序预测下一个词。
辅助任务Next Sentence Prediction (NSP)
判断两个句子是否连续。
无辅助任务,仅通过自回归生成训练。
训练目标静态特征提取(适合判别式任务)动态生成(适合生成式任务)

3. 输入与输出

维度BERTGPT
输入形式句子对或单句(如分类任务)单句或初始文本(生成任务)
输出形式上下文表示(如 [CLS] 向量)逐词生成(自回归生成)

4. 应用场景

  • BERT

    • 优势:擅长理解任务(如情感分析、问答系统)。
    • 案例:通过 [CLS] 向量进行文本分类,或利用双向上下文进行指代消解。
    • 局限:生成能力较弱,需通过微调适配生成任务。
  • GPT

    • 优势:擅长生成任务(如小说创作、对话生成)。
    • 案例:通过提示工程(Prompt Engineering)实现少样本学习(Few-shot Learning)。
    • 局限:对双向上下文理解不足,需依赖大量训练数据。

核心差异总结

对比点BERTGPT
哲学导向全知视角(双向建模)渐进生成(单向建模)
技术目标静态特征提取(判别式任务)动态生成(生成式任务)
并行性支持并行预测多个遮盖词串行生成(逐词预测)
微调需求需要微调适配下游任务可通过提示工程直接使用

扩展说明

  1. LLM 的改进方向

    • LLaMA 系列:采用 Pre-Normalization、RMSNorm、SwiGLU 激活函数,提升训练效率和性能。
    • 混合模型:如 T5(Text-to-Text Transfer Transformer),结合 Encoder-Decoder 结构,兼顾理解与生成能力。
  2. 实际应用选择

    • 理解任务:优先选择 BERT 或类似模型(如 RoBERTa)。
    • 生成任务:优先选择 GPT 或类似模型(如 Llama、ChatGLM)。
    • 混合场景:使用 T5 或 FLAN-T5 等双塔模型。

通过上述对比,可以更清晰地理解 LLM 的架构设计原则及不同模型的适用场景。