跳到主要内容

2 篇博文 含有标签「transformer」

查看所有标签

走出原始丛林

在上一节(2.2 Transformer架构拆解)中,我们明白了 Self-Attention 是如何在一眼之内、无视距离地让单词之间互通款曲的。 这篇发表于 2017 年的架构,确立了“并行+注意力”的盛世。

但如果你真的拿这套原始配置去跑今天的千亿参数模型,你会:

  • 当用户丢给你一本 10 万字的小说,它会因为“绝对坐标刻度”不够长而当场变乱码。
  • 为了算一个字,模型要把所有千亿参数在硬盘和内存间轮转一次,每次聊天都会破产。
  • 注意力矩阵的算力需求是字数的平方指数级爆炸,长度翻倍,它直接死机。

为了解决这些要命的工程极限,顶尖学者们为 Transformer 进行了一次次疯狂的器官替换与魔改。


1. 记住远近:RoPE (旋转位置编码)

在上一章我们提到过,Transformer 默认是个“词袋(Bag of Words)”,它不知道语序。 原始论文的解决方法是硬塞:用固定的 sin/cos\sin/\cos 几何波浪,强行赋予第 1 个字和第 1000 个字一个“绝对坐标”。

1.1 绝对坐标的局限:不会拐弯的木头

如果我的模型只被训练过支持最大 2048 个字的长度。你突然丢给我一本 1 万字的小说,那些落在 2048 号位置开外的坐标它从来没见过,结果显然是灾难性的。 更惨的是,人类理解语言靠的是相对位置。 不管“中国”和“北京”这两个词是在文章的第 1 段出现,还是在第 500 段出现,只要它俩挨在一起(相对距离是 1),注意力机制就应该能秒懂它们的羁绊。

1.2 齿轮的魔法:旋转位置编码 (Rotary Position Embedding, RoPE)

这无疑是近几年模型架构最大的突破之一,由中国团队提出,现已全面制霸统治 LLM 界(LLaMA/Qwen/DeepSeek/Mistral 的标配)。

原理: 它不再给每个位置死板地加黑板擦,而是利用复数空间的旋转。 你可以想象成:给每个输入的词向量装上了一个表盘齿轮

  • 如果是在第一个位置,齿轮转了 10 度。
  • 到第二天,齿轮转了 20 度。
  • 神奇的数学巧合:当 Q(借书卡)带着 10 度的旋转去碰 K(标签)带着 30 度的旋转时,它们的点积结果,在数学公式展开后,奇迹般地只和它们的夹角差(20度,也就是相对距离 2)有关!

image-20260301201120113

史诗级 Buff:因为模型学会了看“相对距离”,工程师只需要在微调时稍微“降低齿轮旋转的速度(RoPE Scaling)”,就能把原本只能看 8000 字的模型,无痛拓宽视野,拉伸到可以阅读 100 万字的神器(比如最近风靡的长文本模型技术)。


2. 算力刺客与 KV Cache

如果你理解了 Decoder-only 模型(GPT系列),你一定知道生成文字是“蹦字机”: 根据“我”,算出“爱”;根据“我爱”,算出“你”。

问题来了: 算“你”的时候,“我”和“爱”是不是又要重新走一遍那几百层的网络,去生成 Q、K、V 矩阵然后再点积? 当你写到第 1 万个字的时候,前面的 9999 个字又要为了这 1 个字重新跑一遍千亿级网络? 如果每次都这么折腾,全球的电站加起来都不够烧的。

时光机缓存:KV Cache

为了不重复劳动,工程师祭出了 KV Cache。 既然之前计算第 3 个字的时候它和前面词的相互评价(Key 和 Value 矩阵)已经算过了,那我就在 GPU 显存里划一块区域,强行把它们存下来! 所以预测下一个字的时候,前面 1 万个字的 KKVV 是现成的内存数据,模型只需要算出当前这第 10001 个字的 QQ,去把内存扫一遍拿结果即可。

代价:推理极速狂飙,但显存开销极大(随着你的对话变长,显存会被塞满)。这就是为什么商业大模型长对话额度非常昂贵的核心秘密。


3. 终极省流密码:MoE (混合专家架构)

当大语言模型的参数从百亿堆到了数千亿,就算是有了 KV Cache,每蹦一个字,显卡也得要把几千亿的模型权重参数给载入一次算力单元(这叫显存带宽瓶颈)。

于是 MoE(Mixture of Experts) 被推上了神坛(这也是 GPT-4 和 DeepSeek 一战封神的核心机密)。

3.1 从大锅饭到门卫分包

如果模型是一座拥有几千亿个参数神经元的综合大楼(稠密模型 Dense)。每一句话进来,全楼几万个人都要开个会走一遍过河卒子。 MoE 的逻辑是疯狂拆分

  • 把这层楼原本一体的 MLP(前馈网络),硬生生劈成 168 个小房间,每个房间叫一个专家(Expert)
  • 在楼下安一个轻量的路由器(Router 门控系统)

3.2 稀疏激活:多快好省

当输入词语“代码”跑到这一层时,Router 扫描一眼它的权重,大喊: “这个词是代码结构,第 3 号(逻辑专家)和 第 8 号(符号专家)出列干活!其余的 166 个专家就地睡觉(挂在硬盘里,不进显存)!”

image-20260301201221627

这就叫 稀疏激活 (Sparse Activation)。 虽然 DeepSeek-V3 的总参数量高达 6710 亿!但你每一次发一句话,真正被唤醒参与计算的脑细胞(激活参数)只有仅仅 370 亿。 正是因为 MoE 把算力费用打了个两折,大模型的价格战才能杀得刀刀见红,平民也能用上绝顶聪明的 AI。


4. 图腾挑战者:Mamba 与 SSM

无论再怎么利用 KV 缓存和专家分包,Transformer 依然有一个原罪: 注意力的平方定律 (O(N2)O(N^2))。 你输入 1 千个词,计算量是 1 百万。你输入 1 万个字,计算量变 1 亿!如果你想让 AI 当你的全年 24 小时代码私人监听器(上千万字),Transformer 的架构会在物理上被热穿透。

这时候,一个名为 SSM (状态空间模型),带着最强刺客 Mamba 浮出了水面。

4.1 Mamba 的硬核降维

Mamba 的宗族回溯到了当年被 Transformer 按在地上摩擦的 RNN (循环神经网络)。 RNN 的最大优点是:它看文章就像看流水,不管你看一万字还是十万字,它脑子里始终只保留着“今天的一个固定大小的记忆黑匣子”。计算量呈完美的线性增长。

但当年 RNN 因为“不能并行”、“会得失智症(遗忘前文)”被淘汰了。 而 Mamba 的作者通过变态的高阶微分方程组(硬件感知算法),成功让它在训练时实现了大规模并行运算,并且它能根据当前的话题,聪明地决定要记住哪些核心,忘掉哪些废话

image-20260301201343847

4.2 终章未决

目前的 Mamba,凭借无与伦比的长文本理解低迷算力消耗,在部分指标上已经追平了等量级的 Transformer。虽然目前在百亿模型以上的赛道,Transformer(结合 MoE)依然靠生态红利压制着一切反叛,但 Mamba 代表的无极限窗口潜力,已经是学界公认最有可能的下一代替代者。


5. 第二阶段知识串联总结

恭喜你!到这里,你已经征服了现代 AI 技术浪潮里最硬核、最底层的第二阶段:

  1. 语言数字化的基座:你懂了 Tokenization 是怎么把一段中文切分成带有字典序号的碎片(带上其背后的词汇表税率)。
  2. 通天塔图纸:你懂了 Transformer 的骨架是通过 QKV Attention 并行对齐了距离的鸿沟。
  3. 现代长腿魔改:你领略了利用相对距离理解长文本的 RoPE、用来对抗高昂算力的 KV CacheMoE 专家门控

我们学习这个,并不是为了去当下一个手搓大模型的黄仁勋。而是当你未来面对一堆开源模型调参界面时,你将清楚地知道每个旋钮究竟捏在哪一层骨髓。

下一章预告: 当这个千亿参数、搭载着各种黑科技引擎的大模型出场时,它已经学完了人类几千年的藏经阁。 但你突然发现:你不会用它。 它经常胡说八道、或者给出敷衍的废话。 怎样才能成为这台千亿猛兽的驯兽师?从给它设定指令、逼它自我反思开始。

欢迎从“理论造轮子”正式跨入“上层应用”大门:第3阶段:提示工程(Prompt Engineering)


下一章: 提示工程

ai学习transformerropemoemamba阅读需 8 分钟

为什么这章最重要?

如果你听说过 ChatGPT、DeepSeek、Claude,或者任何现代的大语言模型 (LLM),它们的名字里很少带 "Transformer",但它们的身体里全都是 Transformer。 不夸张地说,没有 2017 年的那篇论文《Attention Is All You Need》,就没有今天的 AI 繁荣。


1. 为什么我们需要 Transformer?(A Brief History)

要理解 Transformer 为什么伟大,我们得先看看在它出现之前,AI 是怎么“读”文章的。

1.1 图像 vs 语言:空间 vs 时间

在上一章 CNN 里,我们处理的是图像。 图像是一种空间 (Spatial) 数据。照片左上角的猫耳朵,和右下角的猫尾巴,是同时存在的。AI 可以一眼看完整张图。

语言完全不同。语言是一种时间序列 (Time Sequence) 数据。 当你读这句话时,你是从左往右一个字一个字读的。你必须先读了“我”,再读“爱”,最后读“你”。颠倒顺序,意思全变。

1.2 曾经的:RNN (循环神经网络)

为了模仿人类这种“按顺序读”的特性,工程师发明了 RNN (Recurrent Neural Network)

它的逻辑非常直观:像个抄写员一样,读一个字,在脑子里记一下,带着记忆去读下一个字。

RNN 的核心直觉

ht=Activation(W×xt+W×ht1)h*t = \text{Activation}(W \times x_t + W \times h*{t-1})

这里的 ht1h_{t-1} 就是上一步的记忆。 意思是:今天的我 = 今天的输入 + 昨天的记忆

1.3 抄写员的崩溃 (The Bottleneck)

RNN 统治了 NLP 领域几十年,但它有两个致命的生理缺陷,导致它永远无法做大做强:

  1. 无法并行 (No Parallelism): 它必须等读完第 1 个字,生成了记忆,才能读第 2 个字。这意味着它没法用几千块显卡同时加速。 不管你有多少算力,你都得排队。这在数据量爆炸的今天,简直是龟速。

  2. 健忘 (Short-term Memory): 虽然理论上它能保留记忆,但实际上,读了一两百字后,开头的记忆就模糊了(梯度消失问题)。 它能记住“汤姆...”,但读到文章结尾时,可能已经忘了汤姆是猫还是老鼠。

这就导致了死局:想变强就要读更多书,但读多了既慢又记不住。

直到 2017 年,Google 团队通过一篇《Attention Is All You Need》打破了僵局。 他们提出了一个疯狂的想法:为什么要按顺序读?为什么不能像看图一样,一眼把整篇文章看完?

工程师们想:能不能别一个字一个字读?能不能一口气把整篇文章读进去,然后一眼看出哪个词和哪个词有关系?

于是,Transformer 诞生了。它的核心思想只有一句话:抛弃循环,拥抱并行,用注意力机制 (Attention) 解决一切。


2. 核心机制:Self-Attention (自注意力)

这是 Transformer 最“魔法”的地方。

Self-Attention 的意思是:当模型在读“苹果”这个词的时候,它会同时看向句子里的其他词(比如“手机”、“不仅”、“好吃”),然后决定这些词跟“苹果”有多大关系。

  • 如果上下文是“这个苹果真好吃”,它会关注“好吃”(哦,这是水果)。
  • 如果上下文是“这个苹果最新款”,它会关注“新款”(哦,这是电子产品)。

🔍 图书馆检索的类比 (Query, Key, Value)

为了实现这个机制,Transformer 把每个词都拆成了三个向量:Query (Q), Key (K), Value (V)

这听起来很玄学,但其实特别像在图书馆找书(或者 SQL 查询):

类比:查阅资料

假设你手里有一张借书卡 (Query / Q),你要去图书馆找书。 图书馆的架子上摆满了书,每本书脊上都贴着分类标签 (Key / K),书里面夹着真正的内容 (Value / V)

  1. Q 和 K 匹配:你拿着你的借书卡 (Q),去跟架子上的标签 (K) 一一比对(点积运算)。
  2. 计算相关性
    • 有的标签完全对不上(相关性 ≈ 0)。
    • 有的标签有点像(相关性 ≈ 0.5)。
    • 有的标签完全吻合(相关性 ≈ 0.99)。
    • 这个过程叫 Softmax(归一化),变成了“注意力权重”。
  3. 取出 V:根据刚才算出来的权重,把对应的书本内容 (V) 取出来,加权融合。
公式的直觉

这个公式决定了每个词“看”哪里:

Attention(Q,K,V)=softmax(QKTdk)VAttention(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
公式解读
  • QKTQK^T:拿借书卡去对标签(算相似度)。
  • softmax:把相似度变成百分比(权重)。
  • ×V\times V:按百分比把内容拿出来提取特征。
为什么要除以 dk\sqrt{d_k} (Scaling)?

你可能会注意到公式里有个奇怪的除法:除以 dk\sqrt{d_k}。 这是为了防止梯度消失。 如果向量维度 dkd_k 很大,点积的结果会变得巨大。这会导致 softmax 函数进入“饱和区”(梯度接近 0),模型就学不动了。 做这个除法是为了把数值拉回合理的范围(比如 -1 到 1 之间)。这也是 Transformer 能叠几十层还能训练得动的关键细节之一。

通过这一步,每个词都“吸取”了整个句子的上下文信息。

2.1 Masked 自注意力:不能偷看的规矩

如果你是要做一个"完形填空"(比如 BERT),让中间的词去看旁边所有的词是没问题的。 但如果你是要做一个生成模型(比如 GPT),让它"预测下一个字",那就出大问题了!

如果在训练的时候,它预测第三个字时,注意力机制让它直接"看到"了第四、第五个字,这就变成了开卷考试偷看答案。 为了防止它偷看未来,工程师给它加上了 Mask(掩码): 把当前词后面的所有关联强行变成 0(或者负无穷)。你只能看你左边(已经生成)的词,绝不许看右边。这就是今天所有大语言模型必须遵守的铁律。


3. Multi-Head Attention (多头注意力)

如果只用一组 Q、K、V,可能只能捕捉到一种关系(比如“语法关系”)。但语言是复杂的,我们需要从多个角度看问题。

Multi-Head Attention 就是:找 8 个人同时去图书馆找书,每人关注点不一样。

注意:这些关注点(语法、语义等)不是工程师人工指定的,而是模型在训练过程中自己总结出来的

  • Head 1 关注语法(动词后面接名词)。
  • Head 2 关注指代("它" 指的是 "猫")。
  • Head 3 关注语义("苹果" 和 "好吃")。

最后把这 8 个人的结果拼起来(Concat),就得到了一份超级全面的理解。

image-20260203013454592


4. Positional Encoding (位置编码)

Transformer 有个大 Bug:如果你把句子里的词打乱顺序(“我爱你”变成“你爱我”),对它来说是一模一样的!

因为它是并行处理的,没有先后顺序的概念。

为了解决这个问题,我们在输入的时候,给每个词贴上一个位置标签 (Positional Encoding)

  • 给第一个词加个记号:“我是 No.1”。
  • 给第二个词加个记号:“我是 No.2”。

这样模型就知道谁在前谁在后了。

⚠ 工程直觉:如果不加这个编码,Transformer 眼里的句子就是一袋打散的单词(Bag of Words)。“我爱你”和“你爱我”对它来说没有任何区别,语序信息会全部丢失。

原版论文使用的是死记硬背的绝对几何函数 sin/cos 预先算好刻在每个格子里。但这其实是个粗糙的权宜之计,现代大模型早已将其废弃,换上了能理解“相对远近”的旋转编码(我们将在下一节拆解)。


5. 整体架构:Encoder、Decoder 与当下的路线之争

把上面这些组件组装起来,就变成了完整的 Transformer。

image-20260203013534905

它分为两半:

  1. Encoder (编码器) - 左半边

    • 任务:只负责“读”和“理解”。狠狠地榨取输入文本的信息。
    • 代表作BERT (Bidirectional Encoder Representations from Transformers)。它最擅长做完形填空、情感分析、分类任务。
  2. Decoder (解码器) - 右半边

    • 任务:只负责“写”和“生成”。根据已经写的内容,猜下一个字是什么。
    • 代表作GPT (Generative Pre-trained Transformer)。它最擅长写文章、聊天。
时代的路线之争

原版论文《Attention Is All You Need》是用来做机器翻译的(左侧 Encoder 读入英文上下文 -> 右侧 Decoder 一字一句写出中文)。 但后来的 AI 发展分道扬镳了:

  • BERT 拿走了左边,专门做理解。它的 Mask 允许“左右互相看”,完形填空无敌。
  • GPT 拿走了右边,专门做生成。它的 Mask 严格限制只能“看字面的左边”,不准偷看未来。
  • 今天的 DeepSeek / ChatGPT / Claude,主流范式全部都是单一的 Decoder-only 架构(依靠超大算力一力降十会,直接靠生成来平推理解)。

6. 第一部分支柱总结

Transformer 的本质
  1. 核心飞跃:抛弃了 RNN 的串行瓶颈,真正实现了大规模并行计算。让大模型第一次感受到了“投票取优”的摩尔定律红利。
  2. QKV 注意力机制:通过查询(借书卡)、键(图书标签)和值(书本内容)的点积,实现了单词间不限距离的光速交叉引用
  3. 架构的胜利:从最初的 Encoder-Decoder 翻译机,进化到了今天一统天下的生成式 Decoder-only。

Transformer 虽然解决了“上下文串联”和“兵团并行训练”的问题,但这只是 2017 年的原始形态。 如果你拿着原始的 Transformer 甚至 GPT-2 上战壕,面对 2025 年高达几百万字的“超长上下文记忆”需求,以及推理电费,它依然会因为算力呈平方级爆炸而当场死机。

下一章预告: 现代大长腿模型能够跑得这么稳、算力压榨得这么狠,全靠给 Transformer 骨架做的一系列前沿极客魔改: 如何能理解长距离的绝对位置?如何让模型脑子再大 100 倍且电费不暴增?是否会有能掀翻 Transformer 的新物种?

欢迎进入高阶组装车间:2.3 现代大模型前沿组件(RoPE、MoE 架构与 Mamba 的对决)


下一章: 2.3 现代大模型前沿组件

ai学习transformerattention阅读需 10 分钟