打开网易新闻 查看精彩图片

这项由香港理工大学计算机系与岭南大学人工智能研究部门联合完成的研究,以预印本形式于2026年4月21日发布在arXiv平台,论文编号为arXiv:2604.19254v1。感兴趣的读者可通过该编号在arXiv上查阅完整论文。

当人工智能大模型越来越"大"的时候,如何让它学会新技能而又不把以前的功夫全废掉,成了研究者们最头疼的问题之一。训练一个完整的大语言模型,要耗费天文数字般的算力,哪怕是对一个已经训练好的模型进行"再培训",费用也高得令普通机构望而却步。正因如此,一类叫做"参数高效微调"(PEFT)的技术应运而生——它的核心思路是:不动原模型的大部分参数,只训练一小部分新加入的参数,就能让模型掌握新任务。

目前最流行的参数高效微调方法叫做LoRA(低秩适应),可以把它理解为给一位厨艺精湛的大厨配备了几块专用调料盒:大厨本身的厨艺(原模型参数)完全不变,只是在不同菜肴上各自加了点特调的酱料(分散在各层的低秩矩阵)。这种方式简单好用,已经成为行业标准配置。然而,研究团队注意到一个潜在问题:每道菜的酱料都是单独配的,互相之间没有协调,整体上缺乏统一的"味觉方向",而且一旦大厨不在,那些酱料盒单独拿出来根本不知道怎么用。

正是为了解决这个问题,研究团队提出了一种全新的思路——ShadowPEFT,也就是本文要介绍的"影子网络参数高效微调"框架。

一、 大模型微调的现有困境:酱料太多却各自为政

要理解ShadowPEFT解决了什么问题,得先搞清楚现有方法的局限在哪里。

以LoRA为代表的低秩适应方法,做法是在原模型的每一层(或者特定的几层)中,为每个线性变换矩阵各自加上一对小矩阵(一个"压缩矩阵"加一个"还原矩阵"),这对小矩阵的参数量远远少于原矩阵,但加在一起能产生一个"微调量",轻轻推动原模型往新任务的方向调整。DoRA在此基础上再做了一步:把权重分解为"量级"和"方向"两部分分别调整,进一步精细化了这个过程。

这类方法的共同特点是:每一层的调整彼此独立,互不相知。就像一家餐厅的每位厨师都只知道自己那道菜要怎么做,却没有一个总厨在统筹全局的口味方向。整体上,适应的"动作"是分散的、局部的,散布在模型的各个线性层里。而且这些调整用的小矩阵与原模型的内部结构紧密绑定,无法单独拿出来在另一个场合使用。换句话说,如果原模型是一家大型酒店,LoRA的调整就像给酒店每个房间单独刷了新颜色,但没有一个整体设计师在把控整体风格。

此外,LoRA风格的微调还有一个实际部署上的限制:在边缘计算场景(比如手机、机器人、物联网设备)中,往往没有足够的算力运行完整的大模型,而LoRA的适应权重是直接嵌入在大模型里的,不能单独拆出来部署一个轻量版本。

二、 影子助手登场:一个统一协调的"全局总厨"

ShadowPEFT的核心想法可以用一个简单场景来理解:把原来那位大厨(大语言模型)完全冻住,让他保持原有的厨艺不变,然后为他配备一个轻量级的"影子助手"(shadow model)。这位助手不像LoRA那样给每道菜单独调味,而是全程跟在大厨旁边,观察每一步烹饪过程,随时提供统一调整建议,帮大厨把整体口味方向引导到新任务所需的状态。

具体来说,这位"影子助手"在结构上类似于一个缩小版的原模型,但参数量要少很多。它在整个模型的深度方向上被共享复用——也就是说,原模型每过一层,影子助手也要相应地更新一次自己的状态,并向原模型当前层的输出提供一个"修正建议"。这个过程反复进行,直到经过所有层。与LoRA在每一层独立添加小矩阵不同,ShadowPEFT只有一个影子助手,它的参数在所有层之间共享,形成了一条贯穿整个模型深度的统一适应路径。

为了让整个流程在初始时不干扰原模型的正常运作,研究团队采用了LoRA论文中类似的初始化技巧:影子注入时用的"向上映射矩阵"全部初始化为零,这样在训练开始时注入量为零,原模型的行为完全不受影响,随着训练推进,影子助手才逐渐学会如何提供有效的修正建议。

三、 影子助手的三步工作流程:注入、编码、更新

ShadowPEFT在每经过原模型的一个Transformer层时,都会经历三个步骤,就像一位得力助手与主厨默契配合的三个动作。

第一步叫做"影子注入"。在原模型的某一层开始处理输入之前,影子助手会把当前的"原模型隐藏状态"和"影子状态"做一个比较,计算出两者之间的差异——可以理解为当前大厨的状态与"理想目标状态"之间的偏差。然后,这个偏差通过一对小矩阵(一个压缩、一个还原,类似LoRA中的低秩瓶颈结构)进行过滤,提炼出最有用的修正信号,再加回到原模型的输入上。这里有一个重要设计:不是直接把差异原封不动地加进去,而是通过低秩瓶颈过滤,让模型学会判断哪部分差异是真正有用的,从而起到"精准调味"而非"倒一整罐盐"的效果。

第二步叫做"基础编码"。原模型的当前层接收到经过影子修正的输入之后,正常执行自己的计算,输出新的隐藏状态。这一步原模型完全不动,只是在接受影子助手提供的修正输入后进行正常处理。

第三步叫做"影子更新"。原模型这一层处理完成之后,影子助手需要把自己的状态也往前推进一步,吸收原模型刚刚产生的新信息。这一步采用了类似GRU(门控循环单元)的设计:影子助手先把原模型的新输出转化成一个"候选新影子状态",再用一个"门控信号"来决定应该在多大程度上接受这个新信息、保留多少之前积累的状态。这种门控机制防止影子状态在某一层突然"忘掉"所有之前学到的东西,也避免了训练过程中影子状态崩溃的风险,让整个训练更加稳定。

以上三步在每一层重复执行,影子状态像一条记忆线索一样贯穿整个模型,携带着从第一层到最后一层积累的任务相关信息,持续对原模型的隐藏状态施加引导。

四、 训练方式与两种部署模式:一个助手,两种用法

在训练阶段,ShadowPEFT采用联合损失函数来同时监督"附带影子的原模型"和"影子模型本身"两条路径。对于文本生成任务,损失函数是两部分的交叉熵损失加权求和:主损失来自附带影子后的原模型预测,辅助损失来自影子模型自己的预测,后者的权重系数默认设为0.05,起到正则化作用,鼓励影子状态自身也编码足够的任务相关信息。对于分类任务,则在影子模型的最终状态上额外加一个分类头,同样采用联合监督。

这个辅助损失的设计有一个深远的意义:它让影子模型在被"附加"到原模型上的同时,也在独立地学习如何解决任务。换句话说,影子助手不只是学会了"怎么帮大厨调整",还学会了"自己也能独立做菜"。

正因如此,ShadowPEFT在推理阶段支持两种完全不同的部署方式。第一种是"附加影子推理",也就是完整流程:影子助手跟随原大模型同步运行,对每一层输出进行修正,最终由原模型输出结果,这是精度最高的模式,适合算力充足的云端服务器。第二种是"独立影子推理",也就是只用影子模型自己跑,完全绕开原来那个庞大的原模型。这种模式下,影子模型作为一个轻量级的独立模型单独部署,极大地节省算力,非常适合在边缘设备(手机、机器人、嵌入式系统)上使用。

这种"可拆卸"的设计是ShadowPEFT区别于LoRA系方法的根本性优势之一——LoRA的适应权重必须依附在原模型上才能工作,无法单独剥离出来部署一个轻量版本。

五、 影子模型的预训练:让影子助手先"上学"再"上岗"

研究团队还探索了一个有趣的问题:影子模型是用随机参数初始化好,还是先单独预训练一遍、再来做微调任务助手,效果有什么区别?

为了回答这个问题,他们以Qwen3 8B(80亿参数的大模型)为原模型,用Qwen3 0.5B(5亿参数的小模型)作为影子模型,分别测试了随机初始化和预训练初始化两种方案。预训练的过程中有一个技术细节值得关注:0.5B模型和8B模型的隐藏维度不同,直接对接会出问题。研究团队用了一个叫做"Moore-Penrose伪逆"的数学技巧来初始化维度对齐的投影矩阵,这个技巧的作用是让拼接后的组合输出头尽可能接近原来0.5B模型的输出分布,避免从完全随机状态开始重新学习。然后,他们在FineWeb-Edu(英文教育内容数据集,采样10万条)和悟道语料库(中文内容,采样10万条)上对影子模型继续预训练,使用标准的因果语言建模目标。

预训练带来的效果非常显著:在附加模式下,预训练影子的表现整体优于随机初始化影子,尤其是在推理密集型任务上,GSM8K(数学应用题)准确率从随机初始化的80.21%提升到82.18%,SQuAD v2(阅读理解)从87.39%提升到87.78%。更令人关注的是独立部署模式:预训练影子在独立运行时平均得分达到62.11,而随机初始化影子独立运行时得分只有约35,接近崩溃。这说明,经过充分预训练的影子模型不仅能更好地辅助原模型,还真的能独当一面,作为一个轻量级的独立模型使用。

六、 实验结果:在三种规模的模型上全面测试

研究团队在Qwen3家族的三个规模(0.6B、4B、8B参数)上进行了全面测试,对比方法包括LoRA和DoRA,评估基准涵盖五个数据集,分为两大类任务。

生成类任务方面,采用了MMLU(大规模多任务语言理解,类似高考综合题库)、GSM8K(小学奥数题,测试数学推理能力)和SQuAD v2(阅读理解,包含有些问题根本无法从文章中找到答案的情况)三个基准。理解类任务方面,采用了Amazon评论情感分类(判断商品评价是正面还是负面)和20新闻组(把新闻文章分入20个主题类别)两个数据集。所有方法都尽量控制在相近的可训练参数量下进行公平比较,而ShadowPEFT实际使用的可训练参数量还略少于LoRA和DoRA。

实验结果整体呈现出一个清晰的趋势:ShadowPEFT在三个模型规模上均取得了最高的平均分。在0.6B规模上,ShadowPEFT平均62.27,LoRA 61.81,DoRA 62.08;在4B规模上,ShadowPEFT 75.43,LoRA 74.55,DoRA 74.85;在8B规模上,ShadowPEFT 76.92,LoRA 76.51,DoRA 75.99。各项单项指标上,ShadowPEFT在大多数任务上也保持领先或持平,差距虽然不算巨大,但在五个基准上表现一致,说明这种优势并非偶然。

值得一提的是,当使用随机初始化的0.5B影子模型时,附加模式下的表现(76.60平均分)已经很有竞争力,但略低于使用预训练影子的77.11。而一旦切换到独立影子模式,随机初始化版本得分仅35.11,远远低于预训练版本的62.11。这个对比鲜明地展示了预训练对于独立部署能力的决定性作用。

七、 消融实验:影子更新模块到底有多重要?

研究团队还做了一个"拆零件"的实验,专门验证影子更新模块(也就是那个GRU风格的门控状态更新机制)的作用。实验在Qwen3 4B上进行,对比了有无更新模块两种情况下在GSM8K和Amazon两个任务上的表现。

结果相当有意思:去掉更新模块之后,GSM8K的准确率从79.00%下降到76.57%,降幅超过2个百分点,而Amazon情感分类几乎没有变化(62.66%对比62.64%)。这个差异背后有直觉上合理的解释:数学推理是一个多步骤、需要在层与层之间传递和累积中间状态的任务,影子状态的持续更新对于保持这条推理链条至关重要;而情感分类本质上是一个"看完整体感觉"的任务,影子模型在第一层之后的初始状态里已经包含了足够的判断线索,后续更新反而显得可有可无。这个实验从另一个角度验证了ShadowPEFT框架设计的合理性。

八、 泛化能力测试:在一个任务上练,到另一个任务上用

为了评估ShadowPEFT在跨任务场景下的泛化能力,研究团队做了一组"跨数据集迁移"实验:在一个数据集上微调Qwen3 4B,然后用2-shot示例提示的方式,在另外两个没见过的数据集上测试表现。

实验覆盖了三种训练条件,分别是在GSM8K、SQuAD v2和MMLU上训练。结果显示,在所有三种训练条件下,ShadowPEFT的分布外(OOD)平均分均优于LoRA和DoRA。以GSM8K训练条件为例,ShadowPEFT的OOD平均分为50.61,LoRA为50.40,DoRA为48.57——DoRA在这个条件下相比LoRA有明显退步,研究团队分析认为这可能与DoRA额外的权重量级分解在泛化时带来的不稳定性有关。SQuAD v2训练条件下,ShadowPEFT OOD平均53.23,LoRA 52.41,DoRA 52.92。MMLU训练条件下三者整体较接近,但ShadowPEFT仍以76.64对比LoRA 76.57和DoRA 75.18略占上风。

这组实验表明,集中式的层级适应设计相比分散的逐层低秩扰动,在向未知任务迁移时表现出更稳健的泛化能力。

九、 参数规模扩展:更大的影子模型并非越大越好

一个自然而然的问题是:影子模型越大,效果就越好吗?研究团队专门做了参数扩展实验,在Qwen3 8B为原模型的设定下,将影子模型的可训练参数从0.1B一路扩展到0.5B,同时对比LoRA和DoRA在相同参数规模下的表现变化。

ShadowPEFT随着影子模型增大,GSM8K准确率从81.35%(0.1B)稳步上升到82.12%(0.4B),随后在0.5B时略微回落到81.80%,出现轻微饱和迹象。这条先升后稳的曲线说明更大的影子模型确实能带来更强的适应能力,但存在一个收益递减的天花板。相比之下,LoRA的表现曲线几乎是一条水平直线(80.52%到81.28%之间波动),这是因为LoRA的参数增加是通过提高秩来实现的,而研究表明对于LoRA类方法,秩超过一定阈值后反而容易损害泛化能力,甚至加速遗忘。DoRA的情况更糟,准确率随参数增大单调下降(81.12%降至77.79%),这种退化模式与已知的低秩方法局限性完全吻合。ShadowPEFT通过增加影子模型容量而非提高适应矩阵的秩来扩展参数量,从根本上绕开了这个问题,实现了相对更健康的参数规模扩展。

十、 推理效率:多出来的影子助手会拖慢速度吗?

多加了一个影子模型,推理时不会慢很多吗?这是实际部署中最关心的问题之一。研究团队在三种规模的模型上分别测量了10次推理延迟并取均值,结果令人宽慰。

在0.6B规模上,LoRA均值81毫秒,DoRA 84毫秒,ShadowPEFT 84毫秒,ShadowPEFT仅比LoRA多约3毫秒,增幅3.7%;在4B规模上,LoRA 101.2毫秒,DoRA 107.2毫秒,ShadowPEFT 107.2毫秒,仅比LoRA多约6毫秒,增幅5.9%;在8B规模上,LoRA 103.3毫秒,DoRA 109.2毫秒,ShadowPEFT 109.2毫秒,比LoRA多约5.9毫秒,增幅5.7%。整体而言,ShadowPEFT相比LoRA的延迟开销保持在4%到6%之间,与DoRA基本持平,远低于人们可能担心的"多跑一个模型会慢一倍"的情况。

这种低开销的关键在于设计上的巧妙:影子模型的前向计算可以与原模型的计算并行进行,影子注入和更新模块只增加了很轻量的残差连接操作,整体计算开销相当有限。

十一、 机器人实战测试:影子助手在真实场景中表现如何?

研究团队还做了一个颇具现实感的系统级测试:在宇树Go2机器狗的指令理解场景上评估ShadowPEFT的实用价值。他们构建并发布了一个专用数据集,包含4771条双语(中英)指令,涵盖34种预定义机器人技能(如TurnAround旋转、FrontFlip前空翻、PlayKungFu打功夫等)以及一个特殊的[REMOTE]类别,用于标记那些超出本地处理能力、需要转交云端处理的请求。

在这个场景下,ShadowPEFT的优势被展现得相当直观。独立影子模式可以部署在机器狗本地,处理常见的技能指令;当遇到天气查询、复杂数学、讲笑话、讲解飞机飞行原理这类超出本地能力的请求时,独立影子模型不会强行给出错误答案,而是输出[REMOTE]标签,将请求转发给云端运行的完整ShadowPEFT模型处理。

从测试结果来看,ShadowPEFT在准确率(99.35%)和测试总耗时两个维度上均优于LoRA(97.7%)和DoRA(97.7%)。更重要的是,由于简单指令可以本地快速处理而无需访问云端,整体交互延迟大幅降低。具体案例中可以看到,独立影子模型能正确识别"嘿,来个大转圈"对应TurnAround指令,对于"今天天气怎样"则返回[REMOTE]标签而非瞎编一个答案,对于"19+18等于几"也正确转发云端而非胡乱作答。相比之下,LoRA和DoRA在部分案例中出现了幻觉现象,比如把"解释飞机怎么飞"误识别为DrawPlane(画飞机)指令,或者把"嘿,来个大转圈"误判为FrontFlip(前空翻)。这个测试从系统层面验证了ShadowPEFT可分离部署设计的实际价值。

归根结底,ShadowPEFT做的事情是把散落在模型各处的"零星调整"整合成了一条有记忆、有协调、可独立工作的"适应通道"。它没有彻底颠覆现有微调方法的基础思路,而是在参数共享和状态传递上做了一个结构性的重新设计,让适应模块从"各扫门前雪"变成了"全局统一指挥"。对于普通用户来说,这意味着未来用手机或本地设备运行一个针对特定场景(比如客服机器人、智能家居助手、机器人控制)定制过的小模型,既不需要一直依赖云端的大模型,又能在需要时无缝切换到更强大的云端版本,这种"轻量本地+按需云端"的组合很可能成为未来智能助手的主流部署模式之一。

这项研究目前的局限在于,受算力资源约束,实验只在参数量不超过8B的模型上进行,更大规模模型(如70B级别)以及更多样的模型架构上的效果还有待验证。研究团队表示这些方向将在未来工作中继续探索。如果你对技术细节感兴趣,可以通过论文编号arXiv:2604.19254在arXiv平台找到完整论文。

Q&A

Q1:ShadowPEFT和LoRA的根本区别是什么?

A:LoRA在大模型每一层独立加入一对小矩阵来做调整,各层之间没有协调,而且这些调整权重必须依附在原模型上无法拆离。ShadowPEFT则用一个共享的"影子模型"贯穿整个模型深度,这个影子模型有自己的状态记忆,可以跨层统一协调,还能单独拆出来在边缘设备上独立部署,不依赖大模型也能工作。

Q2:ShadowPEFT独立部署的影子模型性能怎么样,能替代大模型吗?

A:如果影子模型是随机初始化直接微调的,独立运行时性能很差,基本不可用。但如果事先对影子模型进行了预训练,独立运行时的平均性能可以超过同参数量的LoRA或DoRA微调版本。不过它远不能替代大模型,更适合的场景是处理常见的简单任务,复杂请求还是转交大模型处理。

Q3:ShadowPEFT推理速度比LoRA慢多少?

A:实测中ShadowPEFT相比LoRA的推理延迟增幅在4%到6%之间,比如8B规模上LoRA约103毫秒,ShadowPEFT约109毫秒,差距很小。这是因为影子模型的计算可以与原模型并行,注入和更新模块都很轻量。