Skip to content

LLM 主要类别架构介绍

  1. LLM 主要类别
  2. 自编码模型
  3. 自回归模型
  4. 序列到序列模型
  5. 大模型主流架构-Decoder-only

LLM 主要类别

image-20250507144323737

LLM 本身基于 transformer 架构。自 2017 年,attention is all you need 诞生起,原始的 transformer 模型为不同领域的模型提供了灵感和启发。

基于原始的 Transformer 框架,衍生出了一系列模型,一些模型仅仅使用 encoder 或 decoder,有些模型同时使用 encoder+decoder.

LLM 分类一般分为三种:自编码模型(encoder)、自回归模型 (decoder) 和序列到序列模型 (encoder-decoder).

image-20250507144418731

自编码模型

AutoEncoder model, AE

代表模型 BERT

  • AE 模型,代表作 BERT,其特点为:Encoder-Only。

  • 基本原理:是在输入中随机 MASK 掉一部分单词,根据上下文预测这个词。

  • AE 模型通常用于内容理解任务,比如自然语言理解(NLU)中的分类任务:情感分析、提取式问答。

BERT 是 2018 年 10 月由 Google AI 研究院提出的一种预训练模型。

  • BERT 的全称是 Bidirectional Encoder Representation from Transformers.

  • BERT 在机器阅读理解顶级水平测试 SQuAD1.1 中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且在 11 种不同 NLP 测试中创出 SOTA 表现。包括将 GLUE 基准推高至 80.4% (绝对改进 7.6%), MultiNLI 准确度达到 86.7% (绝对改进 5.6%). 成为 NLP 发展史上的里程碑式的模型成就。

BERT 的架构

总体架构: 如下图所示, 最左边的就是BERT的架构图, 一个典型的双向编码模型.

image-20250507144534774

从上面的架构图中可以看到,宏观上 BERT 分三个主要模块:

  1. 最底层黄色标记的 Embedding 模块。

  2. 中间层蓝色标记的 Transformer 模块。

  3. 最上层绿色标记的预微调模块。

Embedding 模块

BERT 中的该模块是由三种 Embedding 共同组成而成,如下图

image-20250507144611622

  • To ken Em b eddings: 词嵌入张量, 第一个单词是CLS标志, 可以用于之后的分类任务.
  • Segment Embeddings: 句子分段嵌入张量, 是为了服务后续的两个句子为输入的预训练任务.
  • Position Embeddings: 位置编码张量。
  • 整个 Embedding 模块的输出张量就是这 3 个张量的直接加和结果。

双向 Transformer 模块

image-20250507144646408

  • BERT 中只使用了经典 Transformer 架构中的 Encoder 部分
  • 完全舍弃了 Decoder 部分
  • 两大预训练任务也集中体现在训练 Transformer 模块中

预微调模块

  • 经过中间层 Transformer 的处理后,BERT 的最后一层根据任务的不同需求而做不同的调整即可。

    image-20250507144715953

  • 比如对于 sequence-level 的分类任务,BERT 直接取第一个[CLS] token 的final hidden state, 再加一层全连接层后进行 softmax 来预测最终的标签。

BERT 的预训练任务

Masked LM (带 mask 的语言模型训练)

在原始训练文本中,随机的抽取 15% 的 token 作为参与 MASK 任务的对象。

  • 80% 的概率下,用[MASK]标记替换该 token.
  • 在 10% 的概率下,用一个随机的单词替换 token.
  • 在 10% 的概率下,保持该 token 不变。

Next Sentence Prediction (下一句话预测任务)

输入句子对 (A, B), 模型来预测句子 B 是不是句子 A 的真实的下一句话。

  • 所有参与任务训练的语句都被选中作为句子 A.
  • 其中 50% 的 B 是原始文本中真实跟随 A 的下一句话。(标记为 IsNext, 代表正样本).
  • 其中 50% 的 B 是原始文本中随机抽取的一句话。(标记为 NotNext, 代表负样本).

数据集与 BERT 模型的特点

数据集如下:

BooksCorpus (800M words) + English Wikipedia (2,500M words)

模型的一些关键参数为:

参数取值
transformer 层数12
特征维度768
transformer head 数12
总参数量1.15 亿

AE 模型总结

优点

  • BERT 使用双向 transformer,在语言理解相关的任务中表 现很好。

缺点

  • 输入噪声:预训练 - 微调存在差异。
  • 更适合 NLU 任务,不适合用 NLG 任务。

思考总结

  1. 什么是自编码模型?

    答案:是在输入中随机 MASK 掉一部分单词,根据上下文预测这个词。

  2. BERT 模型的核心架构?

    答案:transformer 的 Encoder 模块。

  3. BERT 的预训练任务?

    答案:MLM 和 NSP

自回归模型

Autoregressive model, AR

代表模型 GPT

AR 模型,代表作 GPT,其特点为:Decoder-Only。

基本原理:从左往右学习的模型,只能利用上文或者下文的信息。

AR 模型通常用于生成式任务,在长文本的生成能力很强,比如自然语言生成(NLG)领域的任务:摘要、翻译或抽象问答。

  • 2018 年 6 月,OpenAI 公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》, 推出了具有 1.17 亿个参数的 GPT(Generative Pre-training , 生成式预训练)模型。

GPT 模型架构

看三个语言模型的对比架构图,中间的就是 GPT

image-20250507144534774

从上图可以很清楚的看到 GPT 采用的是单向 Transformer 模型,例如给定一个句子[u1, u2, ..., un], GPT 在预测单词 ui 的时候只会利用 [u1, u2, ..., u(i-1)]的信息,而 BERT 会同时利用上下文的信息[u1, u2, ..., u(i-1), u(i+1), ..., un].

image-20250507145441553

image-20250507145523575

  • GPT 采用了 Transformer 的 Decoder 模块。但是 GPT 的 Decoder Block 和经典 Transformer Decoder Block 还有所不同

  • GPT 中取消了第二个 encoder-decoder attention 子层,只保留 Masked Multi-Head Attention 层,和 Feed Forward 层。

  • 注意:对比于经典的 Transformer 架构,解码器模块 采用了 6 个 Decoder Block; GPT 的架构中采用了 12 个 Decoder Block.

GPT 训练过程

GPT 的训练包括两阶段过程:1.无监督的预训练语言模型;2.有监督的下游任务 fine-tunning.

无监督的预训练语言模型

  • 给定句子 U = [u1, u2, ..., un], GPT 训练语言模型时的目标是最大化下面的似然函数:

    L1(U)=ilogP(ui|uik,,ui1;Θ)

  • 上述公式具体来说是要预测每个词 ui 的概率,这个概率是基于它前面 ui-k 到 ui?1 个词,以及模型 Θ。这里的 k 表示上文的窗口大小,理论上来讲 k 取的越大,模型所能获取的上文信息越充足,模型的能力越强。

  • GPT 是一个单向语言模型,模型对输入 U 进行特征嵌入得到 transformer 第一层的输 h0,再经过多层 transformer 特征编码,使用最后一层的输出即可得到当前预测的概率分布,计算过程如下:

    h0=UWe+Wp

Wp 代表单词的位置编码,形状是[max_seq_len, embedding_dim], We 的形状是[vocab_size, embedding_dim].

  • 得到输入张量 h0 后,要将 h0 传入 GPT 的 Decoder Block 中,依次得到 ht:

    h_t = \text{transformer_block}(h_{t-1}) \quad l \in [1, t]

  • 最后通过得到的 ht 来预测下一个单词:

    P(u)=softmax(htWcT)

有监督的下游任务 fine-tunning

  • GPT 预训练后,会针对具体的下游任务对模型进行微调。微调采用的是有监督学习,训练样本包括单词序列 [x1, x2, ..., xn] 和 label y. GPT 微调的目标任务是根据单词序列[x1, x2, ..., xn]预测标签 y.
P(y|x1,,xm)=softmax(htmWy)

其中 Wy 表示预测输出的矩阵参数,微调任务的目标是最大化下面的函数:

L2=(x,y)logP(y|x1,,xm)

综合两个阶段的目标任务函数,可知 GPT 的最终优化函数为:

L3=L2+λL1

整体训练过程架构图

根据下游任务适配的过程分两步: 1、根据任务定义不同输入, 2、对不同任务增加不同的分类层.

具体定义可以参见下图:

image-20250507150357434

GPT 数据集

GPT 使用了 BooksCorpus 数据集,文本大小约 5 GB,包含 7400w+ 的句子。这个数据集由 7000 本独立的、不同风格类型的书籍组成,选择该部分数据集的原因:

01 书籍文本包含大量高质量长句,保证模型学习长距离信息依赖。

02 书籍未开源公布,所以很难在下游数据集上见到,更能验证模型的泛化能力。

GPT 模型的特点

模型的一些关键参数为:

参数取值
transformer 层数12
特征维度768
transformer head 数12
总参数量1.17 亿
  • 优点

    1. GPT 在 9 个任务上的表现 sota

    2. 更易于并行化

  • 缺点

    1. GPT 语言模型是单向的。
    2. 针对不同的任务,需要不同的数据集进行模型微调,相对比较麻烦

AR 模型总结

  • 优点

    1. AR 模型擅长生成式任务。
    2. AR 模型生成数据较容易。
  • 缺点

    1. AR 模型不能完全捕捉 token 的内在联系。

思考总结

  1. 什么是自回归模型?

    答案:从左往右学习的模型,只能利用上文或者下文的信息。

  2. GPT 模型的核心架构?

    答案:transformer 的 Decoder 模块 (去除中间的第二个子层).

  3. GPT 的预训练任务?

    答案:无监督的预训练 和 有监督任务的微调

序列到序列模型

Sequence to Sequence Model

代表模型 T5

encoder-decoder 模型同时使用编码器和解码器。它将每个 task 视作序列到序列的转换/生成(比如,文本到文本,文本到图像或者图像到文本的多模态任务).Encoder-decoder 模型通常用于需要内容理解和生成的任务,比如机器翻译。

T5 由谷歌提出,该模型的目的为构建任务统一框架:将所有 NLP 任务都视为文本转换任务。

image-20250507150811595

通过这样的方式就能将 NLP 任务都转换成 Te x t-to-Te x t 形式,也就可以用同样的模型,同样的损失函数,同样的训练过程,同样的解码过程来完成所有 NLP 任务。

T5 模型架构与训练过程

T5 模型结构与原始的 Transformer 基本一致,除了做了以下几点改动:

  • 采用了一种简化版的 Layer Normalization,去除了 Layer Norm 的 bias;将 Layer Norm 放在残差连接外面。

  • 位置编码:T5 使用了一种简化版的相对位置编码,即每个位置编码都是一个标量,被加到 logits 上用于计算注意力权重。各层共享位置编码,但是在同一层内,不同的注意力头的位置编码都是独立学习的。

自监督预训练

采用类似于 BERT 模型的 MLM 预训练任务。

多任务预训练

除了使用大规模数据进行无监督预训练,T5 模型还可以利用不同任务的标注数据进行有监督的多任务预训练,例如 SQuAD 问答和机器翻译等任务。

T5 数据集与模型的特点

T5 数据集如下:

作者对公开爬取的网页数据集 Common Crawl 进行了过滤,去掉一些重复的、低质量的,看着像代码的文本等,并且最后只保留英文文本,得到数据集 C4: the Colossal Clean Crawled Corpus.

模型的一些关键参数为:

参数取值
transformer 层数24
特征维度768
transformer head 数12
总参数量2.2 亿

encoder-decoder 模型总结

优点

  • 处理多种 NLP 任务,具有良好的可扩展性;

  • 相比 GPT-2、GPT3 等模型,T5 参数量相对较少,训练速度更快。

缺点

  • 训练时间较长、需要更大的算力。
  • 模型的可解释性不足。

思考总结

  1. 什么是序列到序列模型?

    答案:同时使用编码器和解码器,它将每个 task 视作序列到序列的转换 /生成

  2. T5 模型的核心架构?

    答案:transformer 架构

  3. T5 的预训练任务?

    答案:采用类似于 BERT 模型的 MLM 预训练任务和多任务预训练

大模型主流模型架构

Decoder-only

Decoder-only

  • LLM 之所以主要都用 Decoder-only 架构,除了训练效率和工程实现上的优势外,在理论上是因为 Encoder 的双向注意力会存在低秩问题,这可能会削弱模型表达能力,就生成任务而言,引入双向注意力并无实质好处。

  • 而 Encoder-Decoder 架构之所以能够在某些场景下表现更好,大概只是因为它多了一倍参数。所以,在同等参数量、同等推理成本下,Decoder-only 架构就是最优选择了。

思考总结

  1. LLM 主要类别架构?

    答案:Encoder-Only、Decoder-Only、Encoder-Decoder

  2. 自编码模型的基本原理?

    答案:是在输入中随机 MASK 掉一部分单词,根据上下文预测这个词。

  3. 自回归模型的基本原理?

    答案:从左往右学习的模型,只能利用上文或者下文的信息。

  4. 序列到序列模型的基本原理?

    答案:同时使用编码器和解码器。它将每个 task 视作序列到序列的转换/生成.