<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>LLM Architecture on SelfTechHub</title>
        <link>https://blog.irudder.me/tags/LLM-Architecture.html</link>
        <description>Recent content in LLM Architecture on SelfTechHub</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 29 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.irudder.me/tags/LLM-Architecture/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>第2章：Transformer架构——LLM的心脏，你必须了解的结构</title>
        <link>https://blog.irudder.me/ai/knowledge-series/02-Transformer-Architecture-Explained.html</link>
        <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.irudder.me/ai/knowledge-series/02-Transformer-Architecture-Explained.html</guid>
        <description>&lt;h1 id=&#34;第2章transformer架构llm的心脏你必须了解的结构&#34;&gt;第2章：Transformer架构——LLM的心脏，你必须了解的结构
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;系列导读：本章是系列中最偏技术原理的一章。如果你不需要深挖底层，可以跳过神经网络和注意力机制的具体数学，但&lt;strong&gt;Attention 机制的概念&lt;/strong&gt;建议不要跳过，它是理解一切 LLM 能力的基础。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一为什么-transformer-如此重要&#34;&gt;一、为什么 Transformer 如此重要？
&lt;/h2&gt;&lt;p&gt;在 Transformer 之前，NLP 主要用 RNN（循环神经网络）和 LSTM（长短期记忆网络）。它们的致命问题在于：&lt;strong&gt;无法并行计算&lt;/strong&gt;——处理一个句子，必须一个词一个词地按顺序来，后面的词必须等前面的处理完。&lt;/p&gt;
&lt;p&gt;Transformer（2017年 Google 提出，论文《Attention Is All You Need》）革命性地用**自注意力机制（Self-Attention）**替代了顺序依赖，实现了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;全并行计算&lt;/strong&gt;：句子中所有词同时处理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无限感知距离&lt;/strong&gt;：一个词可以直接「看到」句子里的任何一个词，无论多远&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;极强的可扩展性&lt;/strong&gt;：奠定了「大」模型的基础&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;二transformer-的整体架构&#34;&gt;二、Transformer 的整体架构
&lt;/h2&gt;&lt;p&gt;LLM（尤其是 GPT 系列）用的是 &lt;strong&gt;Decoder-only&lt;/strong&gt; 架构，只保留 Transformer 的解码器部分。一张图说清楚：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;输入文本 → Token Embedding + 位置编码 → N个解码器层 → 输出概率分布 → 选词 → 生成文本
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;每层解码器内部包含两个核心子模块：&lt;/p&gt;
&lt;h3 id=&#34;1-多头自注意力multi-head-self-attention&#34;&gt;1. 多头自注意力（Multi-Head Self-Attention）
&lt;/h3&gt;&lt;p&gt;这是 Transformer 的灵魂。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自注意力的核心思想&lt;/strong&gt;：计算句子中&lt;strong&gt;每个词与其他所有词之间的关联强度&lt;/strong&gt;，然后根据关联强度加权聚合信息。&lt;/p&gt;
&lt;p&gt;比如输入句子：「猫坐在垫子上，因为它很暖和。」&lt;/p&gt;
&lt;p&gt;传统序列模型处理「它」时，只能看到前面的词，难以判断「它」到底指猫还是垫子。而 Transformer 的注意力机制让「它」直接去「问」前面的所有词：「你跟我关系近吗？」&lt;/p&gt;
&lt;p&gt;结果「垫子」和「暖和」得分最高，「猫」得分次之——模型就明白「它=垫子」了。&lt;/p&gt;
&lt;h4 id=&#34;三步走query-key-value&#34;&gt;三步走：Query, Key, Value
&lt;/h4&gt;&lt;p&gt;这是注意力机制最经典也最容易被误解的部分。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个词拿出一组「查询向量」（Query）：&amp;ldquo;我有问题要问别人&amp;rdquo;&lt;/li&gt;
&lt;li&gt;每个词拿出一组「键向量」（Key）：&amp;ldquo;这是我对自己的描述，来和我匹配&amp;rdquo;&lt;/li&gt;
&lt;li&gt;每个词拿出一组「值向量」（Value）：&amp;ldquo;如果匹配上了，这是我贡献的信息&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;过程如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;每个词的 Query 向量，与所有词的 Key 向量做点积 → 得到一个注意力分数&lt;/li&gt;
&lt;li&gt;分数经过 softmax 归一化 → 得到权重&lt;/li&gt;
&lt;li&gt;用权重加权所有词的 Value 向量 → 得到这个词的新表示&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;数学公式：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Attention(Q, K, V) = softmax(Q·K^T / sqrt(d_k)) · V
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;除以 sqrt(d_k) 的缩放步骤——在维度很高时，点积结果会变得极大，softmax 会退化成接近 one-hot 的极端分布，缩放可以平滑它。&lt;/p&gt;
&lt;h4 id=&#34;多头multi-head&#34;&gt;多头（Multi-Head）
&lt;/h4&gt;&lt;p&gt;一套 Query/Key/Value 不够用，来多套——比如8套或16套。&lt;/p&gt;
&lt;p&gt;每套「头」关注不同的语言模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第1个头关注语法关系（主语-谓语）&lt;/li&gt;
&lt;li&gt;第2个头关注语义相似度&lt;/li&gt;
&lt;li&gt;第3个头关注位置相邻关系&lt;/li&gt;
&lt;li&gt;第4个头关注代词指代&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后把多个头的结果拼接起来，用一个线性变换合并。多头让每个数学空间「各司其职」，信息更丰富。&lt;/p&gt;
&lt;h3 id=&#34;2-前馈神经网络feed-forward-network-ffn&#34;&gt;2. 前馈神经网络（Feed-Forward Network, FFN）
&lt;/h3&gt;&lt;p&gt;自注意力之后，每个词向量经过两层全连接网络：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;FFN(x) = ReLU(xW1 + b1)W2 + b2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;它的作用是把注意力的结果做一个&lt;strong&gt;非线性映射&lt;/strong&gt;，增加模型的表达能力。你可以把它理解为让每个词在注意力的基础上「深度加工」一下。&lt;/p&gt;
&lt;p&gt;现代大模型常用 GELU 或 SwiGLU 替代 ReLU，性能更好。&lt;/p&gt;
&lt;h2 id=&#34;三位置编码为什么需要它&#34;&gt;三、位置编码：为什么需要它？
&lt;/h2&gt;&lt;p&gt;Transformer 的注意力机制是「全连接」的——它不在乎词在句子中的位置。但自然语言里位置极重要：「我打你」和「你打我」意思完全不同。&lt;/p&gt;
&lt;p&gt;位置编码（Positional Encoding）就用来注入位置信息。早期用正弦余弦函数生成位置向量，加到词向量上。现代大模型多用&lt;strong&gt;可学习的位置嵌入&lt;/strong&gt;（Learnable Positional Embedding）或&lt;strong&gt;旋转位置编码（RoPE）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;**RoPE（旋转位置编码）**是当代大模型（LLaMA、智谱、通义等）的主流选择。思路很巧妙：&lt;/p&gt;
&lt;p&gt;不把位置信息作为外部向量注入，而是让注意力计算中的 Query 和 Key 向量根据距离做「旋转」，旋转角度由位置决定，距离越远旋转角度越大。这样模型能学习到「距离越远的词，关联越弱」的偏置。&lt;/p&gt;
&lt;h2 id=&#34;四layer-normalization训练稳定的基石&#34;&gt;四、Layer Normalization：训练稳定的基石
&lt;/h2&gt;&lt;p&gt;Transformer 层数很深（GPT-3 有96层），深网络里信号的分布会一层层漂移，导致训练不稳定。&lt;/p&gt;
&lt;p&gt;Layer Norm 在每一层内部对输入进行归一化，把值拉到均值为0、方差为1的分布。这样多层叠加时信号不会爆炸也不会消失。&lt;/p&gt;
&lt;p&gt;现代变体常用 &lt;strong&gt;RMSNorm&lt;/strong&gt;（Root Mean Square Norm），计算更简洁，LLaMA 等模型在用。&lt;/p&gt;
&lt;h2 id=&#34;五现代-llm-对-transformer-的改造&#34;&gt;五、现代 LLM 对 Transformer 的改造
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;原设计&lt;/th&gt;
          &lt;th&gt;改进&lt;/th&gt;
          &lt;th&gt;代表模型&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;LayerNorm → 先归一化再注意力&lt;/td&gt;
          &lt;td&gt;Pre-Norm：先归一化再进入子层&lt;/td&gt;
          &lt;td&gt;GPT-3、LLaMA 等&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ReLU 激活&lt;/td&gt;
          &lt;td&gt;SwiGLU/GELU 激活&lt;/td&gt;
          &lt;td&gt;GPT-4、LLaMA&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;原版位置编码&lt;/td&gt;
          &lt;td&gt;RoPE 旋转位置编码&lt;/td&gt;
          &lt;td&gt;LLaMA、智谱&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;全部密集层&lt;/td&gt;
          &lt;td&gt;MoE（混合专家）稀疏激活&lt;/td&gt;
          &lt;td&gt;Mixtral、GPT-4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;全局注意力&lt;/td&gt;
          &lt;td&gt;滑动窗口注意力/稀疏注意力&lt;/td&gt;
          &lt;td&gt;Longformer、Mistral&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;六为什么理解-transformer-结构很重要&#34;&gt;六、为什么理解 Transformer 结构很重要？
&lt;/h2&gt;&lt;p&gt;你可以「用」GPT 而不了解 Transformer，但如果你要做 LLM 工程优化，以下问题都绕不开底层结构：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;KV Cache 优化&lt;/strong&gt;：Transformer 解码时每步都要计算所有 Key 和 Value，重算太浪费。缓存历史 KV 能把时间复杂度从 O(n²) 降到 O(n)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意力幻方&lt;/strong&gt;：长上下文时自注意力的计算复杂度是 O(n²)，这是 LLM 最大的性能瓶颈。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;量化推理（8bit/4bit）&lt;/strong&gt;：知道矩阵乘法的内部结构，才知道哪些权重可以降精度而不影响效果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prompt 压缩&lt;/strong&gt;：理解位置编码和注意力的偏置，才知道如何让模型更关注关键信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;七本章小结&#34;&gt;七、本章小结
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Transformer = 自注意力 + 前馈 + 位置编码，三者缺一不可&lt;/li&gt;
&lt;li&gt;自注意力让任意两个词之间直接通信，打破了序列模型的时间依赖&lt;/li&gt;
&lt;li&gt;Multi-Head 让多维度语义模式并行计算&lt;/li&gt;
&lt;li&gt;现代大模型在位置编码、归一化方式、激活函数上做了显著优化&lt;/li&gt;
&lt;li&gt;Transformer 架构的天花板决定了 LLM 能力的上限：O(n²) 的注意力复杂度是核心瓶颈&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;思考题&#34;&gt;思考题
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;为什么 Transformer 的自注意力是 O(n²)，这对长上下文意味着什么？&lt;/li&gt;
&lt;li&gt;多头注意力中，不同的「头」真的会学到不同的模式吗？你怎么验证这件事？&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
