【LLM】从零开始学大语言模型 | 8 | Decoder-only架构和GPT

Decoder-only 架构与 GPT 家族:从单向预测到大语言模型时代 在学习 BERT 时,我们看到 Transformer 的 Encoder 可以通过双向注意力充分理解上下文,从而完成分类、标注、匹配等任务。但如果把视线转向今天最主流的大语言模型,会发现另一条路线取得了压倒性成功:只保留 Decoder 的 Decoder-only 架构。这一路线的代表就是 GPT 家族。 从表面上看,Decoder-only 似乎比完整的 Encoder-Decoder 更“残缺”:它没有 Encoder,也没有 Cross-Attention,只能从左到右地看前文。但正是这种看似简单的结构,配合大规模数据、大规模算力和“预测下一个 Token”的训练目标,最终催生出了具备强大生成、推理和上下文学习能力的大语言模型。 本文将系统梳理 Decoder-only 架构的设计动机、GPT 的训练方式、从 GPT-1 到 GPT-3 的范式变化,以及现代大模型中常见的工程与结构改进,包括稀疏注意力、MoE、SwiGLU、RMSNorm、GQA/MQA 等。对于学习过程中常见的疑问,例如“GPT 是不是只是更大的工程堆叠”“预测下一个 Token 的损失函数如何定义”“为什么 GPT 可以不做微调”“In-context Learning 是否有理论依据”“MoE 的专家是不是预先训练好的”等,也会自然地融入正文解释中。 一、为什么 GPT 选择 Decoder-only 1. Encoder 与 Decoder 的分工 完整 Transformer 包含两部分: Encoder:擅长理解输入序列。它的 Self-Attention 通常允许每个位置同时看到左右上下文,因此可以构建双向语义表示。 Decoder:擅长生成输出序列。它通过 Causal Mask 限制每个位置只能看到自己之前的位置,从而保证生成过程符合从左到右的顺序。 因此,Encoder 更像是一个“阅读理解器”,Decoder 更像是一个“逐字写作器”。 BERT 选择了 Encoder 路线,通过完形填空任务学习双向语义表示。GPT 则选择了 Decoder 路线,通过不断预测下一个词元来学习语言生成能力。 ...

August 25, 2026 · 7 min · 1426 words · c.w.

【LLM】从零开始学大语言模型 | 6 | Encoder-Decoder和掩码

Encoder-Decoder 架构与 Mask 机制:从翻译模型到自回归生成 在理解了 Attention、Multi-Head Attention、FFN 以及 Transformer Block 之后,我们已经拥有了一个可以反复堆叠的基础模块。下一步要回答的问题是:这些模块如何组成一个完整的模型?在 2017 年的论文《Attention Is All You Need》中,Transformer 被设计成一个 Encoder-Decoder 架构,最初主要用于机器翻译这样的序列到序列任务。也就是说,输入是一段序列,输出也是一段序列,而且输入和输出长度可以不同。 这篇文章将从整体架构、Decoder 的特殊结构、Mask 机制、训练时的 Loss 与反向传播,以及多层 Decoder 中 Cross-Attention 的 KV 来源几个方面,把 Encoder-Decoder Transformer 的工作方式完整梳理一遍。 一、从单个 Transformer Block 到 Encoder-Decoder 架构 1. Encoder 与 Decoder 的分工 可以把 Encoder-Decoder 结构理解成一个翻译官的工作台。 左侧是 Encoder,也就是编码器。它的任务是深度阅读源语言。例如输入一句中文:“我 / 爱 / AI”,Encoder 会通过多层网络逐步理解这些词之间的关系:谁是主语,谁是谓语,哪个词修饰哪个词,整句话的整体语义是什么。经过若干层 Encoder Block 之后,模型得到的不是一串孤立的词向量,而是一组包含上下文信息的特征向量。可以把它看作 Encoder 对源语言句子进行抽象压缩后得到的“语义表示”。 右侧是 Decoder,也就是解码器。它的任务是逐字生成目标语言。例如它要生成英文:“I / love / AI”。Decoder 不能像 Encoder 那样一次性随意看完整句目标语言的全部内容,因为在真正生成文本时,模型只能依赖已经生成的内容。Decoder 需要一边参考 Encoder 对源语言的理解,一边根据当前已经生成的词预测下一个词。 ...

August 21, 2026 · 6 min · 1093 words · c.w.