跳转至

自回归模型:BERT / GPT 与 Prefix-LM 架构详解

有哪些序列建模范式、BERT 与 GPT 到底差在哪、为什么机器人 VLA(如 π₀-FAST)用的是两者的混合体 Prefix-LM。是 Action Tokenization 里"自回归 + 交叉熵""prefix 双向 / action 因果掩码"的展开。

一句话先记住

所有差别都归结到一件事每个 token 能"看到"哪些其他 token(注意力掩码)。双向看全部 → 擅长理解(BERT);因果只看左边 → 能自回归生成(GPT)。架构其实是同一套 Transformer block,区别只在掩码和训练目标。


预备知识

预备知识

正文会反复用到下面这些概念。每条按「中文名 = 英文名 = 最小定义」给出;按本站惯例,正文中直接使用英文术语(与此处三元组一一对应):

  • 自注意力 = self-attention = 序列中每个 token 以自己的 query 去匹配其它 token 的 key、按匹配权重汇聚其 value,从上下文提取信息的机制[1]
  • 注意力掩码 = attention mask = 规定「每个 query 位置允许注意哪些 key 位置」的布尔矩阵;本文三种范式(双向 / 因果 / Prefix-LM)的差别全部落在这张矩阵上[1]
  • 交叉注意力 = cross-attention = decoder 侧的 query 去注意 encoder 输出的 key/value,把输入条件引入生成侧的注意力形式[1]
  • 自回归 = autoregressive = 按链式法则把联合概率拆成逐 token 的条件概率、用已生成的历史预测下一个 token 的建模方式[2]
  • 掩码语言建模 = masked language modeling(MLM) = 遮住输入中的部分 token、用未遮住的左右上下文重建它们的训练目标[3]
  • 交叉熵 = cross-entropy = 衡量预测分布与目标分布差异的损失函数;next-token 训练即对正确 token 取负对数似然[2]

框架 01 · 在估计什么

0. 序列模型到底在估计什么

给一串 token \(x_1,x_2,\dots,x_n\),语言模型本质是在估计它们的联合概率 \(p(x_1,\dots,x_n)\)。怎么拆这个联合概率,决定了模型范式:

范式 怎么分解 / 训练目标 能生成吗
自回归 (AR) \(p(x)=\prod_t p(x_t\mid x_{<t})\),预测下一个 token ✅ 天生为生成而设计
自编码 / 掩码 (AE/MLM) 遮住一部分 \(\tilde x\),重建 \(p(x_{\text{masked}}\mid \tilde x)\) ❌ 主要用于理解/表征
序列到序列 (seq2seq) 编码输入,解码输出 \(p(y\mid x)\) ✅ 翻译/摘要类

“自回归”名字的由来

auto-regressive = 用自己已经生成的历史 \(x_{<t}\) 去回归预测下一个 \(x_t\),再把它接回输入,循环往复。和动作生成里"逐 token 采样、把 | 当终止符"是同一件事。


框架 02 · 三种搭法

1. 三大架构范式(同一种积木,三种搭法)

Transformer 的积木是「多头自注意力 + 前馈层」[1]。三大范式只是怎么堆叠 + 用什么掩码不同:

Encoder-only(BERT) 双向自注意力 ×N 前馈 输入全部可见 ↑ 输出每个位置的表征 Decoder-only(GPT) 因果自注意力 ×N 前馈 只能看左边 ↑ 预测下一个 token Encoder-Decoder(T5) 编码器(双向) 解码器(因果) 交叉注意力连接
图 1 · 三大架构范式对比。同样的 Transformer block,区别只在「掩码方向」和「堆叠方式」。看每个盒子里注意力层的类型即可:绿色 = 双向注意力(encoder 侧),蓝色 = 因果注意力(decoder 侧),紫色箭头 = 连接两者的交叉注意力。结论:范式之别不在积木本身,而在掩码与堆叠。

机制 · 注意力掩码

2. 核心机制:注意力掩码(亲手切换看区别)

自注意力让每个 token 去"查询"其他 token。掩码决定哪些查询被允许。这是 BERT / GPT / Prefix-LM 唯一的本质差别。下面这张图:行 = 正在计算的 token(query),列 = 被注意的 token(key),亮格 = 允许注意

图 2 · Demo:三种注意力掩码对比
点按钮切换。序列假设是 [CLS] 任务 提示 ; A1 A2 A3 |,前 4 个(含分隔符 ;)是 prompt 前缀、后 4 个是要生成的 action。看什么:行 = query(谁在看),列 = key(被注意);token 标签绿色 = prompt 前缀、蓝色 = action 后缀;亮格 = 允许注意(Prefix-LM 模式下前缀内部的双向区显示为绿色),灰格 = 被掩码禁止。结论:因果 = 下三角,双向 = 全亮,Prefix-LM = 左上双向块 + 右下因果三角。
  • 因果掩码(下三角):token \(t\) 只能注意 \(\le t\) 的位置。保证"预测下一个时不偷看未来",是自回归生成的前提。GPT 全程用它。
  • 双向掩码(全亮):每个 token 看到整句。理解任务(分类、抽取)需要全局上下文,但无法直接逐个生成(会偷看答案)。BERT 用它。

架构 01 · BERT

3. BERT — 编码器 / 双向 / 掩码语言模型

Bidirectional Encoder Representations from Transformers[3]。只用 Transformer 的编码器栈,全程双向注意力。

训练目标:MLM(Masked Language Modeling,完形填空)

输入:  机器人 [MASK] 可爱        ← 随机遮住 15% 的 token
目标:  预测 [MASK] = "很"        ← 用左右两边的上下文一起猜

因为要"用两边猜中间",所以必须双向。另一个经典目标是 NSP(判断两句是否相邻)[3],后续工作(RoBERTa)发现可去掉[4]

BERT 不能直接做生成

它擅长把整句"读懂"成向量表征(适合分类、检索、命名实体识别),但因为是双向的,没法逐 token 自回归生成——所以聊天/写作类任务用的是 GPT 那一支。

属性 BERT
结构 Encoder-only
注意力 双向
训练目标 MLM(+NSP)
强项 理解 / 表征(分类、抽取、检索)
能否生成
代表后代 RoBERTa, ALBERT, DeBERTa, ELECTRA

架构 02 · GPT

4. GPT — 解码器 / 因果 / 自回归

Generative Pre-trained Transformer[5]。只用 Transformer 的解码器栈(去掉了对编码器的交叉注意力),全程因果掩码。

训练目标:next-token prediction(预测下一个 token)

\[ \mathcal{L}=-\sum_t \log p_\theta(x_t\mid x_{<t}) \]

这正是 π₀-FAST 把动作 token 当语言、做 next-token 交叉熵的目标。下面这个 demo 演示自回归是怎么"逐字吐出"的:

图 3 · Demo:自回归生成(逐 token 采样)
点"生成下一个 token",模型基于已生成的历史给出下一个 token 的概率分布并采样,再接回输入——这就是 GPT / 动作逐 token 采样的循环。看什么:上排方框 = 已生成的历史序列(新 token 依次接到右侧),下方紫色柱状图 = 下一个 token 的概率分布(柱顶标注各自概率);拖动 temperature 滑杆可见分布被压平或变尖,采样随之更随机或更确定。结论:生成 = 「预测分布 → 采样 → 接回输入」的循环。
属性 GPT
结构 Decoder-only
注意力 因果(单向)
训练目标 next-token 预测
强项 生成(对话、写作、代码)
能否生成 ✅(天生)
代表家族 GPT-⅔/4[6][7], LLaMA, Mistral, Qwen, Gemma, Claude

架构 03 · T5 / BART

5. T5 / BART — 编码-解码(seq2seq)

把两支合起来:编码器双向读入输入(如英文句子),解码器因果地生成输出(如中文句子),中间用交叉注意力让解码器读到编码器的表征。天生适合"输入→输出"的转换任务(翻译、摘要)。

T5 的统一视角

T5 把所有任务都变成"文本→文本":分类 = 生成标签词,翻译 = 生成译文[8]。BART 则用"破坏文本再重建"的去噪目标预训练[9]。两者都是 encoder-decoder。


架构 04 · Prefix-LM

6. Prefix-LM — 前缀双向 + 后缀因果(π₀-FAST 用的就是它)

这是连接本页和动作 tokenization 的关键。Prefix-LM(前缀语言模型)是 decoder-only 的一个变体[8][10]:把序列分成前缀后缀两段,用一张混合掩码

  • 前缀(prompt + 图像 + 离散化 state):内部双向注意(像 encoder,充分理解条件)。
  • 后缀(要生成的 action token):因果注意(像 decoder,保证自回归)。后缀能看到全部前缀。

用上面 Demo(图 2)的"Prefix-LM"按钮可以直接看到这张掩码的形状:左上是一个全亮方块(前缀双向),右下是一个下三角(后缀因果)。

为什么机器人 VLA 选 Prefix-LM

观测(图像/指令/状态)是已知条件,应当被充分双向理解;而动作是要生成的,必须因果。Prefix-LM 一张掩码同时满足两边——PaliGemma[11]、π₀-FAST[12] 都用它。


速查 · 家族全表

7. 模型家族全表(速查)

模型 范式 注意力 训练目标 典型用途
BERT / RoBERTa Encoder-only 双向 MLM 理解、分类、检索
GPT / LLaMA / Gemma / Claude Decoder-only 因果 next-token 生成、对话
T5 / BART Encoder-Decoder 编码双向+解码因果 去噪 / span 重建 翻译、摘要
PaLM / UL2 / PaliGemma Prefix-LM / 混合 前缀双向+后缀因果 (prefix) next-token 多模态、条件生成
π₀-FAST Prefix-LM (VLA) 前缀双向+动作因果 action token 交叉熵 机器人动作生成

为什么现在主流是 Decoder-only

GPT 路线(decoder-only + 因果)用一个目标就能既学表征又能生成,规模化最简单,所以大模型几乎都走这支。BERT 这种 encoder-only 仍在"只需理解、不需生成"的场景(如检索、排序)很强。


收束 · 回到 tokenization

8. 回到 action tokenization

串起来(详见 Action Tokenization):

  1. 动作被 tokenizer(FAST/FSQ/Binning)变成离散 token。
  2. π₀-FAST 用 Prefix-LM:前缀(观测+指令+state)双向、后缀(action)因果[12]
  3. 训练用 GPT 式 next-token 交叉熵,只在 action 段计损失[12]
  4. 推理用 自回归采样(本页 Demo,图 3),靠 temperature 取出多模态的不同解。

现在你应该能回答:为什么 VLA 不用纯 BERT?(不能生成)为什么不用纯因果 GPT 而要 Prefix-LM?(让观测条件被双向充分理解)为什么训练像 GPT?(next-token 交叉熵 + 天然多模态)。


延伸阅读


References

  1. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., Polosukhin, I. Attention Is All You Need. NeurIPS 2017. arXiv:1706.03762.
  2. Goodfellow, I., Bengio, Y., Courville, A. Deep Learning. MIT Press, 2016.
  3. Devlin, J., Chang, M.-W., Lee, K., Toutanova, K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL-HLT 2019. arXiv:1810.04805.
  4. Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., Levy, O., Lewis, M., Zettlemoyer, L., Stoyanov, V. RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
  5. Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. Improving Language Understanding by Generative Pre-Training. OpenAI technical report, 2018.
  6. Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., Sutskever, I. Language Models are Unsupervised Multitask Learners. OpenAI technical report, 2019.
  7. Brown, T. B., Mann, B., Ryder, N., et al. Language Models are Few-Shot Learners. NeurIPS 2020. arXiv:2005.14165.
  8. Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., Zhou, Y., Li, W., Liu, P. J. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR 21, 2020. arXiv:1910.10683.
  9. Lewis, M., Liu, Y., Goyal, N., Ghazvininejad, M., Mohamed, A., Levy, O., Stoyanov, V., Zettlemoyer, L. BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension. ACL 2020. arXiv:1910.13461.
  10. Tay, Y., Dehghani, M., Tran, V. Q., et al. UL2: Unifying Language Learning Paradigms. arXiv:2205.05131.
  11. Beyer, L., Steiner, A., et al. PaliGemma: A versatile 3B VLM for transfer. arXiv:2407.07726.
  12. Pertsch, K., Stachowicz, K., Ichter, B., Driess, D., Nair, S., Vuong, Q., Mees, O., Finn, C., Levine, S. FAST: Efficient Action Tokenization for Vision-Language-Action Models. arXiv:2501.09747.