
先问你一个问题。
如果给你两份Transformer的设计图纸,参数量一模一样,一个深一点窄一点,一个浅一点宽一点,你能不训练就知道哪个训好之后效果更好吗?
大部分人的答案是不能。业界的答案也是不能,或者说,此前的答案是"不能优雅地解决这个问题"。
这正是这篇论文要啃的硬骨头。
**#Params和#FLOPs失灵的地方**
先说说现状有多尴尬。
现在设计或压缩一个Transformer,本质上都是同一个问题:在固定的预算下,怎么把"容量"分配到不同的架构组件里。
预训练的时候,你要决定深度和宽度怎么权衡、前馈层(FFN)*:Transformer里每层用来做非线性变换的那部分网络,通常是两个线性层夹一个激活函数,是不是要用分组注意力(GQA/MQA)*:一种让多个注意力头共享同一份Key和Value的技术,目的是省显存省计算,代价是可能损失一点表达能力,专家网络怎么分配容量。
压缩的时候,问题反过来了:给定一个部署预算,该保留哪些组件、砍掉哪些组件?
这些决策目前基本靠直觉、小规模消融实验、或者昂贵的搜索来做。工具箱里能用的标量只有两个:参数量和计算量(FLOPs)。
问题是,这两个数字只能告诉你"这个模型有多大"和"跑起来要算多少次",完全说不出"这个模型的结构好不好"。
两个参数量一模一样的架构,一个是12层768维,一个是6层1536维,#Params给它们打出完全相同的分数,可它们训练出来的效果可能天差地别。
结构恰恰是架构选择的本质,可现有工具偏偏对结构视而不见。
那有没有现成的替代方案?神经架构搜索(NAS)*:一类自动化寻找最优网络结构的技术,领域里确实有一批叫"免训练代理指标"(training-free proxies)*:不需要真正训练模型,只在初始化状态下跑一次就能给出评分的指标,比如看激活模式、梯度范数之类的东西的方法,比如看初始化状态下的激活模式、梯度范数、注意力聚焦程度。
但这些方法有两个硬伤。
第一,它们都得先把模型实例化出来,跑一遍前向或反向传播,而且分数依赖你喂给它的具体输入,换一批数据分数就变。
第二,这些代理指标都是黑箱标量函数,想在资源约束下找到最优架构,只能靠进化算法或者随机搜索去"碰",最后返回的是搜索过程中碰到的最好架构,而不是理论上真正存在的最优架构。
这个区别在小规模场景下可能不算大问题,但放到LLM级别的搜索空间里就要命了:每实例化一个候选架构都很贵,搜索空间又大到不可能靠采样穷尽。
**光谱容量:把权重矩阵当通信信道来算**
论文提出的解法叫神经光谱容量(Neural Spectral Capacity,简称NSC)*:一种只依据架构规格(层数、维度等参数),不需要实例化模型、不需要数据、不需要梯度,就能算出来的架构评分标量。
核心思路其实来自一个很老的通信理论概念。
把一个权重矩阵 $W$ 想象成一个通信信道,输入信号 $x$ 加上噪声 $z$ 之后变成输出 $y = Wx + z$。这就是经典的线性高斯信道模型。
通信理论早就证明了,这样一个信道能传递多少信息(互信息),有一个漂亮的闭式公式,只取决于矩阵 $W$ 的奇异值:
$$\psi(W) = \sum_i \ln(1+\sigma_i^2)$$
这里 $\sigma_i$ 是矩阵的奇异值。
奇异值分解(SVD)*:把一个矩阵拆解成若干个"方向"和对应"强度"的数学工具,强度越大说明这个方向承载的信息越多,你可以理解成给矩阵做"体检",看看它到底有没有本事把信息完整地传递下去。
为什么要用奇异值而不是直接数参数个数?
这里就要提到论文里一个特别有说服力的实验。作者拿LLaMA-7B里一个4096×11008的FFN矩阵做实验,先算出它的满秩光谱容量约为3174,然后把它截断成秩为1的矩阵,也就是说信息表达能力被砍到近乎最简单的程度,但矩阵的形状——也就是参数量——完全没变,还是4096×11008。
结果呢,光谱容量掉到了2.5,暴跌1270倍。
这就是关键:同样的参数量,容量可以相差三个数量级。
如果换成日常场景理解,这就像两个仓库,占地面积(参数量)一模一样,但一个仓库货架摆得错落有致、每一寸空间都能存放不同种类的货物(满秩),另一个仓库所有货架挤在一起、实际上只能塞进一种货(秩1)。如果只看占地面积去判断仓库的存储能力,你会完全误判。如果不用光谱容量而只用参数量去衡量架构,你永远发现不了这种"占地一样、实际能力天差地别"的情况,这正是#Params这个指标的死穴。
**从随机矩阵理论里薅出免费的闭式公式**
光谱容量听起来很美,但有个大麻烦:要算奇异值,你得先把矩阵实例化出来,跑一遍SVD分解。这不就又回到"必须实例化模型"的老路上了吗?
这里论文用了一个巧妙的数学工具,叫马尔琴科-帕斯图尔定律(Marchenko–Pastur law,简称MP定律)*:一个随机矩阵理论里的经典结果,说的是当一个矩阵的元素是独立同分布的随机数(比如神经网络刚初始化时的权重),矩阵维度足够大时,它的奇异值分布会收敛到一个确定的、可以用公式算出来的形状,不用管具体是哪次随机采样的结果。
这意味着什么?
意味着如果你知道一个权重矩阵的形状(多少行多少列)和初始化时用的方差,你根本不需要真的生成这个矩阵、跑SVD,直接套公式就能算出它"理论上"的光谱容量。
论文把这个理论量记作 $\psi_{MP}(m, n, s)$,是关于矩阵维度 $m, n$ 和初始化标准差 $s$ 的确定性函数,不再依赖任何具体的权重实现。
这一步的意义在于,NSC彻底摆脱了"必须实例化"这个枷锁,输入只是架构规格表上的几个数字,输出就是一个分数,全程不用GPU,不用数据,甚至不用生成随机数。
论文还验证了这个理论近似有多准。矩阵维度只要达到128(这是他们测试的FlexiBERT基准里最小的隐藏层维度),相对误差就已经低于0.4%,维度到1024时误差降到万分之一量级。在LLaMA-7B的剪枝实验中,理论公式和真实SVD算出来的分数几乎完全一致,Kendall相关系数和Spearman相关系数都是1.0000,但计算速度快了720倍。
这就好比你要预测一群硬币抛掷1000次后正面朝上的比例,理论上你不需要真的抛1000次,只要知道硬币是不是均匀的(对应"初始化方差"),用二项分布的期望公式直接算就行,这个理论值和你实际去抛的结果几乎不会有明显偏差,只是理论值省掉了抛硬币的功夫。如果偏要每次都真的抛一遍硬币才敢下结论,那速度上损失的就是几百倍的效率。
**层层叠加:从一个矩阵到整个网络**
算出单个矩阵的光谱容量只是第一步,怎么把整个网络的分数汇总起来是第二个技术难点。
论文的做法是,同一层内的多个矩阵——比如多头注意力里每个头各自的Q、K、V投影矩阵——采用直接相加的方式汇总,原因是这些矩阵在前向传播中是并行工作的,每个注意力头在自己独立的子空间里计算,这在数学上对应"多个信道并联",并联信道的总容量恰好等于各自容量之和。
层与层之间同样采用相加,虽然层与层是顺序执行而非并行,但论文做了系统性的消融实验对比了三种聚合方式:直接相加、取最小值(模拟"木桶效应")、连乘。
结果很有意思。取最小值这个方案会直接崩掉,原因是一个架构的最小分数只取决于它最弱的那一层的配置,导致整个500个候选架构的FlexiBERT数据集只被分成了22个不同的分数桶,大量结构完全不同的架构被强行归为同一个分数,在AutoFormer-Tiny上甚至出现负相关,因为这个搜索空间里更深的架构往往效果更好,但取最小值这个操作偏偏是层数越多分数越容易被拉低。
连乘的问题则是深度会指数级地压过其他因素,层数一多,分数直接爆炸式增长,导致深度差异掩盖了层内配置的差异,在GPT-2这种深度自由变化的基准上,相关系数从相加法的0.968掉到了连乘法的0.712。
最终相加法在三个基准上平均表现最好,而且是唯一一个具备"可加性"的聚合方式,这一点在下一节会看到,可加性正是让整个方法能够精确求解的关键。
**NSC-DP:不用瞎猜,直接算出全局最优架构**
如果说NSC只是"给架构打分",那它顶多算个更好的评分卡。真正让它有实用价值的,是它的可加性带来的一个副产品:动态规划求解器,论文叫它NSC-DP。
传统的架构搜索,无论用进化算法还是强化学习,本质上都是在一个巨大的空间里"瞎逛",逛到哪算哪,最后交出来的答案是"搜索过程中见过的最好的那个",不是"理论上真正存在的最优解"。
NSC-DP不一样。因为NSC是按层累加的,一个架构的总分等于每一层分数之和,而每一层的资源消耗(比如参数量)也是按层累加的,这个结构恰好和一个经典的组合优化问题一模一样,叫做背包问题——在总重量不超过背包容量的前提下,选择哪些物品能让总价值最大。
背包问题有精确的动态规划解法,能保证找到全局最优解,而不是局部最优或者随便凑合的解。
论文把架构搜索拆成两层:网络层面的决策(比如深度、嵌入维度)和层内决策(比如每层的FFN宽度、头数)。先枚举所有网络层面的配置组合,对每种组合,层内的资源分配问题变成一个背包问题,用动态规划精确求解。
效果有多夸张?在Transformer-XL的架构搜索里,NSC-DP在单核CPU上2秒钟就找到了比人类专家设计的基线更好的架构,测试困惑度是23.087,而基线是23.279。同样的搜索任务,用免训练代理指标配合进化搜索,要跑883到965秒,慢了400多倍。
在LLaMA-7B剪枝到5.7B参数这个任务上,差距更夸张。NSC-DP只用0.5秒就找到了最优的剪枝方案,而对比的几个免训练代理方法(SNIP、SynFlow、GradNorm、W-PCA)分别需要22到45分钟不等,最强的W-PCA也要45分钟,慢了将近5900倍。
这就好比你要在一堆行李里挑选一部分带上飞机,让重量不超标同时让总价值最大。如果找一个不懂数学的朋友帮你一件件试错、凭感觉挑,试个几百次也未必能找到真正的最优组合。但如果这个问题恰好能写成背包问题的标准形式,直接套用动态规划算法,几秒钟就能给出数学上保证最优的答案。区别不在于"聪明不聪明",而在于问题本身有没有被转化成可以精确求解的结构。如果NSC没有可加性,这个转化根本不可能发生,你还是只能靠瞎逛式的搜索。
值得多说一句的是,NSC-DP还有一个附加福利:动态规划算法在求解过程中,会顺带把每一个可能的预算点下的最优解都算出来,存在同一张表里。这意味着换一个部署预算,不需要重新搜索,直接去这张表里查另一个格子就行。论文在LLaMA-7B剪枝实验里展示了这一点,同一次0.46秒的计算,读出了7个不同计算量(TFLOPs)预算下的最优子网络,构成一条完整的帕累托前沿曲线。
**实测效果:排序准,压缩强,跨界也能打**
理论说得再漂亮,最终还是要看实测。论文在三个层面做了验证。
第一个层面是排序准确度。在FlexiBERT基准(500个BERT架构变体)上,NSC的Kendall相关系数达到0.695,而#Params只有0.485,#FLOPs是0.552。更能说明问题的是一个叫"10%控制"的实验:只看参数量相差不到10%的架构对,这时候#Params这个指标基本已经失去了区分能力,相关系数暴跌到0.082,几乎等于随机瞎猜。而NSC在同样的受限条件下依然保持0.505的相关性。
这组数字翻译过来就是:当参数量已经不能帮你区分两个架构谁更好的时候,NSC还能看出门道来。
这个模式在其他六个测试的架构家族(GPT-2、AutoFormer、CNN等)上都得到了印证,NSC的"10%控制"相关系数在每一个基准上都超过#Params,比如在AutoFormer-Tiny上是0.503比0.322,在NATS-Bench-SSS上是0.372比0.116。
而且NSC的计算速度是微秒级的,比需要实例化模型、跑前向反向传播的W-PCA、ZeroLM这些免训练代理指标快了四个数量级。
第二个层面是架构设计的实战检验。前面提到的Transformer-XL和AutoFormer实验都属于这一类,NSC-DP找到的架构不仅计算快,效果也确实更好或者持平。
第三个层面是LLM压缩,也就是LLaMA-7B剪枝到5.7B这个案例。这里有个细节特别值得强调:其他所有对比的剪枝方法,包括SNIP、GradNorm、SynFlow、W-PCA,都需要用一批校准数据在预训练权重上跑一遍才能打分,NSC-DP完全不需要,它只看剪枝之后子网络的架构规格表。
最终结果,NSC-DP剪出来的5.7B模型在八个常识推理任务上的平均得分是65.47%,比第二名W-PCA的63.83%高出1.64个百分点,而且在每一个单独任务上都超过所有对比方法。
下面这张表格能直观看出差距:
| 方法 | 参数量 | BoolQ | PIQA | 平均分(Avg8) | 搜索耗时 |
|---|---|---|---|---|---|
| SNIP | 5.4B | 61.93 | 69.21 | 60.73 | 22分钟 |
| SynFlow | 5.2B | 61.13 | 70.24 | 60.68 | 23分钟 |
| GradNorm | 5.5B | 61.31 | 70.78 | 62.45 | 22分钟 |
| W-PCA | 5.7B | 63.82 | 70.95 | 63.83 | 45分钟 |
| **NSC-DP** | 5.7B | **64.01** | **72.85** | **65.47** | **0.5秒** |
这个对比之所以震撼,不只是因为效果更好,更因为NSC-DP完全不需要校准数据、不需要碰一次预训练权重,而其他所有方法都得先把7B模型的权重加载进显存,用一批真实文本跑一遍梯度或激活模式,这个门槛本身就意味着NSC-DP能被用在权重还没训练出来、模型还只存在于设计图纸阶段的场景里,这是其他方法根本做不到的事情。
**几个值得留意的理论细节**
论文里还有一些数学证明,虽然不影响你使用这个方法,但能帮你理解为什么它会这样设计。
其中一个是严格凹性证明:在固定其他维度的情况下,光谱容量关于矩阵某一维度的函数是严格凹函数。这个性质直接推出了一个结论:如果给定FFN层的总参数预算,最优的分配方式是让每一层的FFN宽度保持均匀,这恰好呼应了Transformer-XL基线原本就是均匀分配FFN宽度的设计,也解释了为什么NSC-DP在这个任务上找到的架构和人类专家的直觉高度一致,只是在深度和宽度的整体权衡上做出了微调。
另一个细节是关于矩阵长宽比的分析。论文证明了,在参数总量固定的前提下,正方形矩阵(行数等于列数)的光谱容量是最高的,这背后的直觉和"并行信道下均匀分配功率能让总信息量最大"是同一套数学逻辑。
写在后面
读完这篇论文,最触动我的其实不是NSC这个具体指标有多准,而是它提出问题的方式。
大部分做架构搜索或者模型压缩的工作,起点都是"我们需要一个更好的评分函数",然后想办法让这个评分函数和真实效果的相关性更高一点。这篇论文的起点不太一样,它先问了一个更根本的问题:这个评分函数需不需要依赖数据和模型实例化?
这个追问带来的结果是,很多我们默认必须付出的成本,其实是可以省掉的。免训练代理指标已经号称"零成本"了,但论文点破了一个事实:这些方法依然要实例化网络、跑一次前向或反向传播、依赖具体的输入数据,这些成本加起来并不算真的"零"。NSC把这层伪装拆掉了,逼近了真正意义上"从图纸直接算分"的极限。
另一个让我意外的细节是随机矩阵理论在这里的用法。论文里提到的另外几篇相关工作,用马尔琴科-帕斯图尔定律来分析训练后的权重是不是出现了异常的重尾分布,或者在训练过程中用它来判断哪些奇异值是噪声该被剪掉。这些用法都是拿MP定律当一个"参照系"或者"噪声标准"。而这篇论文反其道而行之,直接把MP定律描述的那个理论分布本身当作要计算的对象,不是用它去检测偏离,而是直接算它自己的容量。这个视角切换挺聪明的,因为初始化时刻的权重恰好就是MP定律最适用的场景,没有任何训练痕迹去"污染"这个理论假设。
还有一点没有在正文细说,但值得提一下:论文最后指出,NSC这套框架天然可以扩展到MoE(混合专家模型)的专家分配问题上,因为专家层同样可以拆解成按层可加的结构。这个方向如果真的做起来,可能会对现在DeepSeek、Mixtral这类稀疏架构的设计流程产生实际影响,毕竟MoE架构里专家数量和容量的分配,目前基本上还是靠经验和大规模实验去试。
如果这套方法真能推广开,也许未来设计一个新的大模型架构,第一步不再是拍脑袋定一个深度宽度组合去跑一次几百万美元的训练,而是先在CPU上花几秒钟把所有候选方案的理论分数算一遍。这多少有点讽刺,这么多年大家一直在追求"更快的训练",而这篇论文提醒我们,也许更该追求的是"更快地知道该不该训练"。
Q&A
Q1:神经光谱容量NSC是什么?
A:NSC是一种只根据Transformer架构的规格参数(比如层数、维度、初始化方差)就能算出来的评分标量,不需要训练模型、不需要数据、不需要梯度,全程可以在CPU上以微秒级速度完成计算。
Q2:NSC和参数量(#Params)有什么区别?
A:参数量只反映模型大小,无法区分结构不同但参数量相同的架构。论文实验显示,一个矩阵满秩时光谱容量约3174,秩截断为1后参数量不变但容量暴跌到2.5,说明NSC能捕捉参数量看不到的结构信息。
Q3:NSC-DP在LLaMA-7B剪枝上的效果如何?
A:NSC-DP将LLaMA-7B剪枝到5.7B参数,在八个常识推理任务上平均得分65.47%,超过最强对比方法W-PCA的63.83%,且搜索耗时仅0.5秒,比W-PCA的45分钟快约5900倍,还完全不需要校准数据。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。