← 返回 2026-04-22

ShadowPEFT:基于影子网络的参数高效微调框架 ShadowPEFT: Shadow Network for Parameter-Efficient Fine-Tuning

Xianming Li, Zongxi Li, Tsz-fung Andrew Lee, Jing Li, Haoran Xie, Qing Li 📅 2026-04-21 👍 30 2026-07-13 08:36
LoRA替代方案 PEFT 可分离部署 影子网络 跨层参数共享 边缘计算

用跨层共享的影子网络做集中式层空间微调,打破LoRA逐层独立低秩扰动的碎片化范式。

前置知识

参数高效微调(PEFT)

PEFT 指在冻结预训练模型绝大部分参数的前提下,仅训练一小部分参数(一般是总参数的 <1%)来适配下游任务,从而大幅降低显存和算力开销。代表方法包括 Adapter、Prompt Tuning、LoRA 等,已成为当前 LLM 微调的主流选择。

本文是 PEFT 框架层面的新设计,必须先理解现有 PEFT 的目标与典型做法(尤其 LoRA 系列),才能体会 ShadowPEFT 想解决的结构性痛点。

LoRA(Low-Rank Adaptation)

LoRA 在被选中的线性层上冻结 $W$,学习两个低秩矩阵 $W_{down}, W_{up}$($r \ll d$),输出 $h \leftarrow h + (W_{down} W_{up}) x$。每层独立学习一对($\Delta W$),缺乏跨层共享,是典型线性-局部参数化。

ShadowPEFT 直接对照 LoRA;理解 LoRA 的「插入式逐层扰动」和它的局限(缺乏跨层协调、与主干权重强耦合)是本文论证逻辑的起点。

Transformer 解码器层结构

Transformer 解码器层由 Multi-Head Attention 与 Feed-Forward 组成,配残差和 LayerNorm,输入输出为 $\mathbb{R}^{T \times d}$ 隐藏状态,$T$ 为序列长度,$d$ 为隐藏维度。

ShadowPEFT 的影子网络正是在该层级别对隐藏状态做修正,而不是在 attention/FFN 内部的线性权重上操作,必须熟悉层结构才能读懂其注入与更新流程。

GRU 式门控残差更新

GRU(门控循环单元)通过更新门 $g$ 控制新旧状态的混合:$s' = (1-g) \odot s + g \odot t$,其中 $t$ 是候选状态、$g = \sigma(\cdot)$ 是 sigmoid 门,$\odot$ 表示逐元素乘积。本文将其用作深度方向上影子状态的演化规则。

Shadow Update Module 正是用这套门控机制控制影子状态从「上一层旧值」到「当前候选」的混合比例,以避免影子崩塌并提高优化稳定性,是方法核心组件之一。

Qwen3 模型家族

Qwen3 是阿里发布的开源大模型系列,覆盖从 0.6B 到数十 B 的多种规模,全部为稠密 Transformer 解码器架构。本文使用 0.6B/4B/8B 三个尺寸作为实验主干,验证 ShadowPEFT 在不同规模下的有效性。

文中所有主结果都是在 Qwen3 上得出,且展示了「小模型影子服务大模型」的跨尺度用法(如 0.5B 影子服务于 8B 主干),必须知道 Qwen3 才有办法复现全部实验。

研究动机

现有 LoRA 系列 PEFT 方法(包括 LoRA、DoRA、QLoRA 等)虽然简单高效,但存在两个结构性问题。第一,适配参数化是「线性-局部」且「去中心化」的:每个选中的线性层都独立学习一对 $(W_{down}, W_{up})$ 低秩矩阵,$L$ 层就有 $L$ 套互不通气的小模块,任务适应只能靠它们叠加产生,缺乏跨层共享的适配状态或功能。第二,这些低秩模块与主干权重深度耦合,既不能脱离主干独立预训练,也不能在不动主干的前提下做挂载/卸载,因而难以满足边缘计算中「云-边协同」「按需升级适配模块」等真实部署诉求。在 SQuAD v2 等任务上,DoRA 在 OOD 评测中甚至出现系统性退化(平均从 LoRA 的 52.41 降到 52.92,但其它条件下劣化至 48.57),提示低秩扩展并非没有代价。

本文的目标是本文的核心目标是提出一种「集中式」而非「分布式」的 PEFT 框架,把适配逻辑从「各个线性层独立扰动权重」升级为「一个跨层共享的层空间精炼模块」,让适配参数化变成单一的、可复用、可分离、可独立预训练的便携功能单元。具体来说,希望在可比甚至更少的可训练参数预算下,在生成(MMLU、GSM8K、SQuAD v2)和理解(Amazon、20News)任务上稳定匹配或超过 LoRA/DoRA,同时支持「只跑影子模型即可推理」的部署模式,从而把 PEFT 从「轻量化权重注入」推进到「模块化、跨尺度的功能层叠加」。

与已有工作不同的是,与现有三类 PEFT 路径形成明显区隔:(1)相比 Prompt/Prefix Tuning 这类对提示向量维度敏感、容量受限的方法,ShadowPEFT 用一个完整的(虽更小的)Transformer 充当适配器,表达能力强很多;(2)相比 Houlsby Adapter 等「每层独立插入 bottleneck 模块」的方法,ShadowPEFT 引入了一个跨层持久化演化的影子状态,模块共享且具有全局协调能力,而不是各管各的;(3)相比 LoRA/DoRA 这种「学习权重扰动」的范式,本文方法在隐藏表征层面做干预,并且影子模块可以脱离主干单独部署、用更小预训练模型初始化(小模型服务大模型)。换言之,本文最大的独特切入点是:把「适配」从「权重空间里的线性修补」改造为「层空间里的一条可复用路径」。

核心方法

ShadowPEFT 的整体思路可以一句话概括:冻结主干 LLM 不变,额外维护一个规模更小的「影子网络」,把它在每一层都接进来做一次轻量精炼。具体而言,把主干第 $\ell-1$ 层的隐藏状态 $h^{(\ell-1)}_{out}$ 和影子状态 $s^{(\ell-1)}$ 的差 $\delta^{(\ell)} = h^{(\ell-1)}_{out} - s^{(\ell-1)}$ 作为信号源,通过一个逐层独立但风格借鉴 LoRA 的低秩瓶颈 $\tilde{\delta}^{(\ell)} = W^{(\ell)}_{up}(W^{(\ell)}_{down}\ \delta^{(\ell)})$ 提取出带滤波的修正量,再以残差方式注回主干得到 $h^{(\ell)}$,然后让冻结的主干层 $f^{(\ell)}_{base}$ 计算 $h^{(\ell)}_{out}$;紧接着 Shadow Update 模块用类 GRU 的门控规则把影子状态从 $s^{(\ell-1)}$ 推进到 $s^{(\ell)} = (1-g^{(\ell)}) \odot s^{(\ell-1)} + g^{(\ell)} \odot t^{(\ell)}$,让影子跟随主干演化。这样在 $L$ 层主干上做 $L-1$ 次「注入-编码-更新」,影子既是适配信号源又是稳定参考轨迹,因此同一套参数可以被不同尺度的主干复用,也能单独部署成轻量模型。

ShadowPEFT 与 LoRA/DoRA 最本质的区别在两点。第一,参数化结构不同:LoRA 把可训练参数分布到每一层的线性权重里($h \leftarrow h + \Delta W x$),而 ShadowPEFT 把可训练参数集中到一个跨层共享的影子网络上。第二,适配的「载体」不同:LoRA 适配的是「权重本身」,ShadowPEFT 适配的是「隐藏状态相对于影子参考的偏差」,且这个偏差信息在深度方向上被累积传播。这两点结合起来带来了三个 LoRA 难以企及的能力——影子模块可独立预训练、可脱离主干做独立部署(detached inference)、以及小模型影子驱动大模型主干的跨尺度适配。

方法步骤详情

方法流程可以分解为五步。第一步是「初始化影子状态」:把初始输入 $x$ 丢给影子主干 $f_{shadow}$,得到 $s^{(0)} = f_{shadow}(x;\theta_{shadow})$,让影子从输入出发先建立自己的表征轨迹。第二步是「Shadow Injection」(注入):在主干第 $\ell$ 层之前,先算主干与影子的差 $\delta^{(\ell)} = h^{(\ell-1)}_{out} - s^{(\ell-1)}$,把它投影到低秩瓶颈得到 $\tilde{\delta}^{(\ell)} = \text{Dropout}(\delta^{(\ell)} W^{(\ell)}_{down}) W^{(\ell)}_{up}$(其中 $W^{(\ell)}_{down} \sim \mathcal{N}(0, \sigma^2)$,$W^{(\ell)}_{up} = 0$ 保证初始化时 $\tilde{\delta}=0$,主干输出不变),再以 $h^{(\ell)} = h^{(\ell-1)}_{out} + \alpha \tilde{\delta}^{(\ell)}$ 残差注入。第三步是「Base Encoding」(主干编码):把 $h^{(\ell)}$ 送入冻结的第 $\ell$ 层主干,得到 $h^{(\ell)}_{out}$,完成一次正常的 Transformer 前向。第四步是「Shadow Update」(影子更新):基于 $h^{(\ell)}_{out}$ 计算候选 $t^{(\ell)} = T^{(\ell)}(h^{(\ell)}_{out})$ 与门 $g^{(\ell)} = \sigma(G^{(\ell)}(h^{(\ell)}_{out}))$,用 $s^{(\ell)} = (1 - g^{(\ell)}) \odot s^{(\ell-1)} + g^{(\ell)} \odot t^{(\ell)}$ 完成 GRU 式演化。第五步是「联合训练与推理模式」:训练时基座冻结,可训练参数包括影子主干、注入投影、Update 网络和预测头,损失是 $\mathcal{L} = \mathcal{L}_{CE}(h_{base}W_{lm}, y) + \lambda \mathcal{L}_{CE}(s^{(0)} W_{shadow}, y)$(默认 $\lambda=0.05$),影子损失充当正则;推理时支持两种模式——附着式(attached)走完整流水线,以及分离式(detached)只跑影子主干加影子预测头、彻底绕开大模型。

技术新颖性

从技术新颖性来看,论文至少包含三项可圈可点的设计。其一,把「适配单元」从线性权重搬到了一层完整的微型 Transformer 上,并让它跨深度共享,这在 LoRA-style 文献里并不常见,倒是与早期「shared adapter」的思路有几分相似,但差别在于本文给影子加了可演化的状态,跨层共享不是「静态拷贝」而是「动态更新」。其二,$\delta^{(\ell)} = h^{(\ell-1)}_{out} - s^{(\ell-1)}$ 这一「主影子差」作为注入信号源、再叠加 LoRA 风格零初始化的低秩瓶颈,相当于把「全局跨层参考」与「局部低秩滤波」结合起来,既有信息冗余度又有参数效率。其三,门控影子更新规则实质是把 RNN 思路搬到深度方向上,使影子状态在「跟住主干」与「保留自身历史」之间做出可学习的权衡,这种 GRU-style 设计在 PEFT 文献里相对新颖,也是它在生成任务(特别是 GSM8K 多步推理)上表现突出的关键。

Architecture of ShadowPEFT. (a) Shadow Injection Module. (b) Base Encoding Module. (c) Shadow Update Module.
Figure 2: Architecture of ShadowPEFT. (a) Shadow Injection Module. (b) Base Encoding Module. (c) Shadow Update Module.

实验结果

主实验(Table 1)在 Qwen3 0.6B/4B/8B 三个规模上系统对比 LoRA、DoRA 与 ShadowPEFT,ShadowPEFT 在三种规模下均取得平均最优:0.6B 上 62.27 vs LoRA 61.81 / DoRA 62.08,4B 上 75.43 vs 74.55 / 74.85,8B 上 76.92 vs 76.51 / 75.99,优势随模型规模扩大而扩大(0.46 → 0.88 → 0.41-0.93),且可训练参数反而更少(9.07M / 23.44M / 29.12M)。当把 0.5B 的影子模型接入 8B 主干并用 FineWeb-Edu/Wudao 做预训练后再微调,平均分进一步推到 77.11,其中 GSM8K 从 80.21(随机初始化)涨到 82.18,SQuAD v2 从 87.39 提升到 87.78,体现「预训练+适配」叠加的甜区。Table 2 的 OOD 实验显示,ShadowPEFT 在 GSM8K、SQuAD v2、MMLU 三选一训练、剩下两个 OOD 评估时,全部三个训练条件下都拿到 OOD 平均最优(50.61 / 53.23 / 76.64 vs LoRA 50.40 / 52.41 / 76.57),证明集中式适配并未牺牲迁移能力。Figure 3(a) 的参数缩放实验显示,影子规模从 0.1B 涨到 0.5B 时 GSM8K 由 81.35 升到 82.12(0.4B 处),而 LoRA 几乎走平、DoRA 反向退化(81.12 → 77.79),暗示集中式影子在容量扩展上比单纯加秩更友好;Figure 3(b) 显示推理延迟相对 LoRA 只多 3.0–5.9 ms(4%–6%),基本可忽略。Figure 4 和 Table 3 的 Unitree Go2 机器人意图任务上,ShadowPEFT 同时拿到最低延迟和最高准确率(99.35%),并展示了「detached 影子处理日常技能 + 复杂查询回退到云端 attached 模型」的云边协同工作流。

Comparison of different PEFT methods across model sizes on generation and understanding benchmarks.
Table 1: Comparison of different PEFT methods across model sizes on generation and understanding benchmarks.
Out-of-distribution generalization of Qwen3 4B fine-tuned on different datasets, evaluated with 2-shot demonstrations.
Table 2: Out-of-distribution generalization of Qwen3 4B fine-tuned on different datasets, evaluated with 2-shot demonstrations.
Case study comparison of generated responses across Detached Shadow-Only, ShadowPEFT (attached shadow), LoRA, and DoRA.
Table 3: Case study comparison of generated responses across Detached Shadow-Only, ShadowPEFT (attached shadow), LoRA, and DoRA.
(a) Parameter scaling: GSM8K accuracy of LoRA, DoRA, and ShadowPEFT with parameter scales from 0.1B to 0.5B (base model: Qwen3 8B). (b) Inference latency (mean ± std over 10 attempts) across three base model sizes.
Figure 3: (a) Parameter scaling: GSM8K accuracy of LoRA, DoRA, and ShadowPEFT with parameter scales from 0.1B to 0.5B (base model: Qwen3 8B). (b) Inference latency (mean ± std over 10 attempts) across three base model sizes.
Accuracy vs. test time on test set for ShadowPEFT, LoRA, and DoRA.
Figure 4: Accuracy vs. test time on test set for ShadowPEFT, LoRA, and DoRA.
查看结构化数据
任务指标本文基线提升
MMLU(多任务知识,Qwen3 0.6B) Accuracy (%) 50.63 LoRA 49.91 / DoRA 50.34 +0.72 vs LoRA, +0.29 vs DoRA
GSM8K(数学推理,Qwen3 0.6B) Accuracy (%) 48.90 LoRA 48.22 / DoRA 48.37 +0.68 vs LoRA, +0.53 vs DoRA
SQuAD v2(阅读理解,Qwen3 0.6B) F1 (%) 80.54 LoRA 80.75 / DoRA 80.91 -0.21 vs LoRA, -0.37 vs DoRA(在更少参数下仅小幅落后)
MMLU(Qwen3 4B) Accuracy (%) 72.91 LoRA 72.37 / DoRA 72.56 +0.54 vs LoRA, +0.35 vs DoRA
GSM8K(Qwen3 4B) Accuracy (%) 79.00 LoRA 76.80 / DoRA 77.86 +2.20 vs LoRA, +1.14 vs DoRA(4B 上推理任务增益最显著)
SQuAD v2(Qwen3 4B) F1 (%) 86.84 LoRA 86.55 / DoRA 86.48 +0.29 vs LoRA, +0.36 vs DoRA
MMLU(Qwen3 8B) Accuracy (%) 76.51 LoRA 76.46 / DoRA 75.79 +0.05 vs LoRA, +0.72 vs DoRA
GSM8K(Qwen3 8B) Accuracy (%) 80.74 LoRA 79.76 / DoRA 78.39 +0.98 vs LoRA, +2.35 vs DoRA
SQuAD v2(Qwen3 8B) F1 (%) 87.51 LoRA 86.90 / DoRA 86.79 +0.61 vs LoRA, +0.72 vs DoRA
Amazon 评论情感分类(Qwen3 8B 风格平均) Accuracy (%) 62.84 (8B) / 62.66 (4B) / 61.18 (0.6B) LoRA 62.42 / 61.78 / 60.40 三个规模都稳定领先 0.2-0.8 点
20 Newsgroups 分类(三规模平均) Accuracy (%) 76.99 (8B) / 75.73 (4B) / 70.10 (0.6B) LoRA 77.03 / 75.23 / 69.76 +0.76 vs LoRA (4B),8B 上基本持平
Qwen3 8B + 0.5B pretrained shadow (GSM8K) Accuracy (%) 82.18 LoRA 79.76 / 随机初始化 shadow 80.21 +2.42 vs LoRA,+1.97 vs 随机影子(预训练带来的最大单项收益)
Unitree Go2 机器人意图理解 Accuracy / Latency 99.35% 准确率,最低延迟 LoRA 与 DoRA 均约 97.7% +1.65 点准确率,同时延迟最低,体现 attached+detached 双模式协同优势

局限与改进

作者在 Limitation 一节坦率承认的最大短板是「算力受限」:所有实验都止步于 Qwen3 8B,没有覆盖 32B、70B 等更大模型,也没有跨 LLaMA、Mistral、Mixtral 等异构架构验证;那么 ShadowPEFT 在「几十亿参数巨型主干」上是否仍能保持 4%–6% 的低延迟、以及「小模型影子服务超大模型」是否依然有效,目前都没有证据。第二个隐性局限是 detached shadow 在生成任务上明显不及 attached 版本(detached 在 MMLU/GSM8K/SQuAD v2 上分别只有 24-50 / 1-3 / 41-78 分,三规模平均 36-38 分),说明「只跑小影子做大模型的活」目前还远不能用,必须依附主干才能跑知识密集型任务。换言之,detached 模式只是「针对简单指令的轻量化前端」,并不能独立承担开放域对话,文章里 9 个 case 里的 [REMOTE] 回退也证实了这一点。第三点是 ablation 很有限,论文只对 Shadow Update 做了有无对比(GSM8K 79.00 → 76.57,没有它掉 2.43 点;Amazon 几乎不变),但 Shadow Injection 模块、影子主干规模、影子是否预训练、门控 $\alpha$ 等更多变量没有充分消融,难以判断每个组件对最终提升的边际贡献。

独立分析的弱点

独立审视还能发现几个值得指出的弱点。第一,影子状态跨层共享虽然带来参数效率,但也让训练对初始化敏感:论文自己也观察到「0.5B 随机初始化影子在 detached 模式下平均只剩 36.79~38.40 分」,几乎完全崩塌,这意味着若没有预训练、用户想做 detached 部署体验会很差,需要在 README/界面上明确警示。第二,影子主干本身就是一个小 Transformer,相比一个纯低秩矩阵占用更多显存和前向计算,因此「极小参数预算」场景下 ShadowPEFT 反而不一定有优势,文章表格里 ShadowPEFT 比 LoRA 少 0.1M-1.5M 参数是「持平」而非「碾压」,超低参数赛道(如 <1M)下 LoRA 仍是更简洁的选择。第三,论文的延迟数字是 mean ± std,但没有给出 batch size、序列长度、是否 prefix caching 等设置,复现者很可能得到偏差较大的延迟读数;detached 模式在「网络抖动 + 模型回退」链路下的工程延迟也没有量化。第四,Figure 4 的机器人实验样本数较少,且没有交代评测协议(多少测试样本、是否随机说话等),「99.35%」这个高数字需要更多统计支撑才能成立。改进方向:补充更大主干(≥32B)实验、加入极端参数预算下的对比、给出统一的延迟评测协议、把机器人 case 做成可复现的开源 benchmark。

未来方向

作者没有系统列举未来方向,但基于全文布局,可以预见几条值得探索的延伸。其一,影子网络可以有不同的架构变体——比如把影子换成 Mamba/RetNet 这类次平方注意力结构、或加 MoE 以容纳更多任务,这能进一步降低 detached 模式在长序列/多任务上的成本。其二,影子预训练的目标函数可拓展,例如借鉴 diffusion-style 中间表征蒸馏,让影子主干在 pretrain 阶段就逼近主干的隐藏状态,而不是单纯用 LM loss,这样 detached 模式可能做到更接近 attached。其三,跨尺度适配的扩展:小模型影子→超大模型主干的范式天然适合「端-云协同」,可以做 LoRA 矩阵难以做到的渐进式升级(只重训影子,主干不动)。其四,理论分析上,「为什么跨层共享的影子 + 门控更新反而比独立线性扰动更稳」是一个非常有价值的问题,可以从 loss landscape、信号传播、参数有效秩等角度给出解释,而不是只停留在 empirical 上。

复现评估

论文提供了官方代码仓库链接 https://github.com/ShadowLLM/shadow-peft 和模型集合页 https://hf.co/collections/shadow-llm/shadow-peft-models,代码开放程度较好。硬件上明确给出了「两块 NVIDIA A800」的实验环境,覆盖 0.6B/4B/8B 主干;超参数方面公开了 LoRA/DoRA 的 rank=32、alpha=32、dropout=0.05,ShadowPEFT 的 $\lambda=0.05$ 默认值、$W^{(\ell)}_{down}$ 高斯初始化、$W^{(\ell)}_{up}$ 零初始化等关键设定也都交代了。影子预训练细节在 Appendix B 提供,prompt 模板在 Appendix C 提供,整体可复现性中等偏上。需要小心的是:Appendix A 中关于「影子主干具体由哪些层组成、宽度如何缩放」的细节实际散落在 released code 里,单独看文章不容易精确复现;机器人实验(Unitree Go2)的协议只在 Appendix F 简单提及,并且 detachable 模式在某些环境依赖上没有完整说明;如果要做严格的逐数字复现,建议在 A800 显存上单次实验预留 1-2 周工程时间。另外作者使用的是 2024-2026 之间的工具链,PyTorch 与 transformers 版本需要在 repo README 中确认。