LabHub
学习 学习路径 课程

Transformer — 手算一遍注意力

当下的模型地貌与那些编码器

在 LabHub 中继续学习

一句话总结

截至2026年,目前使用的模型分为使用什么口罩把什么看作代币如何省钱这三个轴。

概念图: 使用什么口罩 · 把什么看作代币 · 如何省钱 · 解码器

为什么要分开看——第1节,根据口罩分为三类

系列 口罩 擅长的事情
解码器 因果(看不到后面) 输入、对话、代码 GPT、LLaMA、Claude、Qwen
编码器 无(双向) 分类、搜索用嵌入 BERT、RoBERTa、E5
编码器-解码器 两者都 翻译、摘要、语音识别 T5、Whisper

在实际工作中一个重要的分叉路口。**搜索(RAG)的嵌入使用编码器模型。**将生成用的解码器模型的最后一个隐形状态作为嵌入通常性能会下降——因为因果掩码,只有后面的令牌才能看到前面。

第2节——把什么看作代币

变形金刚不是只适用于文本。 如果可以做成“向量的列举”,可以放任何东西。所以需要编码器。

视觉编码器(ViT系列)

补丁程序将图像剪切成代币。

CNN和CNN的区别在于没有局部性假设。CNN从一开始就具有近邻像素先看到的结构。ViT从第一层开始就能看到整个图像。所以如果数据少,CNN更好,如果数据多,ViT会赢。

CLIP在这里再走一步。将图像编码器和文本编码器分开,同一对靠近,不同对远离学习。这样图像和句子就会放在同一个空间里。这就是为什么可以使用名为“猫照片”的句子向量搜索图像,最近大多数多模态LLM都把CLIP系列视觉编码器放在前面。

音频编码器(Whisper系列)

声音是每秒16,000个样本。不能直接用作代币。

  1. 更改为LOG-梅尔光谱——成为时间×频率的二维图像。梅尔尺度是反映人耳朵对低频敏感的刻度。
  2. 通过合成乘法缩短时间轴— Whisper通过 stride 2 组conv缩短了一半。30秒相当于1,500个代币。
  3. 在上面放上变压器编码器。

前处理占一半。 在这一阶段,如何压缩信息决定了性能。与文本的分词器起着完全相同的作用。

Whisper之所以是编码器-解码器,也是因为在这里。编码器可以双向理解整个声音,解码器一个字一个字地吐出来。

所以多模式LLM是

이미지 → 비전 인코더 → 프로젝션 → [토큰들] ┐
                                          ├→ 디코더 LLM → 글자
텍스트 → 토크나이저 → [토큰들] ────────────┘

**一个投影层连接着两个世界。**是将视觉编码器的输出维度调整为LLM的嵌入维度的一个小MLP。学习时,通常先调整这部分(对齐阶段),然后一点一点地解开整个过程。

第3节——如何省钱

**KV缓存。**每次生成时,都不需要重新计算前面所有代币的K·V。只保存并增加新的代币。**所以推理记忆的大部分不是模型权重,而是KV缓存。**随着上下文的长度增加,这种情况会变得主导性。

GQA(集团质量关注)。 Q头有32个,K·V头只有8个,每4个共享一个。KV缓存占4分之一。因为几乎没有质量损失,所以最近大部分开放型模型都使用。

MoE(专家混合)。每个层放了很多FFN,每个代币只打开2个左右。虽然总参数很多,但一个代币使用的计算量很小。但是必须全部上传到内存中,所以服务成本与参数数无关并不意味着。

量子化。将权重减少到8位或4位。精度损失比想象中要小,内存增加很大。但是KV缓存需要单独量子化才能发挥效果。

FlashAttention. 不是很精简。不会把整个大分数矩阵全部加载到内存中,而是按瓷砖单元计算,减少GPU对慢内存的访问。在数学上,会得到完全相同的值,但速度快几倍。

如何增加语境的

RoPE是关键。与其增加绝对位置,不如将Q·K旋转到角度,两位的内在性仅依赖于距离。那样的话,即使在学习时从未见过的长度中也能在一定程度上通。

但是**语境长和写得好是不同的。**错过长语境中间信息的现象(lost in the middle)众所周知。只输入搜索所需的碎片,比把100k全部输入,往往更准确。

选择的时候实际看到的

  1. 在什么上戴口罩—是生成还是理解
  2. KV缓存要花多少钱 — GQA认证,上下文有多长
  3. 编码器接收什么——如果输入图像或声音,前端编码器的前处理将决定性能。
  4. 量子化时会崩溃吗——如果部署环境已经确定的话,这是第一个问题。

参数数量不在四项中。实际上区分服务成本和质量的是上述四项。

在现场

在选择模型的场合,实际来回问的问题不是性能排行榜,而是这些。这是用于搜索的嵌入,即使选择解码器模型也可以吗?文档是韩语,这个分词器会放大多少倍?支持上下文128k,在那个长度上实际延迟是多少。

而且,了解这些轴线后,阅读供应商文档的速度会有所不同。如果写着“滑动窗口注意力”,就意味着会忘记长文档的前部分;如果写着“GQA”,就意味着推理记忆较小;如果写着“编码器-解码器”,就意味着擅长翻译或总结。每次新模型出来时,不要从头开始学习,而是放在这个坐标上就可以了。

如果选了要上传到公司的模型,最后再看看一个——许可证和权重公开范围。即使性能再好,如果商业使用受限,也会从候选人中淘汰。