LLM中的Transformer架构

张开发
2026/5/12 8:48:46 15 分钟阅读

分享文章

LLM中的Transformer架构
一、Transformer 是什么Transformer是 2017 年 Google 提出的神经网络架构它抛弃了传统的循环神经网络RNN和卷积神经网络CNN完全基于注意力机制。核心优势可以并行处理整个序列不像 RNN 必须逐个词处理能捕捉长距离的依赖关系比如句子开头和结尾的关联在大模型中的地位GPT、BERT、LLaMA、ChatGLM 等主流大模型底层都是 Transformer 架构或其变体。传统序列模型的缺陷模型缺点RNN/LSTM必须逐个词处理无法并行长距离依赖容易遗忘梯度消失CNN需要堆叠很多层才能捕获长距离依赖感受野受限Transformer 的革命性完全抛弃循环与卷积→ 可以并行计算自注意力机制→ 任意两个位置直接交互1 步捕获长距离依赖自注意力机制是Transformer模型的核心组件可扩展性极强→ 模型越大效果越好Scaling LawRNN/CNN/Transfermer对比原始 Transformer 有两大部分以翻译为例部分作用输入输出类比Encoder编码器理解源语言“How are you”一组“深度理解后的向量”你把英文句子完全读懂Decoder解码器生成目标语言已生成的中文词 Encoder 的输出下一个中文词你一句句写出中文翻译现代大模型只用其中一部分架构使用部分代表模型任务Decoder-Only只用 DecoderGPT、LLaMA、ChatGLM文本生成续写、对话Encoder-Only只用 EncoderBERT文本理解分类、实体识别Encoder-Decoder两者都用T5、BART转换任务翻译、摘要为什么 GPTDecoder-Only成为主流训练简单只需要“预测下一个词”不需要标注数据通用性强通过提示词prompt可以完成理解、生成、推理等各种任务Encoder 负责“读懂”Decoder 负责“写出”。GPT 只用 Decoder 也能“读懂”是因为它把理解能力内化在了自注意力里看起来比较抽象 下面将举例说明一、先忘掉 Transformer记住一个生活场景想象你在一个嘈杂的派对上想听清楚你朋友小明说的话。这时候你的大脑在做三件事聚焦把注意力主要放在小明身上忽略远处的噪音参考偶尔听一下旁边小红的反应看她的表情是否附和获取上下文回顾回想小明刚才说的前半句话理解完整的逻辑Transformer 做的事情完全一样读一个句子的时候每个词都会“看一看”句子里的其他词决定要重点关注谁。一句话总结Transformer 就是一种让每个词都能“环顾四周、决定关注谁”的机制。二、一个具体例子理解“它”指什么句子“小明很累了它没有吃饭。”你读这个句子的时候怎么知道“它”是谁你会回看 → 小明 → 哦“它”指的是小明你不会去看 → 苹果、桌子这些词不在句子里实际上你就在做“注意力”把“它”这个词的注意力指向了“小明”。Transformer 干的活就是这个让“它”这个位置的向量主动吸收“小明”位置的信息。三、那 Q、K、V 又是什么还是上面这个句子“小明 很 累 了”当模型处理“累”这个词的时候角色比喻在模型里Q查询你向全场问“谁和我有关系”“累”发出一个信号K键每个人举牌子“我是小明”、“我是很”、“我是了”每个词都准备好被匹配计算匹配看 Q 和谁的 K 最匹配 → 得分高“累”的 Q 和“小明”的 K 匹配度高V值匹配上之后把对方的信息拿过来用“小明”的真实词义传递给了“累”结果最后“累”这个词的表示里混入了“小明”的信息。模型就知道这是小明的累。类比你在查资料Q书籍有标签K书籍内容V。匹配标签后你拿走内容。四、整体流程图输入一句话分成多个词“我 喜欢 猫” ↓ ↓ ↓ [词1] [词2] [词3] 每个词是一个向量你可以理解为数字列表核心操作每个词同时做对于“喜欢”这个词 Step 1发出一个“查询信号”Q Step 2看所有词的“标签信号”K计算一个匹配分数 → 和自己的匹配度最高0.7 → 和“我”的匹配度中等0.2 → 和“猫”的匹配度低0.1 Step 3用这些分数去加权“内容信号”V → 新的“喜欢” 0.7×自己的V 0.2ד我”的V 0.1ד猫”的V结果每个词都变成了“融合了上下文的新版本”。五、多头注意力又是什么单头只有一个人帮你判断谁重要可能看走眼多头8 个人同时帮你判断第 1 个人专看“语法关系”主谓宾第 2 个人专看“语义相似”情感色彩第 3 个人专看“位置远近”...最后把 8 个人的结果综合起来更全面。多头注意力 让模型同时从多个角度理解词与词之间的关系避免“一叶障目”六、为什么需要位置编码因为 Transformer 的 Self-Attention 本身是顺序无关的。如果不加位置信息模型会把“我打你”和“你打我”当成同一个意思词的集合相同只是顺序不同。解决方案给每个位置生成一个独特的向量加到词向量上。原始 Transformer正弦/余弦函数生成现代大模型LLaMA、GPTRoPE旋转位置编码或 ALiBi位置编码 给词加上“座位号”否则模型分不清“我打你”和“你打我”七、最后一张类比表概念通俗类比专业术语输入句子一个班级的学生词序列每个词是一个学生每个学生有自己的头像词向量embeddingQ 查询你问“谁跟我关系好”QueryK 键每个人举着“我是XX”的牌子Key匹配分数谁和你兴趣爱好最匹配注意力权重V 值这个人的实际影响力Value多头从兴趣、性格、背景多个角度评估Multi-Head位置编码给每个学生编号1号、2号...Positional EncodingFFN每个学生独立思考、加工信息Feed-Forward Network

更多文章