【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.

【LLM】从零开始学大语言模型 | 7 | Encoder-only架构和BERT

Encoder-only 架构与 BERT 家族:理解型大模型的构建方式 在 Transformer 的完整结构中,Encoder 与 Decoder 共同组成了一套既能理解文本、又能生成文本的模型框架。但在真实工业应用中,不同任务对模型能力的要求并不相同。有些任务需要模型不断生成新的词元,例如机器翻译、对话生成、文章续写;而另一些任务只需要模型读懂输入文本,然后给出判断、分类、标注或打分。 正是因为任务目标不同,Transformer 在后续发展中逐渐演化出了几类典型架构。其中第一类,就是专门面向文本理解任务的 Encoder-only 架构。这一方向最具代表性的模型,是 Google 在 2018 年提出的 BERT。 本文将系统梳理 Encoder-only 架构的设计动机、BERT 的核心训练任务、特殊 Token 的作用,以及“预训练 + 微调”这一改变 NLP 发展路径的技术范式。同时,我也会把一些常见疑问自然地融入解释中,例如:BERT 的伟大是否主要来自训练任务设计?微调时所谓“在顶层加一个分类器”到底是什么意思?Encoder-only 模型最后输出的矩阵又如何接到具体任务上? 一、从完整 Transformer 到 Encoder-only 1. Encoder 的特长:双向理解上下文 在原始 Transformer 中,Encoder 的职责是接收一段输入序列,并通过多层 Self-Attention 和前馈网络,为序列中的每个词元生成富含上下文信息的表示。 Encoder 的关键特点是:它的 Self-Attention 通常不限制词元之间的可见范围。对于输入序列中的任意一个词元,它既可以关注左侧上下文,也可以关注右侧上下文。也就是说,模型在表示一个词时,能够同时利用这个词前后的信息。 举例来说,对于句子: 我 今天 去 买 了 苹果 如果要理解“苹果”这个词的含义,模型不仅可以看到左侧的“我 今天 去 买 了”,也可以在条件允许时看到右侧可能出现的词。虽然这个例子右侧可能没有更多内容,但在更复杂的句子中,右侧上下文常常非常重要。例如: He deposited some money in the bank(他在银行存了钱) 与: ...

August 21, 2026 · 4 min · 846 words · c.w.