
2024年Mamba用状态空间模型向Transformer发起挑战但代价是一套复杂的CUDA定制核函数普通开发者根本改不动。Caracal: Causal Architecture via Spectral Mixing现在另一条更轻的路线出现了华为诺亚方舟实验室团队直接把快速傅里叶变换FFT塞进解码器替代了全局自注意力。结果惊人——在8192 token长度下训练速度比标准Transformer快近3倍不需要任何位置编码还能做自回归生成。更关键的是它只用PyTorch标准库就能跑不需要写一行CUDA代码。2026论文复现及模型创新组合、上千顶会论文精粹、审稿人方法论、即插即用源码模块扫码即可无偿领取Transformer的两大死穴O(L²)复杂度和位置编码的枷锁Transformer统治了序列建模七年但骨子里有两个结构性硬伤。第一个是计算复杂度的二次方诅咒。自注意力机制需要计算序列中每对token之间的关系运算量随输入长度L呈平方增长也就是O(L²)。当上下文从512涨到4096再到8192训练时间和显存消耗不是线性涨而是指数级爆炸。长文档理解、长视频分析、长对话记忆这些场景在理论上都可行但在工程上被二次方成本卡住了脖子。第二个是置换等变性带来的位置盲区。注意力本身对token顺序不敏感你把句子倒过来注意力矩阵算出来的值一模一样。为了让它知道第一个词和第十个词的区别研究者不得不外挂各种位置编码——从最早的绝对位置编码到后来的RoPE、ALiBi、YaRN技术越来越精巧但也越来越像在给一个先天缺觉的模型打兴奋剂。Figure 1左标准Transformer架构全局Masked Multi-Head Attention与显式位置编码模块这些修补方案有效吗确实有效。稀疏注意力Longformer、BigBird通过固定连接模式降低计算量Reformer用局部敏感哈希做自适应稀疏RoPE和YaRN用相对距离编码显著改善了长度外推。但论文里指出一个扎心的事实这些日益复杂的技术本质上都是在为一个缺乏内置序列概念的机制做补偿。就像给一辆没有方向盘的车装 increasingly sophisticated 的自动驾驶补丁补丁再好用也掩盖不了底层设计的缺失。更激进的替代路线是状态空间模型SSM。Mamba和Mamba-2用选择性状态更新实现了线性复杂度O(L)性能追平甚至超越Transformer。但代价也很明显Mamba的峰值效率严重依赖硬件特定的定制CUDA核函数选择性扫描和SSD算子需要深入底层优化才能跑快。这对研究者来说意味着高概念门槛对工程师来说意味着部署和修改都很困难对普通开发者来说意味着黑盒感极强——想调个内部逻辑可能整个架构就崩了。有没有一种方案既能摆脱二次方复杂度又不需要写CUDA还能保留全局建模能力Caracal的破局思路用FFT做全局混合复杂度直接降到O(L log L)华为团队给出的答案叫Caracal核心动作只有两个把全局自注意力换成Multi-Head Fourier (MHF)模块然后把位置编码删掉。FFT在信号处理领域用了几十年它的超能力是把时域卷积变成频域乘法把O(L²)的运算压缩到O(L log L)。Caracal把这个数学工具直接搬进了语言模型的核心层。输入序列先经过一个轻量级的因果1D卷积捕捉局部模式然后被投影成两个分支content stream和gate stream。两个分支分别做FFT在频域里做逐元素相乘再逆FFT回到时域最后截断到原始长度并线性投影输出。Figure 1右Caracal架构以MHF替代全局注意力移除位置编码保留少量滑动窗口注意力层这个设计最巧妙的地方在于FFT的基函数本身就是正弦和余弦它们天然携带了频率和相位信息而这些信息对token的绝对位置和相对距离是敏感的。换句话说Caracal不需要像Transformer那样额外贴一个位置标签模型通过频域运算自己就能感知到这个词在第几位。论文里明确说MHF模块inherently captures global positional information显式位置编码变得多余。当然完全不用注意力也有风险。纯频域混合擅长捕捉长程依赖和周期性模式但对细粒度的局部语法结构比如n-gram、邻近词搭配可能不够精准。Caracal的解法是保留少量滑动窗口注意力SWA层每两个MHF层后面跟一个窗口大小256的局部注意力。这些SWA层专门处理近距离token关系而MHF层负责全局信息整合。两者配合既避免了全局注意力的二次方灾难又保留了局部特征的精确提取能力。与Mamba相比Caracal的定位非常清晰Mamba追求O(L)的极致线性但付出了硬件依赖和实现复杂度的代价Caracal接受O(L log L)的轻微妥协换来的是完全基于标准库的实现。MHF模块的核心运算就是PyTorch里的torch.fft.rfft和torch.fft.irfft加上标准的1D卷积和线性投影。不需要定制核函数不需要手动调block size换块GPU照样跑改个内部逻辑也不会牵一发而动全身。频域因果掩码以前傅里叶模型做不了生成现在解决了用FFT做语言模型之前不是没人试过。FNet把BERT里的注意力换成无参数的2D FFT在编码任务上效果不错。但所有这类模型都有一个致命限制它们是非因果的只能做encoder-only的掩码语言建模没法做自回归生成。为什么因为FFT本质上是对整个序列做全局加权求和。标准注意力可以通过因果掩码把未来token的权重置零实现只看过去的自回归约束。但FFT是高度优化的原子操作输入进去直接输出全局混合结果中间没有权重矩阵这个可以被掩码的环节。如果硬要做因果 naive 的做法是对每个位置t单独做FFT只输入前t个token那训练复杂度会变成O(L² log L)比注意力还慢。Figure 1右局部放大/MHF模块细节Caracal通过pad-FFT-multiply-iFFT-truncate流水线实现频域因果掩码Caracal解决这个难题的方法非常数学化把频域乘法当成时域因果卷积的快速实现。具体流程是四步先把序列通过零填充扩展到双倍长度2L然后做FFT变换到频域在频域里让content和gate做逐元素相乘接着逆FFT回到时域最后把结果截断回原始长度L丢弃后半段非因果的部分。这个pad-FFT-multiply-iFFT-truncate流水线数学上等价于一个严格的因果卷积——输出位置t只依赖于输入位置0到t绝不会偷看未来信息。更关键的是整个过程在训练时是一次并行的前向传播完成的不需要像naive因果FFT那样做L次独立计算。复杂度严格控制在O(L log L)既保留了因果性又没有牺牲训练效率。论文里把这个称为frequency-domain causal masking并指出这是之前所有基于傅里叶的生成模型都没能跨过的门槛。从第一性原理看注意力和FFT其实在做同一件事都是通过加权求和来混合token信息。注意力的权重是数据相关的动态矩阵α_tj由query和key的 softmax 决定FFT的权重是静态的复指数只由位置决定。Caracal的MHF模块通过gate stream动态生成滤波器把静态的FFT升级成了数据相关的动态频域混合既保留了FFT的效率又恢复了类似注意力的表达能力。MHF模块拆解四步流水线把频域卷积装进Transformer层Caracal的核心是Multi-Head Fourier (MHF)模块它的前向传播可以拆成四步每一步都有明确的分工。第一步注入局部归纳偏置。输入先过一个轻量的因果1D卷积卷积核只有3左侧补零确保因果性。这一步专门捕捉局部语法模式比如常见的n-gram搭配。论文里管这叫补偿移除显式位置编码后的局部感知需求说白了就是全局混合交给FFT但邻近词之间的关系还得有个专门的探针。第二步准备双分支信号。经过Layer Norm后输入被投影成两个并行流content stream值分支通过一个简单的线性层生成gate stream门控分支则经过Linear→SiLU激活→1D分组卷积的嵌套结构。这个两阶段门控设计不是随便加的——分组卷积按head切分通道让同一个head内部能集体学习共享的门控表示实现head内的信息沟通。第三步频域因果混合。这是MHF的灵魂。content和gate分别做FFT变换到频域然后逐元素相乘。频域里的乘法对应时域里的卷积。为了严格保证因果性序列先被零填充到双倍长度2LFFT相乘后再逆FFT回时域最后截断回原始长度L把非因果的后半段直接扔掉。这个填充-变换-相乘-逆变换-截断的流水线数学上等价于一个严格的因果卷积但复杂度只有O(L log L)。这个⊙就是频域里的门控操作——gate分支动态调制content分支的频率分量相当于给不同语义频段装上了可调音量旋钮。第四步投影输出。截断后的混合信号再经过一个线性层整合多head信息输出与输入同维度的表示。把长度从2L砍回L后半段是未来信息泄漏区直接扔掉。整个MHF模块没有用到任何位置编码因为FFT的基函数本身就是不同频率的正弦和余弦它们的相位天然编码了token的绝对位置和相对距离。论文在消融实验里验证了这个论断显式加上位置编码后性能几乎没有变化后面会细说。实测速度追平Mamba精度追平TransformerCaracal到底能不能打团队在FineWeb-10B数据集上从头训练了四个尺寸的模型与Llama纯Transformer、Mamba/Mamba-2纯SSM、Jamba混合SSM-Attention做严格对照。Table 2展示了从Tiny到Large的scaling结果。在Large规模约724M参数Caracal在9个基准上的平均准确率达到49.01%与Llama48.73%、Mamba49.00%、Mamba-248.75%、Jamba49.07%处于同一水平线。具体到单项Caracal在PIQA物理常识上拿到69.26%超过所有对比模型在LAMBADA困惑度上为29.39优于Mamba的34.34和Mamba-2的36.32。Table 2Caracal在63M到724M参数范围内与Llama/Mamba/Jamba全面竞争Large规模平均49.01%更广泛的对比在Table 3。团队采用了Behrouz等人2025的协议340M参数、15B token、4096上下文把Caracal与RetNet、GLA、DeltaNet、TTT、Gated DeltaNet、Moneta、Yaad、Memora等十余个亚二次架构放在同一起跑线。CaracalDefault平均准确率达到46.62%在这些基线中表现最强。即使去掉SWA层的纯MHF版本Caracal w/o SWA也能拿到44.92%保持竞争力。Table 3340M参数15B token设置下Caracal与RetNet/GLA/Mamba/DeltaNet等对比表现优异效率是Caracal最锋利的刀刃。Figure 2画出了不同上下文长度下的训练时间和token吞吐量。Llama的曲线随着长度增加呈典型的二次方爆炸256长度时训练时间约33118秒到8192长度时飙到94258秒。而Caracal几乎是一条平缓的直线8192长度时仅34071秒不到Llama的三分之一。在token吞吐量上8192长度时Caracal达到约293504 tokens/s与Mamba289720和Mamba-2294498基本持平远胜Llama的106091。Figure 28192长度时Caracal训练时间约为Llama三分之一throughput与Mamba持平长上下文信息提取任务Table 4揭示了当前的一个trade-offLlama凭借密集点积匹配在SWDE和FDA上平均拿到9.55%而Caracal为5.37%与其他亚二次架构Mamba 5.46%、Jamba 5.91%处于同一梯队。这说明Caracal在细粒度精确检索上仍有提升空间但它换来的是全局序列建模的极致效率。Table 4长序列检索任务上Caracal与其他亚二次架构持平略逊于密集注意力消融实验位置编码真的多余局部注意力层不能全删Caracal的设计选择有没有水分Table 5用Large模型做了系统消融。去掉SWA层纯MHF平均准确率从49.01%掉到48.22%下降0.79个百分点。说明局部注意力层虽然占比不高但对细粒度语言一致性有实质贡献。再去掉Pre-Conv预卷积进一步掉到47.82%。这两个局部模块叠加贡献了约1.2分的性能证明纯频域混合需要局部组件打配合。最关键的验证是加显式位置编码。论文把标准的位置编码重新装回Caracal结果平均准确率几乎没变48.94% vs 49.01%。这直接坐实了MHF模块自带位置感知能力外部位置编码完全是冗余的。两阶段门控 vs 单阶段线性投影SSLP的对比也很说明问题。把复杂的Linear_G1→SiLU→Conv1d_G2替换成单层线性门控准确率从49.01%掉到48.05%。论文分析分层门控能让head内部建立更丰富的通信学出更具表达力的上下文感知滤波器。Table 5SWA与预卷积提供局部归纳偏置显式位置编码无增益两阶段门控更优Table 6进一步探索了MHF层与SWA层的混合比例。在Small模型12层上测试5:1稀疏SWA平均43.04%3:1为43.19%2:1达到43.35%的峰值1:1密集SWA反而回落到43.26%。这说明局部注意力不是越多越好——过多的SWA会打断频域全局建模与时域局部提取之间的协同。2:1是经验上的sweet spot。Table 6MHF与SWA比例为2:1时性能最优过多或过少局部注意力均损害性能结语一条不用写CUDA的第三条路Caracal的出现在Transformer和SSM之间划出了第三条路。它不像Mamba那样追求极致的O(L)线性复杂度而牺牲实现简洁性也不像稀疏注意力那样在二次方的框架里修修补补。O(L log L)的复杂度对绝大多数实际场景来说已经足够快而标准FFT库带来的硬件无关性让研究和部署的门槛大幅降低。论文在Limitations里坦诚了两点一是当前验证最大到724M参数万亿参数级别的大规模预训练还需要进一步验证二是在细粒度信息检索任务上如Table 4所示Caracal仍落后于密集注意力模型未来可以通过多尺度门控或层次化混合来缩小这个分辨率差距。但即便如此Caracal已经证明了一件事用傅里叶变换替代注意力不是理论上的浪漫想象而是工程上的可行方案。它不需要定制CUDA不需要复杂的状态空间对偶理论不需要 increasingly sophisticated 的位置编码补丁。几行PyTorch标准代码就能搭出一个训练快3倍、性能不打折、还能自回归生成的语言模型。当行业越来越卷向超长上下文也许真正需要的不是更复杂的注意力变体而是回到更基础的数学工具——让正弦和余弦去做它们最擅长的事。