最近一项由独立研究者Mani Shemiranifar开展的研究提出了一个引人深思的问题:在大语言模型运行时,真的需要所有神经层都参与工作吗?这项研究于2025年5月发表在arXiv上,论文标题为《Void in Language Models》(语言模型中的空域),论文链接为https://github.com/manishemirani/void_in_language_models。
你是否好奇过,当ChatGPT这类大语言模型在回答你的问题时,它内部的每一层神经网络都在忙碌工作吗?就像一个大公司里,有些员工可能在装忙,而实际上他们的贡献微乎其微。Shemiranifar的研究揭示了语言模型中存在的"空域"(Void)现象——这些是在推理过程中基本上不活跃的神经网络层。
想象一下,如果我们把语言模型比作一栋多层办公楼,每层都有专门的员工团队负责处理信息。传统观点认为每一层都必须全力运转才能得到最好的结果。但这项研究却发现,某些楼层的员工几乎没有实质性工作,而且——这才是最令人惊讶的部分——如果我们允许这些"懒惰"的楼层员工休息(即跳过这些层的计算),不仅不会损害最终输出质量,有时甚至会让结果变得更好!
Shemiranifar开发了一种名为"L2自适应计算"(LAC)的方法来监测这些"懒惰层"。这种方法不需要额外训练,也不需要改变模型参数,就像是一位不干扰工作流程的效率顾问,只是观察哪些楼层真正在工作,哪些基本上在划水。研究者在三种知名的对话型语言模型上测试了这一方法:Llama、Mistral和Qwen系列。
研究结果令人震惊:在某些任务中,Qwen2.5-7B-Instruct模型即使只使用约30%的层,其在MMLU(一个测试模型知识和推理能力的基准)上的表现不仅没有下降,反而从69.24%提升到了71.29%!类似地,Mistral-7B-Instruct-v0.3在GPQA Diamond基准测试中,使用约70%的层时,准确率从13.88%提升到了18.36%。
这项研究不仅揭示了语言模型内部运作的新视角,还为未来模型优化提供了方向:也许我们不需要更多的层,而是需要更有效地使用现有的层。接下来,我们将深入探讨这些"空域"是如何被发现的,以及为什么跳过它们反而能提升模型性能。
一、探测语言模型中的"空域":方法与理论
要理解语言模型中的"空域"现象,我们首先需要了解研究者使用的检测方法。Shemiranifar采用了一种称为"L2自适应计算"(LAC)的技术,这种方法原本是为了提高神经网络效率而设计的,但在这项研究中被巧妙地用来追踪模型层的活跃程度。
想象你正在观察一个工厂的生产线。每个工作站(类比于模型的层)都应该对产品(数据)进行一些加工。如果某个工作站几乎没有改变产品的状态,那么这个工作站可能是多余的。LAC方法正是通过监测每一层对数据的"改变程度"来判断该层是否真正参与了有意义的计算。
具体来说,LAC方法通过计算每一层输出的"L2范数"(一种测量向量大小的数学方法,可以简单理解为测量该层输出信号的强度)及其变化来检测层的活跃度。当某一层对数据的处理导致L2范数的变化小于一个动态阈值时,这一层就被认为是"空域"——即没有进行有意义的计算。
Shemiranifar在论文中对LAC方法进行了必要的调整,使其更适合检测语言模型中的空域。原始LAC方法使用绝对值来计算阈值,但为了更精确地检测空域,研究者移除了这一绝对值操作:
λt = α(max(Δt) - min(Δt))
这里的λt是在第t步(即第t层)的动态阈值,α是一个控制阈值敏感度的参数(值在0到1之间),Δt包含了从第一层到当前层的所有L2范数变化记录。
LAC方法的一个重要特性是它可以在不同粒度上工作:可以对整个批次数据、单个样本或单个词元(token)进行监测。在这项研究中,研究者主要关注了词元级别的监测,因为这提供了最细粒度的洞察,可以精确观察模型在处理和生成每个词元时的层活跃情况。
研究者将语言模型的运行过程分为两个关键阶段: 1. 提示处理阶段(Prompt Processing,PP):模型处理输入提示中每个词元时各层的活跃情况。 2. 响应生成阶段(Response Generation,RG):模型生成回答中每个词元时各层的活跃情况。
为了实现在推理过程中跳过"空域",研究者采用了一种称为"掩蔽"(masking)的技术。当检测到某一层对特定词元的处理不活跃时,系统会将该层对应的激活值设为零,有效地"跳过"了该层的计算贡献。这种方法允许研究者观察跳过空域对模型性能的影响,而不需要修改模型的架构。
值得注意的是,LAC方法的一个主要优势在于它不需要额外的训练或参数调整,可以直接应用于现有的预训练语言模型。这使得它成为研究模型内部工作机制的强大且实用的工具。
二、实验设置与结果分析:不是所有层都同等重要
Shemiranifar的研究团队在三种广受欢迎的指令调优型语言模型上进行了实验:Qwen2.5-7B-Instruct(来自阿里巴巴),Llama3-8B-Instruct(来自Meta),以及Mistral-7B-Instruct-v0.3。他们选择了三个著名的基准测试来评估模型性能:
MMLU(Massive Multitask Language Understanding):一个综合测试世界知识和问题解决能力的基准。 GPQA Diamond:一个测试模型在生物学、物理学和化学领域研究生水平问题解答能力的基准。 BoolQ:一个测试模型阅读理解和是/否问题回答能力的基准。
每个模型都经过了两种配置的测试:一种是使用所有层(即"不跳过"配置),另一种是选择性地跳过检测到的空域(即"跳过"配置)。所有实验都在一台配备24GB RTX 3090 GPU的机器上进行。
研究结果令人震惊。当研究团队将α参数设置为0.8时(这个参数控制识别空域的敏感度),他们发现:
Qwen2.5-7B-Instruct在MMLU零样本测试中,仅使用约30%的层(在提示处理和响应生成阶段分别为29%和30%),但性能从69.24%提升到了71.29%。
Mistral-7B-Instruct-v0.3在GPQA Diamond测试中,使用约74%的层时,准确率从13.88%大幅提升到18.36%。
Llama3-8B-Instruct在GPQA Diamond测试中,使用约63%的层(提示处理阶段为62%,响应生成阶段为65%),准确率从29.11%提升到30.53%。
这些结果表明,不仅有相当多的层在大多数情况下不活跃(即存在大量"空域"),而且跳过这些空域不仅不会损害模型性能,在某些情况下反而会显著提升性能。
研究者还探索了α参数对层使用率和模型性能的影响。当α值增加时,阈值变得更严格,导致更多的层被识别为空域并被跳过。有趣的是,不同模型对α的反应不同:
对于Llama3-8B-Instruct和Mistral-7B-Instruct-v0.3,随着α增加(因此层使用率减少),BoolQ准确率总体上下降。
然而,Qwen2.5-7B-Instruct表现出不同的行为。随着α增加,其性能实际上有所提升,在α=1.0时达到最佳BoolQ准确率,尽管此时仅使用了约20%的层!
这种差异表明,不同的模型架构在层利用效率上存在显著差异,一些模型(如Qwen2.5-7B-Instruct)中的许多层可能在推理过程中贡献微乎其微,甚至可能引入噪声。
三、层使用模式的深入分析:为什么跳过某些层能提升性能?
当我们深入分析语言模型中各层的使用模式时,揭示了一些令人惊讶的规律。研究者发现,模型并不是均匀地激活所有层,而是展示出复杂的层激活模式。
首先,模型在提示处理(PP)和响应生成(RG)这两个阶段表现出不同的层激活模式。这表明模型在阅读输入和生成输出时使用了不同的计算策略。就像人类在理解问题和提供答案时可能使用大脑的不同区域一样,语言模型也似乎在这两个阶段启用了不同的"专家团队"。
研究团队创建了详细的层使用率可视化图,清晰展示了每一层在处理过程中的激活频率。这些图显示,某些层几乎总是被激活,而其他层则很少参与计算。特别是在Qwen2.5-7B-Instruct模型中,中间层(约第4到17层,特别是第10到13层)的使用率极低,通常不到20%,甚至接近0%。这些层代表了显著的"空域",即模型计算中几乎不起作用的区域。
Llama-3-8B和Mistral模型也显示出层使用率的波动,但它们在中间层没有Qwen那样持续的、明显的低使用率模式。
为了理解为什么某些层会成为"空域",研究者分析了每一层的L2范数及其变化。他们发现:
1. L2范数随着层数的增加而总体上增长,表明激活强度在深层网络中逐渐增强。
2. 提示处理阶段的L2范数总体上高于响应生成阶段,表明模型在处理输入时的激活强度更大。
3. 最关键的是,中间层(如第5到15层,取决于模型)对L2范数的变化贡献较小,这意味着这些层对信息处理的影响相对较小。
这种"对L2范数贡献较小"的现象正是那些层被LAC方法识别为空域的原因——它们的"进展"(即对L2范数的变化贡献)通常低于动态阈值λt。
那么,为什么跳过这些空域有时能提高模型性能呢?研究者提出了几种可能的解释:
1. 信息冗余:某些层可能在执行高度相似的操作,导致冗余计算而没有添加新信息。
2. 噪声引入:一些层可能引入噪声或不相关的信息,干扰了模型的决策过程。
3. 过拟合效应:模型训练中的某些层可能过度适应了训练数据中的特定模式,在新数据上反而有害。
4. 层专门化:不同的层可能专门化于不同类型的任务或信息处理,对于特定查询,只有相关的专家层需要参与。
这些发现揭示了语言模型内部运作的复杂性,并挑战了"更多层总是更好"的传统观点。事实上,模型可能采用了一种更加动态和高效的计算策略,根据输入的性质和任务的要求灵活地激活不同的层。
四、模型差异与特定案例探索:不同模型,不同"性格"
研究中的三个模型——Qwen2.5-7B-Instruct、Llama3-8B-Instruct和Mistral-7B-Instruct-v0.3——展示了截然不同的层使用模式,这反映了它们架构和训练方法的差异。
Qwen2.5-7B-Instruct展现出最极端的层使用不均匀性。它在中间层(特别是第10到13层)几乎不活跃,而在浅层和深层则保持较高的活跃度。这种"沙漏形"的激活模式意味着信息主要通过早期和后期层流动,中间层贡献很小。这可能解释了为什么Qwen模型在跳过大量层时性能反而提升——那些被跳过的层可能主要是"空置的中间层",它们对模型输出的贡献微乎其微,甚至可能引入干扰。
相比之下,Mistral-7B-Instruct-v0.3的层使用更加均匀,尽管仍有约30%的层被识别为空域。这种相对均匀的层分布可能反映了Mistral架构中更有效的信息流动和层间依赖关系。
Llama3-8B-Instruct在层使用上表现出较大的波动,没有明显的模式,但总体上比Qwen更平衡,比Mistral更不均匀。
研究团队还发现了一个有趣的现象:模型在数学推理任务上的错误模式与层使用模式有关。在附录中提供的案例研究中,研究者展示了当完整使用所有层时,模型有时会产生幻觉(如Llama-3-8B-Instruct在一个方程求解问题中错误地得出答案(3,3))。然而,当跳过空域时,同一模型能够正确求解出答案(1,4)。
这一发现特别重要,因为它表明空域不仅是计算效率的问题,还可能与模型的准确性和幻觉产生有关。一种可能的解释是,某些层在特定任务上可能引入了错误的信息或干扰了正确的推理路径。通过跳过这些层,模型能够保持更清晰、更连贯的推理流程。
研究者还通过图表直观展示了不同α值(控制空域检测敏感度的参数)对模型性能和层使用率的影响。这些图表揭示了有趣的权衡关系:对于Llama和Mistral,随着跳过更多层,性能总体下降;而对于Qwen,跳过更多层(甚至高达80%)反而能提高性能。这再次证明了不同模型架构的内在差异。
更令人惊奇的是,研究者在BoolQ数据集上发现,Qwen2.5-7B-Instruct在α=1.0(最严格的空域检测阈值)时达到最佳性能,此时仅使用约20%的层!这打破了传统认知,表明在某些情况下,使用"更少"的计算资源反而能获得"更好"的结果。
五、研究局限性与未来方向:探索更深的空域
尽管这项研究提供了有关语言模型内部工作机制的宝贵见解,但研究团队也坦率承认了当前方法的一些局限性。最主要的限制是,尽管LAC方法能够识别和掩蔽空域,但目前的实现方式并没有真正节省计算资源。
研究者在论文中解释道,当前实现使用掩蔽来模拟跳过空域的效果,而不是实际上跳过计算。这意味着,尽管空域的激活值被设为零(实际上"跳过"了它们的贡献),但前向传播过程仍然经过所有层。此外,LAC方法本身需要在每一步计算L2范数的变化,这增加了额外的计算开销。
未来的研究方向可能包括开发硬件感知的实现方式,能够真正跳过空域的计算,从而实现计算速度的提升。这将需要深入研究如何在现代硬件加速器(如GPU和TPU)上高效支持动态稀疏计算。
另一个有趣的研究方向是进一步探索空域与模型行为之间的关系。例如,空域的分布模式是否与模型的特定能力(如推理、记忆或常识推断)相关?是否可以通过分析空域分布来预测模型在特定任务上的表现?
此外,这项研究为模型优化和蒸馏提供了新的思路。如果我们可以识别出哪些层对特定任务至关重要,而哪些层基本不起作用,那么我们可能能够设计更高效的模型架构,或者开发针对特定任务的精简版模型。
研究团队还提出了空域检测可能在解释性、知识编辑和幻觉检测方面的应用。通过识别处理特定信息的关键层,我们可能能够更有针对性地修改模型的行为或理解其决策过程。
六、结论与启示:当语言模型学会选择性专注
这项探索语言模型中"空域"的研究为我们提供了对这些复杂系统内部工作机制的新视角。就像人类大脑在不同任务中有选择地激活不同区域一样,语言模型也似乎采用了一种动态、任务相关的计算策略,而不是简单地在每个推理步骤中使用所有可用资源。
研究的核心发现可以总结为:
1. 语言模型在推理过程中并不是均匀激活所有层,而是存在大量"空域"——几乎不参与计算的层。
2. 这些空域的分布不是随机的,而是展现出与模型架构和任务性质相关的模式。
3. 最令人惊讶的是,有选择地跳过这些空域不仅不会损害模型性能,在某些情况下反而会显著提升性能。
4. 不同模型的层使用模式差异很大,反映了它们架构设计和训练方法的不同。
这些发现挑战了我们对语言模型工作方式的传统理解,并为未来的模型设计提供了新方向。也许未来的语言模型不需要简单地堆积更多层,而是需要更智能地决定何时使用哪些层。
就像一位资深专家知道何时深入思考、何时依赖直觉一样,高效的语言模型可能需要学会"选择性专注"——根据任务的复杂性和输入的性质动态分配计算资源。
这项研究也提醒我们,在追求更大、更复杂模型的过程中,我们可能忽略了提高现有资源使用效率的机会。有时,更少的计算反而能带来更好的结果,前提是我们能够智能地决定在何处投入计算资源。
对于普通用户和开发者来说,这项研究的实际意义在于:未来的语言模型可能会变得更加高效、更少幻觉,同时计算成本更低。通过更好地理解模型内部的工作机制,我们离构建真正高效、可靠的人工智能系统又近了一步。
如果你对这项研究感兴趣,可以访问研究者的GitHub仓库(https://github.com/manishemirani/void_in_language_models)获取更多信息和代码实现。这项工作为我们打开了理解和优化大语言模型的新窗口,让我们期待未来会有更多基于这一洞见的创新和突破。
好文章,需要你的鼓励
AIM Intelligence联合多所知名大学揭示了音频AI系统的重大安全漏洞,开发出名为WhisperInject的攻击方法。这种攻击能让看似无害的音频指令操控AI生成危险内容,成功率超过86%,完全绕过现有安全机制。研究暴露了多模态AI系统的系统性安全风险,对全球数十亿智能设备构成潜在威胁。
新加坡国立大学研究团队系统梳理了视觉强化学习领域的最新进展,涵盖超过200项代表性工作。研究将该领域归纳为四大方向:多模态大语言模型、视觉生成、统一模型框架和视觉-语言-动作模型,分析了从RLHF到可验证奖励范式的政策优化策略演进,并识别出样本效率、泛化能力和安全部署等关键挑战,为这一快速发展的交叉学科提供了完整的技术地图。
浙江大学研究团队通过OmniEAR基准测试揭示了当前AI模型在物理世界推理方面的严重缺陷。测试显示,即使最先进的AI在明确指令下能达到85-96%成功率,但面对需要从物理约束推断行动的任务时,成功率骤降至56-85%。研究发现信息过载反而降低AI协作能力,监督学习虽能改善单体任务但对多智能体协作效果甚微,表明当前架构存在根本局限性。
纽约大学和Aimpoint Digital Labs的研究团队首次揭示了Transformer模型训练中"大规模激活"的完整发展轨迹。这些影响力比普通激活大千倍的"超级激活"遵循可预测的数学规律,研究者开发出五参数公式能以98.4%准确率预测其变化。更重要的是,通过调整模型架构参数如注意力密度、宽深比等,可以在训练前就预测和控制这些关键激活的行为,为设计更高效、量化友好的AI模型提供了全新工具。