MobiZO:用推理 NPU 训练(ZO 路线)
本页是 NPU 路线的路线 A(见 端侧训练):MobiZO [1] 的思路是适应硬件——推理 NPU 擅长 forward,那就把训练降级成 "多扰动 forward + loss 差分",完全不碰 backward。
1. 观察:推理引擎可以复用来训练
MobiZO 的出发点:推理引擎(如 ExecuTorch)已经把 NPU 上的 forward 优化得很好,而 zeroth-order (ZO) 优化 [2] 恰好只需要 forward——
于是训练可以在完全不修改推理引擎的前提下进行。
但要实用,必须解决 ZO 的两个固有低效:
- 多次 forward 串行:准确的梯度估计需要多个扰动查询(query), 逐个 forward 很慢;
- 参数扰动开销:MeZO [2] 的种子技巧把扰动存储从 降到 , 但每步要按种子串行重生成并逐个加到 上, 的开销 在大模型上会吃掉免反传省下的时间。
2. MP-LoRA:扰动只进 , 与 共享
MobiZO 基于 LoRA-FA(冻结 、只训 )设计 Multi-Perturbed LoRA: 条并行扰动路径中,预训练权重 与 LoRA 矩阵 共享, 只有 被复制并各自加扰动,路径 的输出为
式 1|MP-LoRA:副本的内存开销随 而非 计,可忽略; 条查询路径一次并行 forward,扰动从种子即时展开进 。
配合两层并行:
- outer-loop: 个扰动查询并行(每路 batch 拆成 , 保持单步总计算量不变);
- inner-loop:每条路径的 两次 forward 并行。
3. 集成与实测
- 集成 ExecuTorch(v0.6.0)+ Qualcomm 后端,不修改 runtime;
- 实验覆盖服务器 GPU、Jetson Orin(8 GB)GPU 与 OnePlus 12(12 GB)Hexagon NPU。
TinyLlama-1.1B(FP16,effective batch 16,sequence length 128)单步:
| 平台 | 单步耗时 |
|---|---|
| OnePlus 12 Hexagon NPU | 5.76 s/step |
| Jetson Orin GPU(PyTorch) | 2.00 s/step |
相比逐查询串行的 MeZO 基线,MobiZO 取得明显的加速与内存节省, 且微调精度还有提升(多查询梯度估计更准)。
Inference NPU + ZO LoRA:现在就能跑(公开推理引擎、真机 NPU), 代价是 ZO 收敛慢(与所有 ZO 方法一样需要远多于 BP 的步数)。 与之相对的"真的让 NPU backward"路线见 maderix/ANE 与 Orion。
参考文献
[1] GAO L, ZIASHAHIBI A, NIU Y, et al. MobiZO: enabling efficient LLM fine-tuning at the edge via inference engines[J/OL]. arXiv preprint arXiv:2409.15520, 2024. https://arxiv.org/abs/2409.15520
[2] MALLADI S, LYU K, PANIGRAHI A, et al. Fine-tuning language models with just forward passes[C]//Advances in Neural Information Processing Systems (NeurIPS). 2023. https://arxiv.org/abs/2305.17333
© 2026 Yang Huan · yanghuan9812@qq.com