经过短暂的家人休假,我很兴奋地回归,并补上几周以来密集的开源权重LLM发布动态。最让我印象深刻的是,越来越多新架构专注于长上下文效率。
随着推理模型和智能体工作流保留更多token(且保留时间更长),KV缓存大小、内存流量和注意力成本迅速成为主要瓶颈,LLM开发者正在增加越来越多的架构技巧来降低这些成本。
我主要想探讨的例子包括:Gemma 4中的KV共享和逐层嵌入、Laguna XS.2中的逐层注意力预算分配、ZAYA1-8B中的压缩卷积注意力,以及DeepSeek V4中的mHC加压缩注意力。
这些改动在我的架构图中大多看起来像是微调,但其中一些是相当复杂的设计变更,值得更详细的讨论。

请注意,本文是关于架构设计的,因此我将主要跳过数据集混合、训练计划、后训练细节、RL配方、基准测试表和产品比较。即使范围如此狭窄,也有大量内容需要覆盖。而且,像往常一样,这篇文章比我预期的要长,所以我会把重点放在Transformer块、残差流、KV缓存或注意力计算内部的变化上。
还请留意,我只涵盖那些有趣(新颖)的设计选择,并且我尚未在其他地方介绍过的内容。这个列表包括:
-
Gemma 4中的KV共享和逐层嵌入
-
ZAYA1中的压缩卷积注意力
-
Laguna XS.2中的注意力预算分配
-
DeepSeek V4中的mHC和压缩注意力
在进入新内容之前,这里是我将引用的两篇之前的文章。第一篇提供了关于近期MoE模型、路由专家、活跃参数和模型尺寸比较的更广泛架构背景。第二篇涵盖了下面反复出现的注意力背景,包括MHA、MQA、GQA、MLA、滑动窗口注意力、稀疏注意力和混合注意力设计。
[
现代LLM中注意力变体的视觉指南
](https://magazine.sebastianraschka.com/p/visual-attention-variants)
我原本计划写关于DeepSeek V4的文章。由于它尚未发布,我利用这段时间处理了一些我清单上搁置已久的事情,即收集、整理和完善我在过去几年中介绍过的不同LLM架构。
我还将这些解释中的几篇整理成了独立的简短教程页面,收录在LLM架构画廊中。例如,读者可以在对应的模型卡片和概念标签中找到关于GQA、MLA、滑动窗口注意力、DeepSeek稀疏注意力、MoE路由等概念的简洁说明。
在这次架构演进与优化的巡礼中,我们将回到四月初,当时谷歌发布了其新的开放权重Gemma 4模型系列。该系列大致分为三类:
- Gemma 4 E2B和E4B模型,适用于移动设备和小型本地(嵌入式)设备(即物联网设备),
- Gemma 4 26B混合专家(MoE)模型,针对高效的本地推理进行了优化,
- 以及Gemma 4 31B密集模型,追求最高质量并便于后期训练(因为MoE模型处理起来更复杂)。

E2B和E4B变体中的第一个小型架构调整是采用了共享KV缓存方案,即后面的层会复用前面层的键值状态,以减少长上下文的内存和计算开销。
这种KV共享并非Gemma 4首创。例如,可参考Brandon等人的论文《通过跨层注意力减少Transformer键值缓存大小》(NeurIPS 2024)。但Gemma 4是我看到的第一个应用此概念的流行架构。(请注意,跨层注意力不要与交叉注意力混淆。)
在进一步解释KV共享之前,我们先简要谈谈其动机。正如我近几个月所写和所谈到的,近期LLM架构设计的主要主题之一是减少KV缓存大小。而减少KV缓存大小的动机是为了降低所需内存,从而让我们能够处理更长的上下文,这在推理模型和智能体时代尤为重要。关于KV缓存的更多背景知识,请参阅我的文章《从零理解并编码LLM中的KV缓存》:
[
](https://magazine.sebastianraschka.com/p/coding-the-kv-cache-in-llms)
实际上,我在之前的文章《现代LLM注意力变体视觉指南》中描述的所有流行注意力变体,其设计目的都是为了减少KV缓存大小:
[
](https://magazine.sebastianraschka.com/p/visual-attention-variants)
举一个经典的例子(Gemma 4仍在沿用):分组查询注意力(GQA)已经在不同的查询头之间共享键值(KV)头,以减少KV缓存大小,如下图所示。

如前所述,Gemma 4 采用了分组查询注意力(GQA)。然而,除了 GQA 中查询之间的键值共享外,Gemma 4 还在不同层之间共享键值投影,而不是在每层的注意力模块中单独计算。这种键值共享方案,也称为跨层注意力,如下图所示。

如图 2 的架构概览中简要提及,Gemma 4 E2B 以 4:1 的模式使用常规 GQA 和滑动窗口注意力。(更准确地说,Gemma 4 E2B 使用的是 MQA,即 GQA 中只有一个 KV 头的特殊情况)。
在 GQA(或 MQA)的情况下,KV 共享的工作方式如下。后续层不再计算自己的键和值投影,而是重用来自最近一个同注意力类型的非共享层的 KV 张量。换句话说,滑动窗口层与之前的滑动窗口层共享 KV。全注意力层与之前的全注意力层共享 KV。这些层仍然计算自己的查询投影,因此每一层可以形成自己的注意力模式,但昂贵且占用内存的 KV 缓存会在多个层之间重用。
例如,Gemma 4 E2B 有 35 个 Transformer 层,但只有前 15 层计算自己的 KV 投影;最后 20 层重用来自最近一个同注意力类型的非共享层的 KV 张量。类似地,Gemma 4 E4B 有 42 层,其中 24 层计算自己的 KV,最后 18 层共享它们。
这实际上能节省多少?由于我们跨层共享了大约一半的 KV,因此 KV 缓存大小大约节省了一半。对于最小的 E2B 模型,在长 128K 上下文中,这节省了 2.7 GB(以 bfloat16 精度),如下所示。(对于 E4B 变体,在 128K 上下文中节省了约 6 GB。)

KV 共享的缺点当然是,它是对真实情况的“近似”。或者更准确地说,它降低了模型容量。然而,根据跨层注意力论文,其影响可能很小(对于所测试的小型模型而言)。
Gemma 4 E2B 和 E4B 变体包含第二个面向效率的设计选择,称为逐层嵌入(PLE)。这与上述的 KV 共享方案是分开的。
KV共享减少了KV缓存。而PLE则关注参数效率,它让小型Gemma 4模型能够使用更多token特定信息,同时避免主Transformer堆栈像具有相同总参数量的稠密模型那样昂贵。
例如,Gemma 4 E2B和E4B中的“E”代表“有效”(effective)。具体来说,Gemma 4 E2B被列为23亿有效参数,若计入嵌入层则为51亿参数。(类似地,Gemma 4 E4B被列为45亿有效参数,计入嵌入层则为80亿参数)。
简而言之,在“E”模型中,主Transformer堆栈的计算量更接近较小的数字,而较大的数字则包含了额外的嵌入表层。(关于嵌入层工作原理的说明,请参阅我的“理解嵌入层与线性层的区别“代码笔记)。
从概念上讲,新的PLE路径如下所示:

PLE向量本身是在重复的Transformer模块外部准备的。简化来说,PLE构建有两个输入。首先,token ID经过逐层嵌入查找。其次,正常的token嵌入通过线性投影进入相同的打包PLE空间。这两部分相加、缩放并重塑为每个层对应一个切片的张量。注意,每个模块随后接收其自己的切片。

重要细节在于,PLE并非为每个Transformer模块提供正常token嵌入层的完整独立副本。相反,逐层嵌入查找只计算一次。然后,如前所述,它为每个层提供一个小的token特定嵌入切片(通过“重塑/选择第l层”)。
因此,对于每个输入token,Gemma 4准备一个打包的PLE张量,其中包含每个解码器层的一个小向量。然后,在前向传播过程中,第l层仅接收其自己的切片(图6中Gemma4WithPLEBlock中的ple_l)。
在Transformer模块内部,常规的注意力机制和前馈分支照常运行。首先,模块计算注意力残差更新,然后计算前馈残差更新。在第二次残差相加之后,得到的隐藏状态(在图6伪代码中记为z)用于门控特定于层的PLE向量。门控后的PLE向量被投影回模型的隐藏维度,经过归一化,并作为额外的残差更新添加进来。
因此,一个有用的思维模型是:Transformer模块仍然保留相同的主注意力路径和前馈路径,但Gemma 4在前馈分支之后添加了一个小的、特定于层的词元向量。这通过嵌入参数和小型投影增加了表示能力。虽然增加了计算开销,但避免了将整个Transformer堆栈扩展到更大参数规模所带来的成本。
但为什么要用PLE呢?更简单的替代方案是缩小密集模型,使用更少的层、更窄的隐藏状态或更小的前馈网络。这虽然能减少内存和延迟,但也削弱了模型执行主要计算部分的能力。
PLE设计让昂贵的Transformer模块保持接近较小的“有效”规模,同时将额外容量存储在每层的嵌入表中。这些嵌入表的使用成本远低于增加更多注意力或FFN权重,因为它们主要是查找类型的参数,可以缓存。
此外,我们只能相信Google的说法,认为这是一个有效且值得的设计选择。如果能有一些对比研究,看看这种E2B设计与常规的Gemma 4 2.3B模型和常规的Gemma 4 5.1B模型相比表现如何,那将会很有趣。
另外,原则上,PLE并不局限于小型模型。我们也可以将每层的嵌入切片附加到更大的模型上。然而,较大的模型已经拥有足够的容量,这些额外的嵌入可能帮助不大。此外,对于较大的模型,我们已经使用MoE设计作为一种技巧,在保持计算量较小的同时增加容量。
顺便提一下,如果你对相对简单且可读性强的代码实现感兴趣,我在这里从头实现了Gemma 4 E2B和E4B模型:https://github.com/rasbt/LLMs-from-scratch/tree/main/ch05/17_gemma4。
Laguna是Poolside推出的首个开放权重模型,Poolside是一家专注于训练用于编程应用的LLM的欧洲公司。我以前的几位同事近年来加入了Poolside,他们拥有一支才华横溢的优秀团队。很高兴看到更多公司也以开放权重变体的形式发布他们的模型。
无论如何,下面展示的Laguna XS.2架构乍看之下非常标准。然而,有一个细节我没有展示(或试图塞进去),那就是一个我们可以称之为“逐层注意力预算”的概念。

注意力预算背后的部分理念是,与其给每个Transformer层相同的完整注意力预算,Laguna XS.2按层调整注意力成本。它共有40层,其中30层为滑动窗口注意力层,10层为全局/完整注意力层。与常规做法一样,滑动窗口层仅关注局部窗口(此处为512个token),从而降低KV缓存和注意力计算成本。全局层成本更高,但保留了访问上下文窗口中所有信息的能力。
这种混合滑动窗口+全局/完整注意力模式并非Laguna XS.2独有,许多其他架构(包括Gemma 4)也采用此设计。
但创新之处在于按层使用查询头计数。例如,Hugging Face模型库的config.json包含num_attention_heads_per_layer设置,因此各层可拥有不同数量的查询头,同时保持KV缓存形状兼容。

因此,Laguna XS.2为滑动窗口层分配更多查询头,为全局层分配较少查询头,同时将KV头固定为8个。这就是配置中实际的逐层头预算分配。
Laguna XS.2是近期生产级开源模型中采用这种逐层查询头预算的最突出例子之一。但按层调整模型容量的更广泛概念至少可追溯到苹果2024年的OpenELM。
再次强调,这种设计的意义何在?与KV共享类似,其目的是将注意力容量分配到最需要的地方,而不是给每层相同的预算。具体来说,完整注意力层因需关注整个上下文而成本高昂,因此Laguna为其分配的查询头少于滑动窗口注意力模块。
(此外,另一个较小的实现细节是,Laguna还对每个注意力头应用了输出门控;这类似于Qwen3-Next等模型,由于已在之前文章中介绍,此处不再赘述。)
与Laguna类似,ZAYA1-8B是开源权重市场的新玩家。它由Zyphra开发,发布时的一个有趣细节是,该模型在AMD GPU上训练,而非更常见的NVIDIA GPU(或Google TPU)环境。
不过,主要的架构细节是压缩卷积注意力(CCA),它与分组查询注意力结合使用。与主要使用潜在表示作为紧凑KV缓存格式的MLA风格设计不同,CCA直接在压缩潜在空间中执行注意力操作,但这一点稍后再谈。
(附注:ZAYA1-8B 的 config.json 列出了 80 个交替的层条目,而非 40 个常规 Transformer 块。这些条目在 CCA/GQA 注意力层和 MoE 前馈层之间交替。但就架构图而言,将其可视化为 40 个重复的注意力 + MoE 对更为方便,这在概念上是等价的。)

如上图所示,ZAYA1-8B 使用了压缩卷积注意力(CCA)以及 4:1 的 GQA 布局。关键在于其注意力块基于 CCA 构建,而非标准的滑动窗口注意力块。
什么是压缩卷积注意力?
我认为 CCA 在精神上与 DeepSeek 模型中的多头潜在注意力(MLA)相似,因为两者都在注意力块中引入了压缩的潜在表示。然而,它们对潜在空间的使用方式不同。MLA 主要利用潜在表示来减少 KV 缓存。在 MLA 中,KV 张量以紧凑形式存储,然后投影到注意力头空间以进行实际的注意力计算。

CCA 压缩了 Q、K 和 V,并直接在压缩后的潜在空间中执行注意力操作。这就是为什么 CCA 不仅能减少 KV 缓存大小,还能在预填充和训练过程中减少注意力的 FLOPs。

如上图 13 所示,在 CCA 中,压缩后的潜在表示直接进入注意力机制,然后得到的压缩注意力向量被上投影。
请注意,这被称为压缩卷积注意力,而不仅仅是压缩注意力,因为在对潜在 K 和 Q 表示上还进行了一个额外的卷积混合操作。卷积混合部分未在图 12 中显示,因为那样会过于拥挤,但它的原理相对简单。
如图 13 所示,卷积混合直接作用于压缩后的 Q 和 K 张量。关键在于,压缩使得 Q、K 和 V 变得更窄,从而节省了计算和缓存,但也可能降低注意力的表达能力。卷积是一种廉价的方式,可以在压缩后的 Q 和 K 向量用于计算注意力分数之前,为其提供更多的局部上下文。(卷积混合仅应用于 Q 和 K,而不应用于 V,因为 Q 和 K 决定了注意力分数,而 V 表示通过这些分数进行平均的内容。)

在图 14 所示的序列混合之外,还有一个通道混合组件。不过其原理类似,因此我省略了图示。
CCA 似乎是 Zyphra 引入的一种注意力机制,其出现时间早于 ZAYA1-8B 技术报告。独立的 CCA 论文《压缩卷积注意力:压缩潜在空间中的高效注意力》于 2025 年 10 月首次发布,并明确介绍了 CCA。随后,ZAYA1-8B 将这一机制作为核心组成部分之一。
但问题是,“它比 MLA 更好吗?”根据 CCA 论文自身的实验,答案是肯定的——他们报告称,在相似的压缩设置下,CCA 的表现优于 MLA。
总体而言,这里真正有趣的部分是新的注意力机制。该模型还采用了极端的(即非常稀疏的)MoE 设置,每个 token 仅激活一个路由专家,但这一部分更为常见。CCA 则更为独特,因为它直接在压缩的潜在空间中执行注意力操作,然后对压缩后的 Q 和 K 表示进行卷积混合,以减少这种压缩注意力的局限性。简而言之,ZAYA1-8B 不仅试图在前馈层节省计算资源,也在注意力机制本身下功夫。
DeepSeek V4 是今年迄今为止最重大的发布,无论是在热度还是模型规模方面。有趣的是,如下表所示,以活跃参数占比衡量,DeepSeek V4-Pro 也是表中所有模型中参数最稀疏的 MoE。
需要说明的是:活跃参数占比只是一个视角。它无法反映 KV 缓存大小、注意力模式、上下文长度、路由开销、硬件效率或训练质量。但在比较稀疏模型时,它是一个有用且快速的检查指标。
关于 DeepSeek V4 有很多可说的,但由于它已经占据了各大新闻头条,并且为了紧扣架构调整的主题,我将重点放在与之前架构相比的两个最新相关部分:
- 用于更宽残差路径的 mHC,
- 用于长上下文注意力压缩和稀疏性的 CSA/HCA。
从下面的 DeepSeek V4 架构图来看,似乎有很多内容。有效的解读方式是,将残差路径的变化(mHC)与注意力路径的变化(CSA/HCA)以及压缩注意力缓存区分开来。

我们先从 DeepSeek V4 的 mHC 组件说起。这要追溯到 DeepSeek 团队去年(2025 年 12 月 31 日)分享的一篇研究论文(mHC:流形约束超连接)。不过,在这篇论文中,该技术仅在一个实验性的 27B 规模模型上进行了测试。现在,我们看到它被用在了他们的旗舰版本中,这是一个好迹象,表明这个想法在实际生产中确实效果不错。
mHC 的核心思路是对 Transformer 模块内部的残差连接设计进行现代化改造,这让人耳目一新,因为架构上的调整通常集中在注意力机制、归一化层位置和 MoE 部分。
现在,mHC 基于之前关于超连接的研究(参见 Zhu 等人 2024 年的论文《超连接》),我们需要先简要讨论一下。超连接本质上是对 Transformer 模块内部的单一残差流进行了修改,将其替换为多个并行的残差流以及它们之间的学习映射。
(对于不熟悉残差连接的读者,我多年前制作了一个关于残差神经网络的视频,其中解释了其通用机制。)
超连接背后的想法是拓宽残差流。我们可以将其理解为保留多个并行的残差流,并增加一个额外的残差映射线性变换,用于在层与层之间混合这些流。由于注意力层或 MoE 层本身仍然在正常的隐藏维度上运行,超连接还添加了一个预映射,将并行的残差流合并成一个正常的隐藏向量供该层使用,以及一个后映射,将该层的输出重新分布到并行的残差流中。下图直观地总结了这一点。

下图重点展示了 Transformer 模块中的注意力层部分,但同样的概念也适用于 MoE 层周围的第二个残差分支。
超连接的目的是在不加宽实际注意力层或 MoE 层的情况下,使残差路径更具表达能力。这在 FLOPs 上的开销仅略有增加,因为额外的映射是在较小的残差流轴(例如,在 DeepSeek V4 中 n = 4)上操作的,而不是在巨大的隐藏维度上。
在最初的超连接论文中,7B OLMo MoE 实验的每 token FLOPs 从 13.36G 变为 13.38G,基本没有变化。就报告的性能提升而言,有适度(但一致)的改进,如下图所示。
(然而,仅看 FLOPs 有点过于简单。加宽的残差状态仍然需要存储、在内存中移动、混合等。因此,实际开销可能更多地来自内存流量和实现复杂性,而非算术运算,这一点并未明确衡量。不过,鉴于 DeepSeek V4 以效率为核心,这似乎是一个值得的补充。)
此外,如上图所示,指标在使用大约一半训练token时就达到了基线的性能。
从常规超连接(HC)到流形约束超连接(mHC)的主要变化在于映射不再是无约束的。在常规HC中,残差映射是一个学习到的矩阵,用于混合并行的残差流,但堆叠多个这样的矩阵可能会不可预测地放大或缩小信号。
在mHC中,这个残差映射被投影到双随机矩阵的流形上,这意味着所有条目都是非负的,且每行和每列之和为1。这使得残差混合更像是一种跨流的信息稳定再分配。前映射和后映射也被约束为非负且有界,从而避免了在从扩宽的残差状态读取和写入时出现抵消。简而言之,mHC保留了HC更丰富的残差混合能力,但增加了约束以确保更安全的扩展,这对于更大(更深)的模型更为重要。
除此之外,使用并行残差流的核心思想保持不变,如下图所示。

在mHC论文中,使用270亿参数模型进行实验,DeepSeek团队优化的实现(包括融合、重计算和流水线调度)在全部Transformer模块中使用4个残差流(n=4)时,相比单流基线仅增加了6.7%的训练时间开销。
总结本节,HC/mHC通过用多个相互作用的残差流替换单个残差流,改变了信息在这些层周围的传递方式,并在mHC中增加了额外的稳定性约束,同时仅增加了极小的计算开销。此外,它与CSA/HCA注意力变化配合良好,后者修改了Transformer模块的其他部分,我将在下面讨论。
DeepSeek V4的另一个主要架构变化在注意力方面。同样,其动机是在极长的上下文长度下,注意力不仅因为注意力分数计算而变得昂贵,还因为KV缓存随序列长度增长。DeepSeek V4通过混合两种压缩注意力机制——压缩稀疏注意力(CSA)和重度压缩注意力(HCA)来解决这个问题。
如需复习,我建议查看我之前写的《现代大语言模型注意力变体视觉指南》一文,其中涵盖了多头潜在注意力(MLA)和DeepSeek稀疏注意力(DSA)等。
[
](https://magazine.sebastianraschka.com/p/visual-attention-variants)
首先需要指出的是,DeepSeek V4中的CSA/HCA是一种不同于DeepSeek V2/V3中MLA风格压缩的压缩方式。MLA主要压缩每个token的KV表示,而CSA和HCA则沿着序列维度进行压缩。因此,它们不是为每个之前的token保留一个完整(或压缩)的KV条目,而是将一组token总结为更少的压缩KV条目。这样一来,缓存变得更短。DeepSeek V4也使用了紧凑的压缩条目和共享KV注意力,但与MLA的主要区别在于序列长度的压缩。如下图所示。

CSA/HCA的质量权衡也与MLA不同。如上图所示,MLA压缩了每个token存储的表示,但仍然为每个token保留了一个潜在KV条目。CSA,尤其是HCA,更进一步减少了序列条目本身的数量,因此模型牺牲了一些token级别的信息,以换取更低的长期上下文成本。
再次强调,这一切都是为了降低长期上下文成本,但如果压缩过于强烈,这种权衡可能会损害建模质量,这就是为什么DeepSeek V4不依赖单一的压缩方案,而是在CSA和HCA之间交替使用。CSA使用较温和的压缩率和DeepSeek稀疏注意力(DSA)风格的选择器,HCA使用更重的压缩以实现更经济的全局覆盖,并且两者都保留了一个用于最近未压缩token的局部滑动窗口分支。CSA中的这种稀疏选择建立在DeepSeek稀疏注意力(DSA)之上,我在之前的DeepSeek V3.2文章中更详细地讨论过这一点。
HCA是两者中更激进的变体。它将每128个token压缩成一个压缩KV条目,然后对这些高度压缩的条目使用密集注意力。换句话说,CSA保留了更多细节但使用稀疏选择,而HCA保留的条目少得多,并且可以对它们进行密集注意力,如下图所示。这使得这两种机制在一定程度上互补,这就是为什么DeepSeek V4交错使用CSA和HCA层,而不是只使用其中一种。

DeepSeek V4论文报告称,在1M token上下文长度下,相较于使用MLA和DeepSeek稀疏注意力(DSA)的DeepSeek V3.2,DeepSeek V4-Pro仅使用了27%的单token推理FLOPs和10%的KV缓存大小。DeepSeek V4-Flash甚至更小,相对于DeepSeek V3.2,其FLOPs仅为10%,KV缓存大小仅为7%。

顺便提一句,我不会笼统地将CSA/HCA描述为比MLA“更好”。CSA/HCA是一种更激进的长上下文设计,而且显然也更复杂。遗憾的是,论文中没有进行消融研究。但总体而言,论文报告了强大的整体建模结果,包括DeepSeek V4-Flash-Base在大多数基础模型基准测试上优于DeepSeek V3.2-Base,以及强大的1M token检索结果,但这些结果来自完整的DeepSeek V4方案,其中还包括更好的数据、基于Muon的优化、mHC、精度/存储优化以及训练/推理系统的改进。
就我个人而言,目前我会将CSA/HCA视为一种以效率为中心的长上下文设计,它似乎能在其大型旗舰模型中很好地保持建模质量,但未必普遍优于MLA。
总体而言,今年一个有趣的趋势是,大多数新的开放权重模型都试图降低长上下文推理的成本,而不是仅仅通过减少总参数量来缩小模型。例如:
- Gemma 4通过跨层KV共享减少KV缓存内存,并通过逐层嵌入增加容量。
- Laguna XS.2调整了每层获得的注意力容量。
- ZAYA1-8B将注意力移入压缩的潜在空间。
- DeepSeek V4增加了受约束的残差流混合和压缩的长上下文注意力。
所有这些调整都增加了更多的复杂性,而这似乎正是当前LLM架构的发展方向。
我的主要结论是,Transformer模块仍在变化,但方式相当有针对性。基本方案仍然基于原始的GPT仅解码器Transformer架构,但许多部分得到了升级或替换,并且它们变得更加专门化,以支持更长的上下文和更高效的推理,而定性建模性能似乎主要由数据质量(和数量)以及训练方案驱动。
过去很多读者问我的问题都集中在Transformer何时(或是否)会被其他东西取代。当然,还有其他设计,比如扩散模型,但Transformer在最新架构发布中仍然保持着主流地位。
然而,随着每年发布季度的推进,我们看到了越来越多的调整。虽然用大约50-100行PyTorch代码实现一个基本的Transformer模块是可能的,但这些调整(尤其是围绕注意力变体的调整)可能使代码复杂度增加了10倍。这本身并不是坏事,因为这些调整降低了(而非增加了)运行时成本。然而,要清晰理解各个组件及其相互作用正变得越来越困难。

例如,我相当确信,初次接触 LLM 架构的人看到 DeepSeek V4 的源代码时会完全不知所措。然而,从原始的解码器式 LLM(GPT/GPT-2)开始,然后逐步添加并学习这些新组件,我们可以让学习过程变得可控。我想,这个故事的道理就是:一次学习一个架构,持续进步。
顺便提一下,我非常兴奋地分享,我已经完成了《从零构建推理模型》的写作,所有章节现已进入早期访问阶段。过去一个月里,我和出版社在最终排版上付出了很多努力,这本书将于本周送印。(好消息:这次印刷版将是彩色的!)
这大概是我迄今为止最具野心的一本书。我花了大约 1.5 年时间写作,并投入了大量实验。在时间、精力和打磨方面,这也是我付出最多努力的一本书,希望你们会喜欢。
主要主题包括:
- 评估推理模型
- 推理时扩展
- 自我优化
- 强化学习
- 知识蒸馏
关于 LLM 中的“推理”有很多讨论,我认为理解它在 LLM 语境中真正含义的最佳方式,就是从零实现一个!
