<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Encoder on Blog</title>
    <link>/tags/encoder/</link>
    <description>Recent content in Encoder on Blog</description>
    <generator>Hugo -- 0.146.0</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 21 Aug 2026 08:00:00 +0800</lastBuildDate>
    <atom:link href="/tags/encoder/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【LLM】从零开始学大语言模型 | 6 | Encoder-Decoder和掩码</title>
      <link>/posts/encoder%E5%92%8Cdecoder/</link>
      <pubDate>Fri, 21 Aug 2026 08:00:00 +0800</pubDate>
      <guid>/posts/encoder%E5%92%8Cdecoder/</guid>
      <description>&lt;h1 id=&#34;encoder-decoder-架构与-mask-机制从翻译模型到自回归生成&#34;&gt;Encoder-Decoder 架构与 Mask 机制：从翻译模型到自回归生成&lt;/h1&gt;
&lt;p&gt;在理解了 Attention、Multi-Head Attention、FFN 以及 Transformer Block 之后，我们已经拥有了一个可以反复堆叠的基础模块。下一步要回答的问题是：这些模块如何组成一个完整的模型？在 2017 年的论文《Attention Is All You Need》中，Transformer 被设计成一个 Encoder-Decoder 架构，最初主要用于机器翻译这样的序列到序列任务。也就是说，输入是一段序列，输出也是一段序列，而且输入和输出长度可以不同。&lt;/p&gt;
&lt;p&gt;这篇文章将从整体架构、Decoder 的特殊结构、Mask 机制、训练时的 Loss 与反向传播，以及多层 Decoder 中 Cross-Attention 的 KV 来源几个方面，把 Encoder-Decoder Transformer 的工作方式完整梳理一遍。&lt;/p&gt;
&lt;h2 id=&#34;一从单个-transformer-block-到-encoder-decoder-架构&#34;&gt;一、从单个 Transformer Block 到 Encoder-Decoder 架构&lt;/h2&gt;
&lt;h3 id=&#34;1-encoder-与-decoder-的分工&#34;&gt;1. Encoder 与 Decoder 的分工&lt;/h3&gt;
&lt;p&gt;可以把 Encoder-Decoder 结构理解成一个翻译官的工作台。&lt;/p&gt;
&lt;p&gt;左侧是 Encoder，也就是编码器。它的任务是深度阅读源语言。例如输入一句中文：“我 / 爱 / AI”，Encoder 会通过多层网络逐步理解这些词之间的关系：谁是主语，谁是谓语，哪个词修饰哪个词，整句话的整体语义是什么。经过若干层 Encoder Block 之后，模型得到的不是一串孤立的词向量，而是一组包含上下文信息的特征向量。可以把它看作 Encoder 对源语言句子进行抽象压缩后得到的“语义表示”。&lt;/p&gt;
&lt;p&gt;右侧是 Decoder，也就是解码器。它的任务是逐字生成目标语言。例如它要生成英文：“I / love / AI”。Decoder 不能像 Encoder 那样一次性随意看完整句目标语言的全部内容，因为在真正生成文本时，模型只能依赖已经生成的内容。Decoder 需要一边参考 Encoder 对源语言的理解，一边根据当前已经生成的词预测下一个词。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【LLM】从零开始学大语言模型 | 7 | Encoder-only架构和BERT</title>
      <link>/posts/bert/</link>
      <pubDate>Fri, 21 Aug 2026 08:00:00 +0800</pubDate>
      <guid>/posts/bert/</guid>
      <description>&lt;h1 id=&#34;encoder-only-架构与-bert-家族理解型大模型的构建方式&#34;&gt;Encoder-only 架构与 BERT 家族：理解型大模型的构建方式&lt;/h1&gt;
&lt;p&gt;在 Transformer 的完整结构中，Encoder 与 Decoder 共同组成了一套既能理解文本、又能生成文本的模型框架。但在真实工业应用中，不同任务对模型能力的要求并不相同。有些任务需要模型不断生成新的词元，例如机器翻译、对话生成、文章续写；而另一些任务只需要模型读懂输入文本，然后给出判断、分类、标注或打分。&lt;/p&gt;
&lt;p&gt;正是因为任务目标不同，Transformer 在后续发展中逐渐演化出了几类典型架构。其中第一类，就是专门面向文本理解任务的 &lt;strong&gt;Encoder-only 架构&lt;/strong&gt;。这一方向最具代表性的模型，是 Google 在 2018 年提出的 &lt;strong&gt;BERT&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;本文将系统梳理 Encoder-only 架构的设计动机、BERT 的核心训练任务、特殊 Token 的作用，以及“预训练 + 微调”这一改变 NLP 发展路径的技术范式。同时，我也会把一些常见疑问自然地融入解释中，例如：BERT 的伟大是否主要来自训练任务设计？微调时所谓“在顶层加一个分类器”到底是什么意思？Encoder-only 模型最后输出的矩阵又如何接到具体任务上？&lt;/p&gt;
&lt;h2 id=&#34;一从完整-transformer-到-encoder-only&#34;&gt;一、从完整 Transformer 到 Encoder-only&lt;/h2&gt;
&lt;h3 id=&#34;1-encoder-的特长双向理解上下文&#34;&gt;1. Encoder 的特长：双向理解上下文&lt;/h3&gt;
&lt;p&gt;在原始 Transformer 中，Encoder 的职责是接收一段输入序列，并通过多层 Self-Attention 和前馈网络，为序列中的每个词元生成富含上下文信息的表示。&lt;/p&gt;
&lt;p&gt;Encoder 的关键特点是：它的 Self-Attention 通常不限制词元之间的可见范围。对于输入序列中的任意一个词元，它既可以关注左侧上下文，也可以关注右侧上下文。也就是说，模型在表示一个词时，能够同时利用这个词前后的信息。&lt;/p&gt;
&lt;p&gt;举例来说，对于句子：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我 今天 去 买 了 苹果&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;如果要理解“苹果”这个词的含义，模型不仅可以看到左侧的“我 今天 去 买 了”，也可以在条件允许时看到右侧可能出现的词。虽然这个例子右侧可能没有更多内容，但在更复杂的句子中，右侧上下文常常非常重要。例如：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;He deposited some money in the bank（他在银行存了钱）&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;与：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
