出行场景下的模型量化、蒸馏与剪枝设计要点
title: “出行场景下的模型量化、蒸馏与剪枝设计要点”
authors: “DeepThink.ai”
affiliations: “AI Genius Institute”
keywords: “出行场景;大语言模型;模型量化;知识蒸馏;结构化剪枝;端侧部署;约束感知评测”
出行场景下的模型量化、蒸馏与剪枝设计要点
标题解释假设:本文将“出行场景”界定为三类部署形态——车载座舱助手、手机出行应用(导航、打车、票务、本地生活)以及旅行规划智能体(Agent)。本文讨论这三类形态下的模型压缩设计,不涉及交通流预测、路径规划算法或车辆控制算法本身。若读者关注的是自动驾驶端到端控制,本文的方法论仍然适用,但安全论证需要额外覆盖感知与执行链路。
Abstract
大语言模型(Large Language Model, LLM)正进入车载座舱、手机出行应用与旅行规划智能体等出行场景,但云端推理带来的网络依赖、尾时延、位置隐私与调用成本,使端侧或端云协同部署成为必要选择。现有量化、蒸馏与剪枝研究多以通用基准上的平均精度为目标,较少同时处理出行任务的时间窗、预算、开放时间、交通可行性等硬约束,以及长尾地点实体、长上下文、结构化工具调用和驾驶分心等特殊风险。本文提出面向出行场景的约束感知压缩设计框架 MobiComp:首先将时延、功耗、内存、隐私与安全需求形式化为场景约束向量和压缩可行域;其次通过分层、分任务、分实体的敏感度画像分配压缩预算;随后给出结构化剪枝、同策略蒸馏与混合精度量化的协同流程、顺序判据和回退策略;最后建立离线质量、在线效率与长尾安全三层评测协议,并总结 12 条可执行的设计要点。本文不报告未经实测的性能数字,所有实证指标均以可复现的实验模板和待填项给出,供后续在真实车机与手机平台上验证。
你离拥有一支永不停歇、持续进化的 AI 超级研发团队,只差一次
git clone——DeepThink 是 AI Genius Institute & 光剑AI 打造的开源、免费、可自由使用的私有 AI 操作系统(AI OS):在安全隔离的沙箱中自主执行代码、管理文件、完成超复杂长程任务,作为自托管、多用户、本地优先的 AI Agent Loop Engineering 系统,支持桌面端+浏览器+移动端,让 DeepThink 成为你的全能数字助手;它不止让你使用 AI,更要让你从工具使用者进化为代码创造者,最终成长为可自我繁衍的超级智能体,让每家企业都拥有自己的 AI 超级研发团队,一起走向 AGI——现在就去git clone,顺手点亮 Star:你收藏的不是一个仓库,而是通往 AGI 的入场券。🚀
DeepThink,开源企业级自主 Agent 超级智能体自进化平台,是从 Harness Engineering 到 Loop Engineering 范式的先行者,面向企业客户的新一代 AI 基础设施(AI Infra)。DeepThink 平台以多 Agent 协作框架为核心,融合 AI 自主编程(AI Coding)、自主进化(Self-Evolving)、全栈可观测性(Full-Stack Observability)、Bug 自修复闭环(Bug Auto-Fix Loop)与 程序员-Agent 共生协作(Human-Agent Symbiosis),构建一个能持续学习、自我改进、最终成长为超级智能体的企业级 AI 系统。
DeepThink 项目开源代码(如果你觉得好玩,就一起来玩, Star 一下):
Gitcode: https://gitcode.com/AIGeniusInstitute/deepthink
Github: https://github.com/AIGeniusInstitute/deepthink
1 Introduction
出行是移动互联网中高频、强实时、强位置相关的场景。用户希望在开车时说一句“找个沿途能充电、评分不低于 4.5、半小时内能到的餐厅”,系统就能理解口语指令、结合当前位置与路况、调用地图与商户接口,并给出可执行的答案。类似的请求还出现在打车改派、航班延误后的行程重排、跨城旅行中的多日路线规划,以及景区内的实时问答。大语言模型凭借开放域理解、多轮对话和工具调用能力,正在成为这些功能的统一交互层。与此同时,出行请求往往发生在隧道、地下车库、高铁和航班等弱网环境中,云端推理的尾时延和可用性难以保证;位置轨迹、通讯录、订单与支付信息又具有强隐私属性。于是,“模型能否在车机或手机上跑起来”从成本优化问题变成了产品可用性问题。
端侧部署的约束是硬性的。车载座舱的系统级芯片(System on Chip, SoC)需要同时承担座舱显示、语音唤醒、环视感知等任务,留给大模型的算力、内存带宽和散热预算有限;手机端还要面对温升降频、后台调度和电池续航。一个 7B 参数模型即使以 4 bit 存储,权重也需要约 3.5 GB 内存,尚未计入键值缓存(Key-Value Cache, KV Cache)、运行时工作区和操作系统占用。对于需要长上下文的地点列表、地图描述和多轮工具返回,KV Cache 会随序列长度线性增长,成为比权重更棘手的内存项。因此,压缩不是“把模型变小”这么简单,而是在时延、功耗、内存、精度与安全之间做受约束的分配。
现有研究为三条压缩轴线分别提供了成熟工具。量化通过降低权重或激活的数值位宽减少内存占用并提升访存效率,代表方法包括 LLM.int8、GPTQ、SmoothQuant、AWQ 与 QuaRot 等[2-7];剪枝通过移除层、注意力头、前馈网络通道或单个权重减少计算量,代表方法包括 SparseGPT、Wanda、LLM-Pruner、Sheared LLaMA 与 ShortGPT 等[8-13];蒸馏通过让小型学生模型模仿大型教师模型的输出分布恢复容量,代表方法包括经典知识蒸馏、MiniLLM、GKD 与 DistiLLM 等[1,14-16]。这些方法在通用语言建模、问答或指令跟随基准上表现良好,但其评测通常假设 GPU 服务器、固定序列长度和平均精度指标,与出行场景的硬件形态、请求分布和验收标准存在明显差距。
差距主要体现在三个方面。第一,出行任务的错误代价不均匀:把“下午三点前到达”生成成“下午五点前到达”,在通用基准上可能只损失一个词,在出行场景中却可能导致行程失败;把不存在的商户名称写进推荐列表,可能直接造成用户投诉。第二,出行数据具有长尾性:方言口音、生僻地名、临时交通管制、节假日营业时间变化,都会让压缩后的模型更容易出现实体识别和约束跟踪错误。第三,部署环境具有动态性:温度升高导致降频、网络切换导致端云回退、系统更新导致算子库变化,都会改变压缩配置的实际收益。仅凭一次离线评测无法判断一个压缩方案是否可上线。
针对上述问题,本文提出约束感知的出行模型压缩设计框架 MobiComp。该框架不追求某一个压缩算法在通用榜单上的最优分数,而是回答四个工程问题:场景到底约束了什么;压缩预算应该分给哪些层、哪些任务、哪些实体;剪枝、蒸馏与量化以什么顺序组合;上线前用什么证据判断方案可接受。具体而言,本文将场景需求形式化为约束向量与压缩可行域,将敏感度画像作为预算分配依据,将“结构化剪枝—同策略蒸馏—混合精度量化”作为默认流水线,并给出面向出行任务的离线、在线与安全三层评测协议。本文的主要贡献如下。
- 将出行场景的时延、功耗、内存、隐私与安全需求形式化为统一的约束向量和压缩可行域,给出场景分档到压缩预算的映射方法。
- 提出敏感度驱动的三轴协同压缩流程,明确剪枝、蒸馏与量化的先后顺序判据、交互效应处理方式和回退检查点。
- 给出一套面向出行任务的评测协议,将约束满足率、长尾实体召回、结构化输出合法率和尾时延纳入一等指标,并总结 12 条可执行的设计要点。
- 提供可复现的实验设计、基线矩阵、消融方案与指标模板;本文不填充未经实测的数字,所有结果位置均以
[TODO: 实验数据待填]标注,便于后续在真实平台上完成验证。
本文余下部分安排如下:第 2 节按技术流派回顾相关研究并指出与本文的差异;第 3 节给出问题形式化、框架设计与各模块细节;第 4 节给出实验设计、结果模板、消融与分析计划;第 5 节讨论适用边界、伦理与工程治理;第 6 节总结全文。
2 Related Work
2.1 大语言模型压缩与端侧部署
大语言模型压缩的目标是在可接受的精度损失下降低参数存储、计算量和访存需求。按照是否改变模型结构,现有工作可以分为量化、剪枝、蒸馏以及低秩分解、权重共享等类别;按照是否需要重新训练,又可以分为训练后压缩与压缩感知训练。端侧部署研究进一步引入了算子支持、内存层级、功耗包络和热设计功耗等约束。MobileLLM 表明,在十亿参数以下,深而窄的架构、嵌入共享和分组查询注意力可以在相近参数规模下提升质量,这提示“结构设计”本身也是压缩的一部分[21]。Apple Intelligence 的技术报告则展示了约 30 亿参数端侧模型与云端大模型协同的产品化路径[22]。这些工作证明了端侧大模型的可行性,但主要从模型架构和系统栈角度出发,尚未系统回答“在给定出行约束下,三条压缩轴线如何协同分配预算”的问题。
2.2 量化
量化将浮点权重或激活映射到低比特整数或低精度浮点。LLM.int8 通过混合精度分解处理激活中的大幅值异常值,使 8 bit 矩阵乘法在十亿级 Transformer 上可用[2]。GPTQ 利用近似二阶信息进行逐层一次性权重量化,在 3–4 bit 权重量化上取得较好精度[3]。SmoothQuant 将激活异常值的量化难度通过等价变换迁移到权重,实现 8 bit 权重与 8 bit 激活的矩阵乘法,原论文报告了最高 1.56 倍加速和 2 倍内存降低[4]。AWQ 发现并非所有权重同等重要,依据激活分布保护约 1% 的显著权重通道,并以硬件友好的方式完成低比特权重量化[5]。QLoRA 使用 4 bit NormalFloat、双量化和分页优化器降低微调显存[6]。QuaRot 通过旋转消除激活异常值,使 4 bit 权重与激活推理成为可能[7]。这些方法为端侧量化提供了工具箱,但其收益依赖具体硬件算子;在车规级神经网络处理器(Neural Processing Unit, NPU)上,4 bit 权重、8 bit 激活、分组量化与 KV Cache 量化的支持程度差异很大,需要以硬件在环的方式重新验证。
2.3 剪枝
剪枝通过移除冗余参数或结构降低计算与存储。非结构化剪枝可以获得高稀疏率,但只有在硬件支持稀疏张量核心或 2:4 半结构化模式时才能转化为实际加速。SparseGPT 在无需重训练的情况下将大规模 GPT 模型剪枝到至少 50% 稀疏度,并可扩展到 2:4 与 4:8 模式[8]。Wanda 以权重幅值乘以输入激活范数作为重要性度量,按输出通道比较后剪枝,避免了二阶重建的计算开销[9]。结构化剪枝直接移除层、注意力头或前馈网络通道,能够被通用硬件直接加速。LLM-Pruner 利用依赖图进行结构化剪枝,并通过低秩适配恢复精度[10];Sheared LLaMA 将结构化剪枝与继续预训练结合,以较少算力获得更小的模型[11]。ShortGPT 与“深层无效”研究进一步指出,部分深层 Transformer 层的输入输出表示高度相似,移除后对困惑度影响有限[12,13]。这些发现对出行模型有直接启示:与其在每一层均匀压缩,不如优先压缩冗余层,把容量留给处理约束、实体和工具调用的关键层。
2.4 蒸馏
知识蒸馏让小型学生模型学习教师模型的输出分布。经典方法使用带温度 softmax 的软标签,并以 KL 散度作为损失[1]。对于自回归语言模型,标准的前向 KL 容易让学生高估教师分布的低概率区域;MiniLLM 改用反向 KL,并给出同策略优化方法,使学生在自己生成的序列上接受教师反馈[14]。GKD 系统研究了同策略蒸馏,指出训练与推理序列分布不一致是自回归蒸馏的核心问题,并允许在前向与反向 KL 之间插值[15]。DistiLLM 提出 skew KL 目标与自适应离策略策略,在效果与训练成本之间取得折中[16]。出行场景的蒸馏还有两个特殊要求:一是长程规划中的约束跟踪,二是地点、时间、价格等实体的精确复制。通用蒸馏目标通常按 token 平均,容易稀释少量但关键的约束 token,因此需要在损失中加入任务权重与实体权重。
2.5 出行场景中的语言模型
出行任务的语言模型研究大致分为三类。第一类是旅行规划基准与智能体,TravelPlanner 构造了需要满足预算、开放时间、交通与常识约束的多日旅行规划任务,强调语言智能体在真实约束下的规划失败模式[17]。第二类是驾驶场景的多模态语言模型,DriveLM 将感知、预测与规划组织为图式视觉问答[18];DriveGPT4 探索可解释的端到端驾驶[19];LMDrive 将语言指令与闭环驾驶仿真结合[20]。第三类是端侧产品化实践,MobileLLM 与 Apple Intelligence 分别从亚十亿参数架构和端云协同系统角度给出参考[21,22]。这些工作建立了任务、数据和评测基础,但压缩通常不是其研究重点;反过来,压缩研究也很少使用出行任务作为验收场景。本文的工作位于两者的交叉处:以出行任务为约束来源和验收对象,系统讨论量化、蒸馏与剪枝的协同设计。
2.6 小结与研究空白
综上,现有研究在单轴压缩上已经相当充分,但仍存在三个空白。其一,评测目标以平均精度为主,缺少对硬约束满足、长尾实体和安全风险的统一度量。其二,三条压缩轴线多被独立研究,缺少关于顺序、交互和预算分配的工程判据。其三,端侧部署验证常停留在实验室样机,缺少对热降频、弱网回退、灰度发布和回滚的系统性讨论。本文不提出新的单轴压缩算法,而是针对这三个空白给出设计框架、评测协议和可执行清单。
3 Method
3.1 Problem Formulation
本文将一次出行请求表示为一个三元组 ( x , c , y ) (x, c, y) (x,c,y)。其中 x x x 是用户输入,可能包含语音转写文本、图片或地图点击; c c c 是上下文,包括当前位置、时间、用户偏好、订单状态、检索到的地点列表与工具返回; y y y 是期望输出,可能是自然语言答复、结构化行程、工具调用参数或三者的组合。模型 f θ f_\theta fθ 以 ( x , c ) (x,c) (x,c) 为输入,自回归地生成 y y y。压缩的目标不是最小化参数量,而是在给定场景约束下,找到一个配置 π \pi π,使模型在出行任务分布上的质量下降、时延、能耗、内存与安全风险同时可接受。
一个压缩配置可以写成五元组:
π = ( m , b w , b a , b k v , g ) , \pi = (m,\; b_w,\; b_a,\; b_{kv},\; g), π=(m,bw,ba,bkv,g),
其中 m m m 是结构化剪枝掩码, b w b_w bw 是权重位宽, b a b_a ba 是激活位宽, b k v b_{kv} bkv 是键值缓存位宽, g g g 是量化分组大小。学生模型参数 θ S \theta_S θS 由剪枝后的架构决定,并在蒸馏与量化感知训练中更新。若某些层采用混合精度,则 b w b_w bw 与 b a b_a ba 扩展为逐层向量。本文不把低秩分解、权重共享等结构设计纳入形式化,但在剪枝恢复阶段会使用低秩适配,并在第 3.4 节讨论其与剪枝的关系。
场景约束用一个向量表示:
c = ( L 95 , L 99 , E , M , A min , S max , R cloud ) , \mathbf{c} = \left(L_{95},\; L_{99},\; E,\; M,\; A_{\min},\; S_{\max},\; R_{\text{cloud}}\right), c=(L95,L99,E,M,Amin,Smax,Rcloud),
其中 L 95 L_{95} L95 与 L 99 L_{99} L99 分别是端到端时延的第 95 与第 99 百分位,单位为毫秒; E E E 是单次请求的能耗,单位为焦耳; M M M 是峰值内存,单位为兆字节; A min A_{\min} Amin 是任务质量下限; S max S_{\max} Smax 是安全违规率上限; R cloud R_{\text{cloud}} Rcloud 表示允许的云端回退比例或是否允许上传原始位置数据。不同场景不必使用全部维度,但时延、内存与质量下限是必选维度。对于车载实时语音, L 95 L_{95} L95 与 S max S_{\max} Smax 是主导约束;对于旅行规划智能体, A min A_{\min} Amin 与长上下文内存是主导约束;对于弱网或飞行模式, R cloud R_{\text{cloud}} Rcloud 接近零,离线可用性成为硬约束。
给定约束向量,压缩可行域定义为:
Π ( c ) = { π : L 95 ( π ; H ) ≤ L ˉ , L 99 ( π ; H ) ≤ L ˉ ′ , E ( π ; H ) ≤ E ˉ , M ( π ) ≤ M ˉ , A ( π ; D travel ) ≥ A ‾ , S ( π ; D safe ) ≤ S ˉ , R cloud ( π ) ≤ R ˉ } , \Pi(\mathbf{c}) = \left\{ \pi \;:\; \begin{aligned} & L_{95}(\pi;\mathcal{H}) \le \bar L, \quad L_{99}(\pi;\mathcal{H}) \le \bar L', \\ & E(\pi;\mathcal{H}) \le \bar E, \quad M(\pi) \le \bar M, \\ & A(\pi;\mathcal{D}_{\text{travel}}) \ge \underline A, \quad S(\pi;\mathcal{D}_{\text{safe}}) \le \bar S, \\ & R_{\text{cloud}}(\pi) \le \bar R \end{aligned} \right\}, Π(c)=⎩ ⎨ ⎧π:L95(π;H)≤Lˉ,L99(π;H)≤Lˉ′,E(π;H)≤Eˉ,M(π)≤Mˉ,A(π;Dtravel)≥A,S(π;Dsafe)≤Sˉ,Rcloud(π)≤Rˉ⎭ ⎬ ⎫,
其中 H \mathcal{H} H 表示目标硬件与运行时, D travel \mathcal{D}_{\text{travel}} Dtravel 是出行任务评测集, D safe \mathcal{D}_{\text{safe}} Dsafe 是安全与红队评测集。硬件与运行时必须显式出现在约束中,因为同一个压缩配置在不同 NPU 算子库、不同内存带宽和不同散热条件下的实际时延可能相差很大。离线精度再高,只要目标运行时没有对应的低比特算子,压缩收益就无法兑现。
在可行域内,本文采用“质量优先、效率约束”的标量化目标:
$$
\min_{\pi \in \Pi(\mathbf{c})} ;
\mathcal{J}(\pi) =
\mathbb{E}{(x,c,y)\sim\mathcal{D}{\text{travel}}}
\left[\ell\left(f_{\pi}(x,c),y\right)\right]
- \lambda_1 \frac{L_{95}(\pi;\mathcal{H})}{\bar L}
- \lambda_2 \frac{E(\pi;\mathcal{H})}{\bar E},
$$
其中 ℓ \ell ℓ 是任务损失, λ 1 , λ 2 ≥ 0 \lambda_1,\lambda_2\ge 0 λ1,λ2≥0 是工程权重。该目标不是唯一的;在产品决策中,更常见的做法是先固定质量下限 A ‾ \underline A A,再在时延—能耗平面上寻找帕累托前沿。在满足内存与安全约束的前提下,配置 π \pi π 帕累托支配 π ′ \pi' π′,当且仅当
A ( π ) ≥ A ( π ′ ) , L 95 ( π ) ≤ L 95 ( π ′ ) , E ( π ) ≤ E ( π ′ ) , A(\pi)\ge A(\pi'),\quad L_{95}(\pi)\le L_{95}(\pi'),\quad E(\pi)\le E(\pi'), A(π)≥A(π′),L95(π)≤L95(π′),E(π)≤E(π′),
且至少一个不等式严格成立。本文建议报告整个前沿,而不是只报告一个“最优点”,因为不同车型、不同手机档位和不同业务优先级会选择不同的工作点。
表 1 汇总了本文使用的主要符号。
| 符号 | 含义 | 备注 |
|---|---|---|
| f θ f_\theta fθ | 大语言模型 | 教师或学生 |
| π \pi π | 压缩配置 | 剪枝、位宽、分组、KV 位宽 |
| m m m | 结构化剪枝掩码 | 层、头、通道 |
| b w , b a , b k v b_w,b_a,b_{kv} bw,ba,bkv | 权重、激活、KV 缓存位宽 | 4/8/16 bit |
| g g g | 量化分组大小 | 逐通道或分组 |
| c \mathbf{c} c | 场景约束向量 | 时延、能耗、内存、质量、安全 |
| Π ( c ) \Pi(\mathbf{c}) Π(c) | 压缩可行域 | 由约束定义 |
| A ( π ) A(\pi) A(π) | 任务质量 | 约束满足、实体、工具调用等 |
| S ( π ) S(\pi) S(π) | 安全违规率 | 越界建议、危险内容等 |
| L 95 , L 99 L_{95},L_{99} L95,L99 | 尾时延 | 端到端,含预处理 |
| M K V M_{KV} MKV | KV 缓存内存 | 随序列长度线性增长 |
3.2 Framework Overview
MobiComp 由四个阶段组成:场景画像、敏感度画像、预算分配与协同压缩、部署验证与回退。图 1 给出整体流程。与“先选一个压缩算法、再调参”的做法不同,MobiComp 把压缩比视为约束求解的输出,而不是输入。工程团队先回答“这个场景最多允许多少时延、多少内存、多少安全风险”,再让算法在可行域内寻找配置。
┌─────────────────────────────────────────────────────────────────────┐
│ 阶段 1:场景画像 │
│ 请求分布 / 上下文长度 / 并发 / 网络 / 热状态 / 隐私与安全等级 │
│ 输出:约束向量 c,验收阈值,云端回退策略 │
└───────────────────────────────┬─────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ 阶段 2:敏感度画像 │
│ 分层重建误差 / 分任务质量 / 实体召回 / 模态敏感度 / 安全探针 │
│ 输出:层—任务—实体敏感度矩阵,关键能力保护清单 │
└───────────────────────────────┬─────────────────────────────────────┘
↓
┌──────────────────┬──────────────────┬───────────────────────────────┐
│ 阶段 3a:结构化剪枝 │ 阶段 3b:蒸馏恢复 │ 阶段 3c:混合精度量化 │
│ 层 / 头 / FFN 通道 │ 离策略预热 + 同策略 │ W4/W8 + KV8 + QAT/PTQ │
│ 迭代剪枝 + 恢复 │ 实体与安全 token 加权│ 异常值处理 + 算子核对 │
└──────────────────┴─────────┬────────┴───────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────────┐
│ 阶段 4:部署验证与回退 │
│ 离线质量 / 在线尾时延 / 长尾与安全 / 热降频 / 灰度 / 回滚 │
│ 输出:上线、限流、降级或回滚决策 │
└─────────────────────────────────────────────────────────────────────┘
图 1:MobiComp 的四阶段流程。阶段 3 的三条轴线并非严格串行;默认顺序与替代顺序在第 3.7 节讨论。
框架遵循五条设计原则。第一,约束优先:压缩比是约束求解的结果,不能先定“必须压到 4 bit”再倒推验收标准。第二,敏感度驱动:位宽和稀疏度应分配给对出行任务影响最大的位置,而不是全模型均匀分配。第三,硬件在环:只承认目标运行时实际兑现的加速;理论 FLOPs 下降不等于端到端时延下降。第四,默认可回滚:每一次剪枝、蒸馏和量化都保留检查点与验收记录,任何一步不达标都能退回上一版。第五,安全单调:如果某个配置提高了安全违规率,即使平均质量更高,也应拒绝;安全指标不能被执行平均值的提升所抵消。
3.3 Constraint Profiling and Budget Allocation
3.3.1 场景画像
场景画像的第一步是刻画请求分布,而不是先看模型。需要统计的变量包括:输入模态(语音、文本、图片)、输入长度分布、输出长度分布、上下文长度分布、工具调用轮数、并发量、网络状态分布、设备温度与降频状态。出行请求通常呈双峰分布:一端是“打开空调”“导航回家”这类短指令,输入十几个 token,输出也很短;另一端是“帮我安排三天两晚的亲子行程,预算三千,住在地铁沿线”这类长规划,输入包含多轮工具返回,输出可达数千 token。两类请求对压缩的敏感点不同:短指令更受首 token 时延和唤醒链路影响,长规划更受 KV 缓存和长程一致性影响。
第二步是把产品需求翻译成可测阈值。例如,“不能让用户等太久”应翻译为特定设备、特定网络、特定请求切片上的 L 95 L_{95} L95 与 L 99 L_{99} L99;“不能给出危险建议”应翻译为红队集上的违规率上限与人工复核通过率;“不能泄露位置”应翻译为原始轨迹不出设备、日志脱敏与云端回退的数据最小化策略。无法量化的需求不应直接进入压缩目标,否则团队会在上线前才发现验收标准不一致。
表 2 给出四类出行形态的约束画像。表中的“严格/中等/宽松”是相对描述,具体阈值必须由产品与硬件团队共同确定。
| 场景形态 | 主导约束 | 可接受的压缩策略 | 不应采用的做法 |
|---|---|---|---|
| 车载实时语音 | 尾时延严格、功耗与散热受限、安全等级高 | 结构化剪枝 + W4 权重 + W8 KV;短输出;强回退 | 未做热降频验证就全量 W4;长自由文本输出 |
| 手机出行应用 | 内存与能耗中等、网络不稳定、隐私敏感 | W4/W8 混合 + KV 量化;端云路由;离线模板 | 依赖云端且无离线兜底;上传原始轨迹 |
| 旅行规划智能体 | 质量与长上下文优先、时延宽松、工具调用多 | 结构化剪枝 + 蒸馏 + W8;长上下文检索压缩 | 为追求 4 bit 牺牲约束跟踪;无 schema 校验 |
| 离线应急模式 | 完全离线、内存严格、功能受限 | 小模型 + 规则/模板 + 检索;W4 或更低位宽 | 让大模型自由生成关键信息;无确定性兜底 |
3.3.2 敏感度画像
敏感度画像回答“压缩哪里最痛”。本文建议至少做四个维度。
第一是层级重建误差。对第 l l l 层的权重 W l W_l Wl 与校准输入 X l X_l Xl,定义相对重建误差:
e l ( b ) = ∥ W l X l − W ^ l ( b ) X l ∥ F 2 ∥ W l X l ∥ F 2 , e_l(b) = \frac{\left\| W_l X_l - \widehat{W}_l^{(b)} X_l \right\|_F^2} {\left\| W_l X_l \right\|_F^2}, el(b)=∥WlXl∥F2 WlXl−W l(b)Xl F2,
其中 W ^ l ( b ) \widehat{W}_l^{(b)} W l(b) 是位宽为 b b b 的量化权重。该指标计算便宜,适合在压缩前做粗筛,但它只反映局部输出误差,不能替代任务级评测。
第二是任务级敏感度。将出行任务划分为意图识别、槽位抽取、地点检索、路线约束、价格与时间计算、多日规划、工具调用、安全拒答等切片,分别计算压缩前后的质量差:
Δ A k ( π ) = A k ( π ) − A k ( π 0 ) , \Delta A_k(\pi) = A_k(\pi) - A_k(\pi_0), ΔAk(π)=Ak(π)−Ak(π0),
其中 π 0 \pi_0 π0 是未压缩基线。任务级敏感度通常比层级误差更能预测上线风险。一个在通用困惑度上几乎无损的配置,可能让“时间窗约束”切片的通过率下降很多。
第三是实体级敏感度。出行任务高度依赖地点名、地址、路线编号、时间、日期、价格、币种、电话号码等实体。可以把实体召回率、实体复制准确率和实体幻觉率单独统计。对量化而言,嵌入层与输出层对稀有实体尤其敏感;对剪枝而言,负责实体复制与上下文检索的注意力头更敏感。实体级指标应作为敏感度画像的一等公民,而不是任务级指标的附属。
第四是模态与安全敏感度。多模态出行模型包含视觉编码器、语音编码器与语言解码器,三者的压缩敏感度不同。视觉编码器通常可以承受更低位宽,语言解码器中的约束推理部分则应保留更高精度。安全敏感度通过红队集测量,包括危险驾驶建议、错误交通规则、诱导逃票、泄露他人位置等;该指标不参与平均,而是作为硬门槛。
校准集的设计直接决定敏感度画像是否可信。本文建议按场景切片分层抽样,覆盖:短指令与长规划、常见地点与长尾地点、标准普通话与方言口音、清晰语音与噪声语音、工作日与节假日、正常网络与弱网。校准集与最终评测集必须分离;长尾集与安全集不参与任何调参,只用于验收。
3.3.3 预算分配
在得到敏感度画像后,把压缩预算分配写成一个带约束的背包问题。设模型被划分为 L L L 个可独立配置的层组,每个层组可选择位宽 b ∈ { 4 , 8 , 16 } b\in\{4,8,16\} b∈{4,8,16} 或剪枝比例 s ∈ { 0 , 0.1 , 0.2 , … } s\in\{0,0.1,0.2,\ldots\} s∈{0,0.1,0.2,…}。令 u l ( b , s ) u_l(b,s) ul(b,s) 表示该层组采用配置 ( b , s ) (b,s) (b,s) 时的质量效用, m l ( b , s ) m_l(b,s) ml(b,s) 表示内存占用, c l ( b , s ) c_l(b,s) cl(b,s) 表示计算或时延代价。预算分配求解:
max { b l , s l } ∑ l = 1 L u l ( b l , s l ) s.t. ∑ l = 1 L m l ( b l , s l ) ≤ M budget , ∑ l = 1 L c l ( b l , s l ) ≤ C budget . \max_{\{b_l,s_l\}} \sum_{l=1}^{L} u_l(b_l,s_l) \quad \text{s.t.} \quad \sum_{l=1}^{L} m_l(b_l,s_l) \le M_{\text{budget}},\; \sum_{l=1}^{L} c_l(b_l,s_l) \le C_{\text{budget}}. {bl,sl}maxl=1∑Lul(bl,sl)s.t.l=1∑Lml(bl,sl)≤Mbudget,l=1∑Lcl(bl,sl)≤Cbudget.
当层组数量较少时,可以用动态规划精确求解;当层组较多时,按“单位字节效用”贪心分配即可,复杂度为 O ( L K log ( L K ) ) O(LK\log(LK)) O(LKlog(LK)),其中 K K K 是每个层组的候选配置数。贪心解不保证全局最优,但在敏感度估计本身有噪声的情况下,精确求解的额外收益通常有限。工程上更重要的是把安全关键层从搜索空间中固定下来:嵌入层、输出层、归一化层、首尾层以及承担约束跟踪的层组应设置精度下限。
表 3 给出一个默认精度策略。它是工程起点,不是普适结论;实际配置应由第 4 节的消融实验确定。
| 组件 | 默认策略 | 理由 |
|---|---|---|
| 嵌入层与输出层 | W8 或 FP16 | 稀有地名、商户名、符号与多语言词表敏感 |
| 首层与末层 | W8 | 输入表示与输出 logits 对误差更敏感 |
| 注意力与 FFN 主体 | W4 权重,W8 激活 | 内存收益主要来自权重;激活保持 8 bit 以降风险 |
| KV 缓存 | 8 bit,近期窗口可保留 FP16 | 长上下文下 KV 是内存主项;近期 token 更关键 |
| 归一化与残差 | FP16 | 数值稳定性优先,参数量占比低 |
| 安全关键头/层 | 不低于 W8 | 约束跟踪、否定词、时间计算等能力保护 |
算法 1 给出预算分配的伪代码。
输入:敏感度画像 S,层组集合 L,内存预算 M,时延预算 C
输出:逐层组的位宽与剪枝比例
1. 固定安全关键层组的精度下限;
2. 对每个未固定层组、每个候选配置,估计效用 u 与代价 m, c;
3. 计算单位字节效用 u/m,按降序排序;
4. 初始化所有层组为最低成本配置;
5. 依次尝试升级到更高精度或更低剪枝率,若满足 M 与 C 则接受;
6. 对候选解做任务级与安全级快速验证;
7. 若不满足质量下限,回退最近一次升级并继续;
8. 返回配置及每条约束的余量。
3.3.4 校准与隐私
校准数据应来自目标场景,而不是通用网页语料。对出行场景,校准集至少应包含地点检索结果、时间与价格表达、工具调用返回、语音转写噪声和方言表达。若校准数据包含真实轨迹或订单,应在设备端完成校准,或在上传前做去标识化、聚合与访问控制。压缩本身不是隐私保护技术;量化后的模型仍可能记忆训练数据,不能把“端侧运行”当作合规的充分条件。
3.4 Structured Pruning
3.4.1 为什么优先结构化剪枝
非结构化剪枝可以获得很高的稀疏率,但其加速依赖稀疏算子。若目标 NPU 只支持稠密矩阵乘,非结构化稀疏只能节省存储,不能降低时延;相反,稀疏索引与不规则访存还可能拖慢推理。结构化剪枝直接移除层、注意力头、KV 头或 FFN 通道,得到的仍是稠密张量,可以被通用运行时加速。对于车机与手机,本文建议默认优先结构化剪枝;只有在硬件明确支持 2:4 半结构化稀疏或稀疏张量核心时,才把非结构化稀疏作为主路径。
结构化剪枝还有一个常被忽略的收益:移除 KV 头会直接降低 KV 缓存。对长上下文出行请求,KV 缓存可能超过权重本身;此时剪掉一个 KV 头,比剪掉同等参数量的 FFN 通道更能缓解内存压力。剪枝设计必须同时看参数量、FLOPs、KV 内存和算子支持,不能只看稀疏率。
3.4.2 剪枝单元与依赖约束
可选单元包括:整层、注意力头、KV 头、FFN 中间通道、隐藏维度。不同单元的硬件收益不同。整层移除线性降低深度与每 token 计算量,但可能损害多步推理;注意力头移除降低注意力的计算与 KV 缓存,但受分组查询注意力(Grouped-Query Attention, GQA)的分组比例约束;FFN 通道移除降低参数量与计算量,通常最容易恢复;隐藏维度剪枝会改变残差流宽度,牵连所有层,工程风险最高。
依赖约束必须在剪枝前建模。例如,残差连接要求各层隐藏维度一致;GQA 要求查询头数与 KV 头数保持整数倍关系;张量并行要求通道数能被切分粒度整除。违反这些约束的“剪枝”无法直接部署,或者需要额外的重参数化。建议使用依赖图描述这些约束,并在搜索空间中直接排除非法配置。
3.4.3 重要性度量
本文建议组合三类重要性度量。第一类是一阶泰勒近似:
I u = ∣ ∑ i ∈ u w i ∂ L ∂ w i ∣ , I_u = \left| \sum_{i\in u} w_i \, \frac{\partial \mathcal{L}}{\partial w_i} \right|, Iu= i∈u∑wi∂wi∂L ,
其中 u u u 是一个结构单元, w i w_i wi 是该单元内的权重。该分数近似移除单元后损失的一阶变化,计算一次反向传播即可得到。第二类是激活范数:
I u = E x ∼ D cal [ ∥ a u ( x ) ∥ 2 ] , I_u = \mathbb{E}_{x\sim\mathcal{D}_{\text{cal}}} \left[ \left\| a_u(x) \right\|_2 \right], Iu=Ex∼Dcal[∥au(x)∥2],
它衡量该单元在真实输入上的活跃程度。第三类是块影响度(Block Influence):
B I l = 1 − ⟨ h l , h l + 1 ⟩ ∥ h l ∥ 2 ∥ h l + 1 ∥ 2 , BI_l = 1 - \frac{\left\langle h_l, h_{l+1} \right\rangle} {\left\| h_l \right\|_2 \left\| h_{l+1} \right\|_2}, BIl=1−∥hl∥2∥hl+1∥2⟨hl,hl+1⟩,
其中 h l h_l hl 与 h l + 1 h_{l+1} hl+1 分别是第 l l l 层输入与输出的隐藏状态。 B I l BI_l BIl 越接近 0,说明该层对表示的改变越小,越可能是冗余层。ShortGPT 与深层冗余研究都使用了类似思想[12,13]。
单一指标容易偏置。本文建议把上述分数在层组内做归一化后加权求和,并加入任务探针分数。任务探针包括:时间加减、日期归一化、价格比较、地点复制、否定词理解、工具调用参数生成。对每个探针,测量移除候选单元后的准确率下降;下降越大,该单元越应保留。组合权重通过验证集调节,不参与最终测试。
3.4.4 迭代剪枝与恢复
一次性大幅结构化剪枝通常难以恢复。本文建议采用迭代流程:每轮只移除一小部分单元,随后用轻量适配或蒸馏恢复,再评估;重复若干轮直到达到目标稀疏度或质量下限。每轮都保留检查点,并记录质量、时延、内存与安全指标。若某一轮导致安全指标越界,应回退该轮并降低剪枝比例,而不是继续加码。
恢复阶段可以使用低秩适配、轻量全参数微调或蒸馏。对十亿参数以下的学生模型,轻量全参数微调通常可行;对更大的模型,低秩适配更省资源,但其恢复能力有限,不能替代蒸馏。本文建议把“恢复”视为压缩流程的一部分,而不是剪枝后的可选步骤;没有恢复预算的剪枝方案不应进入候选集。
3.4.5 出行场景的特殊考虑
出行任务对深度和宽度的需求不同。短指令理解更依赖宽度与词表覆盖;多日规划、约束跟踪和多步工具调用更依赖深度与长程注意力。因此,不能用一个统一的剪枝比例覆盖所有场景。本文建议按场景分档:车载短指令可以更激进地剪层;旅行规划应优先剪 FFN 通道与冗余头,保留深层推理能力;手机出行应用介于两者之间。
地点实体是另一个敏感点。嵌入层与输出层中的稀有 token 可能只在少数地名中出现,按全局频率剪枝很容易把它们误伤。建议在重要性度量中加入实体频率分层:对长尾地名、方言词、路线编号赋予更高的保护权重;剪枝后单独测量实体召回与复制准确率。若实体指标下降超过阈值,应优先恢复嵌入层与相关注意力头,而不是整体回退。
3.5 Distillation
3.5.1 教师、数据与目标
蒸馏的起点是一个高质量教师。教师可以是全精度领域适配模型,也可以是云端大模型;前者提供完整 logits,便于 token 级蒸馏,后者通常只提供采样输出,蒸馏信号更稀疏。教师本身的能力上限决定学生的上限;如果教师在时间约束、价格计算或安全拒答上就不可靠,蒸馏只会把错误复制给学生。因此,教师应先经过出行领域适配与安全对齐,再进入蒸馏流程。
蒸馏数据应覆盖四类:通用指令数据,用于维持语言能力与泛化;出行领域数据,用于学习意图、槽位、地点检索、路线约束与工具调用;长尾数据,包括生僻地名、方言、噪声语音、节假日与临时管制;安全数据,包括危险建议的拒绝、隐私请求的处理、超出能力边界时的澄清与升级。四类数据的比例不应拍脑袋固定,而应通过消融确定;本文建议先保证每一类都有足够覆盖,再调比例。
3.5.2 蒸馏目标
本文采用“交叉熵 + 分布蒸馏 + 任务约束 + 安全约束”的组合损失:
$$
\mathcal{L}{D} =
\alpha \mathcal{L}{CE}
- \beta \mathcal{L}_{KD}
- \gamma \mathcal{L}_{task}
- \delta \mathcal{L}_{safe},
$$
其中 L C E \mathcal{L}_{CE} LCE 是教师生成或人工标注序列上的交叉熵, L t a s k \mathcal{L}_{task} Ltask 是约束满足、实体复制或工具调用 schema 的任务损失, L s a f e \mathcal{L}_{safe} Lsafe 是安全拒答与越界检测损失。分布蒸馏项定义为:
L K D = E x ∼ D , y ^ ∼ p S [ ∑ t = 1 ∣ y ^ ∣ w t K L ( p S ( τ ) ( ⋅ ∣ x , y ^ < t ) ∥ p T ( τ ) ( ⋅ ∣ x , y ^ < t ) ) ] , \mathcal{L}_{KD} = \mathbb{E}_{x\sim\mathcal{D},\;\hat{y}\sim p_S} \left[ \sum_{t=1}^{|\hat{y}|} w_t \, \mathrm{KL}\left( p_S^{(\tau)}(\cdot\mid x,\hat{y}_{<t}) \;\middle\|\; p_T^{(\tau)}(\cdot\mid x,\hat{y}_{<t}) \right) \right], LKD=Ex∼D,y^∼pS t=1∑∣y^∣wtKL(pS(τ)(⋅∣x,y^<t) pT(τ)(⋅∣x,y^<t)) ,
其中 y ^ \hat{y} y^ 是学生自己生成的序列, p T ( τ ) p_T^{(\tau)} pT(τ) 与 p S ( τ ) p_S^{(\tau)} pS(τ) 是温度为 τ \tau τ 的教师与学生分布, w t w_t wt 是 token 权重。该式采用同策略采样与反向 KL 形式,目的是让学生在自身容易到达的序列上接受教师纠正,并避免学生高估教师分布的低概率区域[14,15]。实际实现中也可以在前向 KL 与反向 KL 之间插值:
$$
\mathcal{L}_{KD}^{(\lambda)} =
\lambda,\mathrm{KL}\left(p_T \Vert p_S\right)
- (1-\lambda),\mathrm{KL}\left(p_S \Vert p_T\right),
$$
其中 λ ∈ [ 0 , 1 ] \lambda\in[0,1] λ∈[0,1] 是前向 KL 的权重; λ \lambda λ 越小,越偏向反向 KL,越强调集中学习教师的高概率模式。对出行规划,本文倾向于较小的 λ \lambda λ,因为学生容量有限,强行覆盖教师的全部低概率分支可能稀释对主要行程的约束跟踪;对开放式问答,可以适当提高 λ \lambda λ,让学生覆盖更多合理表达。
token 权重 w t w_t wt 是出行蒸馏的关键设计。建议对三类 token 加权:
$$
w_t = 1 + \eta_1 \mathbf{1}\left[t\in\mathcal{E}\right]
- \eta_2 \mathbf{1}\left[t\in\mathcal{N}\right]
- \eta_3 \mathbf{1}\left[t\in\mathcal{S}\right],
$$
其中 E \mathcal{E} E 是地点、商户、地址、路线等实体 token, N \mathcal{N} N 是时间、日期、价格、距离、数量等数值 token, S \mathcal{S} S 是否定词、安全约束与拒答触发 token。 η 1 , η 2 , η 3 \eta_1,\eta_2,\eta_3 η1,η2,η3 通过验证集调节。通用蒸馏按 token 平均,会让少量但关键的约束 token 被大量普通 token 淹没;加权后,学生更容易学会“几点前到”“多少钱以内”“不要走某条路”这类决定任务成败的表达。
3.5.3 同策略与离策略
离策略蒸馏使用固定的教师生成序列,训练成本低,但存在暴露偏差:学生训练时只见到教师的高质量前缀,推理时却会进入自己的错误前缀。同策略蒸馏让学生生成序列,再由教师对这些序列打分或提供分布,能缓解分布错配,尤其适合长程规划与多步工具调用[15]。代价是需要在线生成,训练吞吐下降。本文建议采用混合策略:先用离策略数据做预热,让学生达到基本可用;再用同策略数据做精调,重点修复学生自己犯的错误。对短指令任务,离策略通常足够;对多日规划、改签、复杂约束满足,同策略的收益更值得投入。
如果教师只能通过接口访问,无法获得 logits,则只能使用序列级信号,例如教师对完整计划的评分、排序或自然语言批评。此时可以把教师评分转化为奖励,结合约束验证器做拒绝采样或偏好优化。该路径成本更高,信号更稀疏,但在教师不可白盒获取时是可行替代。
3.5.4 蒸馏与剪枝的配合
蒸馏通常跟在剪枝之后,用于恢复剪枝造成的容量损失。这里有一个常见误区:把蒸馏当成“万能恢复”,对任意激进的剪枝都期待无损。实际上,学生架构决定了容量上限;如果剪枝移除了完成任务所必需的结构,蒸馏只能让学生更接近教师,不能凭空创造容量。因此,剪枝比例应与学生容量、数据量和蒸馏预算一起规划。工程上可以先做小比例剪枝与蒸馏,观察恢复曲线,再决定是否继续加码。
另一个误区是只蒸最终答案。对出行任务,过程同样重要:工具调用顺序、参数校验、约束检查、失败重试都影响任务成功率。建议在蒸馏数据中加入中间轨迹,包括工具调用、观察结果、修正动作与最终答复;对长程任务,可以使用序列级损失或过程奖励,避免学生只模仿最终文本而忽略中间校验。
3.5.5 出行场景的特殊考虑
出行蒸馏应特别关注三类能力。第一是约束跟踪:学生要记住用户给出的时间、预算、人数、偏好,并在多轮工具返回后仍然遵守。可以在训练中加入“约束回读”与“冲突检测”样本,要求学生在生成计划前复述关键约束。第二是实体精确复制:地点名、地址、订单号不能改写;可以对实体 token 施加更高的损失权重,并在解码时使用检索结果约束。第三是安全边界:当用户要求危险驾驶、规避交通规则或泄露他人位置时,学生应拒绝、澄清或升级,而不是自由发挥。安全样本应包含正例与负例,避免学生学会“一律拒绝”而损害正常体验。
3.6 Quantization
3.6.1 量化方案选择
量化方案的选择取决于瓶颈在内存还是计算。自回归解码的 batch size 通常较小,每生成一个 token 都要把全部权重读一遍,因而是内存带宽受限;此时权重量化能直接降低访存字节数,收益明显。长提示的预填充阶段是计算受限,激活量化与算子融合更重要。表 4 给出常见方案与适用条件。
| 方案 | 量化对象 | 主要收益 | 适用条件 | 风险 |
|---|---|---|---|---|
| W8A16 | 权重 8 bit | 内存减半,精度稳 | 大多数端侧运行时 | 计算加速有限 |
| W4A16 | 权重 4 bit | 内存显著下降,解码加速 | 支持 4 bit 权重算子 | 长尾实体与数值精度 |
| W8A8 | 权重与激活 8 bit | 预填充与解码均可加速 | 支持 INT8 矩阵乘 | 激活异常值 |
| W4A8 | 权重 4 bit、激活 8 bit | 内存与计算折中 | 新一代 NPU | 算子支持不完整 |
| W4A4 | 权重与激活 4 bit | 最大压缩 | 支持 4 bit 加速与旋转 | 精度风险高,需 QAT |
训练后量化(Post-Training Quantization, PTQ)成本低,适合 W8 与部分 W4;量化感知训练(Quantization-Aware Training, QAT)把伪量化算子放入训练图,适合激进 W4 或安全关键场景。对出行模型,本文建议先用 PTQ 建立基线,再对不达标的层组启用 QAT;不要在未验证 PTQ 的情况下直接上 QAT,否则难以判断收益来自量化还是额外训练。
3.6.2 粒度与开销
量化粒度越细,精度通常越好,但元数据开销越大。逐张量量化最简单,逐通道量化更稳,分组量化在两者之间。对权重 W W W,分组大小为 g g g 时,每组存储一个缩放因子(以及可选的零点)。若缩放因子用 b s b_s bs 位存储,则相对开销约为:
overhead ≈ b s g b w , \text{overhead} \approx \frac{b_s}{g\, b_w}, overhead≈gbwbs,
其中 b w b_w bw 是权重位宽。以 FP16 缩放因子、 g = 128 g=128 g=128、 b w = 4 b_w=4 bw=4 为例,开销约为 16 / ( 128 × 4 ) = 3.1 % 16/(128\times4)=3.1\% 16/(128×4)=3.1%;若 g = 32 g=32 g=32,开销升到约 12.5%。分组太小会侵蚀量化的内存收益,太大则精度下降。工程上应从 128 或 64 开始,在目标模型上做消融。
非对称量化比对称量化多一个零点,能更好地处理偏斜分布,但会增加算子复杂度。对权重,对称量化通常足够;对激活,非对称量化更常见。无论哪种,都应把缩放因子与零点的计算方式固定下来,确保训练、校准与部署使用同一套数值约定。
3.6.3 异常值处理
Transformer 的激活中存在大幅值异常值,直接量化会显著抬高误差。SmoothQuant 通过等价变换把激活的量化难度迁移到权重[4];AWQ 依据激活分布保护显著权重通道[5];QuaRot 通过旋转把异常值分散到多个维度[7];GPTQ 则用二阶信息减小逐层量化误差[3]。这些方法并不互斥,实际方案可以组合,但每增加一种变换,都要检查目标运行时是否支持相应的算子与重参数化。
校准数据必须匹配部署分布。用通用网页文本校准的缩放因子,未必适合包含大量地点名、时间与价格 token 的出行请求。建议校准集按任务切片分层,并单独检查实体 token 与数值 token 的重建误差。若某类 token 的误差显著偏高,应提高对应层组的精度,或对该类 token 使用更细的分组。
3.6.4 KV 缓存量化
对长上下文出行请求,KV 缓存是内存预算的主要变量。其大小可以近似为:
M K V = 2 ⋅ N l ⋅ H k v ⋅ d h ⋅ S ⋅ b k v 8 , M_{KV} = 2 \cdot N_l \cdot H_{kv} \cdot d_h \cdot S \cdot \frac{b_{kv}}{8}, MKV=2⋅Nl⋅Hkv⋅dh⋅S⋅8bkv,
其中 N l N_l Nl 是层数, H k v H_{kv} Hkv 是 KV 头数, d h d_h dh 是每头维度, S S S 是序列长度, b k v b_{kv} bkv 是 KV 位宽,因子 2 表示键与值,除以 8 把比特转换为字节。该式说明:序列长度翻倍,KV 内存翻倍;KV 位宽从 16 降到 8,内存减半;减少 KV 头数也会线性降低内存。对多日行程、长地点列表与多轮工具返回, S S S 可能远大于训练时的平均长度,KV 量化与上下文压缩必须单独预算。
KV 量化不能简单地“全 8 bit”。键(Key)在不同通道上的分布差异较大,适合逐通道量化;值(Value)在不同 token 上的分布差异较大,适合逐 token 量化。近期 token 对生成更关键,可以保留更高精度;久远 token 可以量化得更激进,或通过检索、摘要与淘汰机制移出缓存。对出行场景,地点列表和工具返回往往集中在上下文中段,不能只看“最近窗口”;建议按内容类型而不是仅按位置决定保留策略。
3.6.5 混合精度与结构化输出
混合精度是精度与效率的主要调节手段。表 3 给出了默认策略:嵌入层、输出层、首尾层、归一化层与安全关键层保留 W8 或 FP16,注意力与 FFN 主体使用 W4 权重与 W8 激活,KV 缓存使用 8 bit。该策略的依据是误差敏感度,而不是参数占比;嵌入层与输出层虽然参数量大,但对稀有实体与词表覆盖至关重要,不能为了省内存一刀切。
结构化输出是出行场景的另一条红线。工具调用通常要求 JSON 或特定 schema,时间、价格、地点字段必须可解析。量化会改变 logits 分布,可能让模型生成缺引号、错字段或非法日期的 JSON。建议在解码阶段使用语法约束或 JSON schema 约束,在生成后做解析与字段校验;校验失败时重试、降级到模板或回退云端。不要把“平均 JSON 合法率”当作唯一指标,还要看关键字段的语义正确率,例如日期是否在用户允许的范围内、价格是否超过预算。
3.7 Ordering and Interaction
剪枝、蒸馏与量化的顺序不是随意的。不同顺序会改变误差来源、训练难度和硬件适配成本。表 5 比较了四种常见路径。
| 路径 | 顺序 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| A | 剪枝 → 蒸馏 → 量化 | 模块清晰;蒸馏恢复剪枝损失;量化最后落地 | 量化误差未被蒸馏显式建模 | 默认路径;W8 或温和 W4 |
| B | 剪枝 → 量化 → 蒸馏 | 蒸馏可同时恢复剪枝与量化误差 | 量化学生更难教;可能需 QAT | 激进 W4;有充足蒸馏预算 |
| C | 剪枝与蒸馏联合 → 量化 | 容量匹配最好;可端到端优化 | 实现复杂;训练不稳定;成本高 | 高压缩比;目标架构固定 |
| D | 蒸馏到小模型 → 剪枝 → 量化 | 先获得高质量小模型 | 剪枝可能移除已恢复能力 | 已有目标小模型架构 |
本文的默认建议是路径 A:先做结构化剪枝,把架构确定下来;再用离策略预热与同策略精调恢复;最后做 PTQ 或 QAT。若目标位宽为 W8,路径 A 通常足够;若目标为 W4 且压缩比较激进,建议在蒸馏后加入 QAT,或者采用路径 B,让蒸馏显式看到量化误差。若参数压缩超过一半,路径 C 的联合优化更可能保住关键能力,但需要更多数据和算力,且训练不稳定性更高。
误差会累积,也会相互作用。把剪枝误差、蒸馏残差与量化误差简单相加,往往会高估或低估实际损失。建议用因子消融估计交互项:分别训练“只剪枝”“只蒸馏”“只量化”“剪枝+蒸馏”“剪枝+量化”“蒸馏+量化”“三者全开”和“全不开”的配置,比较实际质量。若三者全开的损失明显大于各单项之和,说明存在负交互,应降低某一轴的强度或改变顺序;若小于之和,说明存在正交互,可以进一步压缩。
无论采用哪条路径,都应保留三个基线:全精度教师、未压缩的同架构学生、仅做单轴压缩的学生。只报告“压缩后 vs 教师”会掩盖架构本身的影响;只报告“压缩后 vs 未压缩学生”会掩盖教师上限。三个基线一起报告,才能判断收益来自哪里。
3.8 Training and Inference Pipeline
3.8.1 离线流水线
离线流水线可以概括为以下步骤。
输入:教师模型、出行数据、目标硬件、约束向量 c
输出:可部署的压缩模型、评测报告、回滚包
1. 领域适配教师:用出行指令、工具调用与安全数据微调教师;
2. 构建评测集:场景切片、长尾集、安全集、结构化输出集;
3. 敏感度画像:分层、分任务、分实体、分模态;
4. 预算分配:固定安全关键层,求解位宽与剪枝比例;
5. 结构化剪枝:迭代剪枝,每轮保存检查点;
6. 蒸馏恢复:离策略预热,同策略精调,实体与安全 token 加权;
7. 量化:PTQ 建立基线,必要时 QAT;KV 缓存单独校准;
8. 部署验证:目标硬件上的时延、内存、能耗、热降频与安全评测;
9. 打包签名:记录配置、校准集版本、评测报告与回滚路径;
10. 灰度发布:影子模式、小流量、监控、回滚。
其中第 8 步必须在目标硬件上完成,不能只用服务器 GPU 的结果替代。车机与手机的 NPU 算子库、内存带宽、散热策略和调度行为差异很大;同一个 W4 模型在实验室开发板上可能很快,在量产机上却因为算子回退到 CPU 而变慢。部署验证应覆盖冷启动、热稳定状态、低电量、后台竞争和弱网切换等条件。
3.8.2 在线运行时
在线运行时需要把压缩模型放进完整的请求链路,而不是孤立地看模型时延。一次出行请求通常包括语音唤醒、语音识别、意图理解、检索、工具调用、模型生成、结构化校验、语音合成与界面渲染。模型只占其中一段;如果检索或工具调用耗时更长,压缩模型带来的收益会被 Amdahl 定律稀释。优化时应先做端到端剖析,找出真正的瓶颈,再决定压缩哪一段。
运行时建议包含以下机制。第一,前缀缓存:系统提示、工具 schema、常用地点列表可以缓存,避免每次请求重复预填充。第二,KV 分页与容量控制:限制最大上下文,按内容类型淘汰,避免长列表挤爆内存。第三,端云路由:短指令走端侧小模型,复杂规划在网络可用时走云端;路由依据包括请求复杂度、置信度、网络状态、电量和热状态。第四,结构化校验与回退:JSON 解析失败、字段越界或约束冲突时,重试、模板降级或转云端。第五,熔断与降级:当尾时延、内存或温度超过阈值时,主动关闭非关键功能,而不是让系统卡死。
3.8.3 监控与灰度
上线后需要持续监控输入分布、输出质量、时延、内存、温度、结构化输出失败率、用户纠正率与安全事件。压缩模型的误差可能不是均匀出现的,而是在特定地点、特定方言、特定节假日或特定系统版本上集中爆发。建议按场景切片建立监控面板,并设置漂移告警:当某个切片的失败率相对基线显著上升时,触发回滚或重新校准。
灰度发布应遵循“影子模式—小流量—分档扩大”的节奏。影子模式下,压缩模型与线上模型并行运行,只记录不生效;小流量阶段比较关键指标;分档扩大时按设备型号、系统版本、地域和网络条件分层。任何阶段出现安全指标越界,都应立即回滚,而不是等待平均指标恢复。
3.9 Complexity and Theoretical Properties
3.9.1 训练与压缩复杂度
设模型参数量为 N N N,层数为 L L L,隐藏维度为 d d d,词表大小为 V V V。基于幅值或一阶泰勒的剪枝需要一次前向与反向传播,复杂度约为 O ( N ) O(N) O(N) 到 O ( N d ) O(Nd) O(Nd);基于逐层重建的剪枝需要对每层求解一个最小二乘问题,复杂度随校准样本数与特征维度增长。蒸馏的主要成本来自学生生成与教师前向:若每个样本生成长度为 T T T,则同策略蒸馏的生成成本约为 O ( T 2 d ) O(T^2 d) O(T2d) 的自回归计算,外加教师对每个前缀的前向。量化方面,逐层 PTQ 的成本通常远低于重新训练;QAT 的成本接近一次微调。
3.9.2 推理时延与能耗
对自回归解码,单 token 时延可以近似为:
$$
T_{\text{decode}} \approx
\sum_{l=1}^{L}
\max\left(
\frac{2P_l}{F_{\text{eff}}},
\frac{B_l}{B_{\text{mem}}}
\right)
- T_{\text{attn}} + T_{\text{overhead}},
$$
其中 P l P_l Pl 是第 l l l 层参数量, F eff F_{\text{eff}} Feff 是有效算力, B l B_l Bl 是该层需要读取的字节数, B mem B_{\text{mem}} Bmem 是有效内存带宽, T attn T_{\text{attn}} Tattn 是注意力与 KV 访存开销, T overhead T_{\text{overhead}} Toverhead 是调度、内核启动与框架开销。batch size 为 1 时,解码通常落在内存受限区,权重量化通过降低 B l B_l Bl 直接获益;当 batch size 增大或序列很长时,计算与注意力开销占比上升,权重量化的边际收益下降。这个模型解释了为什么“4 bit 一定比 8 bit 快 2 倍”不成立:只有当权重访存是唯一瓶颈,且所有相关字节都按比例下降时,才接近理论上限。
能耗可以粗略写成:
E ≈ ∫ 0 T total ( P compute ( t ) + P mem ( t ) + P static ) d t , E \approx \int_{0}^{T_{\text{total}}} \left( P_{\text{compute}}(t) + P_{\text{mem}}(t) + P_{\text{static}} \right)\,dt, E≈∫0Ttotal(Pcompute(t)+Pmem(t)+Pstatic)dt,
其中 P compute P_{\text{compute}} Pcompute、 P mem P_{\text{mem}} Pmem 与 P static P_{\text{static}} Pstatic 分别是计算、访存与静态功耗。压缩降低了计算与访存时间,但也可能增加数据搬运或解压开销;在内存受限的低功耗设备上,量化通常有益,但如果运行时缺少高效低比特内核,反量化开销可能抵消收益。因此,能耗必须在目标硬件上实测,不能只由位宽推算。
3.9.3 误差上界
下面的命题给出了压缩误差的一个局部上界,用于说明敏感度度量的合理性,而不是作为实际精度的保证。
命题 1:设任务损失 L ( θ ) \mathcal{L}(\theta) L(θ) 对参数是 L L L-光滑的,即对任意 θ , θ ′ \theta,\theta' θ,θ′,
∥ ∇ L ( θ ) − ∇ L ( θ ′ ) ∥ 2 ≤ L ∥ θ − θ ′ ∥ 2 . \left\| \nabla\mathcal{L}(\theta) - \nabla\mathcal{L}(\theta') \right\|_2 \le L \left\| \theta - \theta' \right\|_2. ∥∇L(θ)−∇L(θ′)∥2≤L∥θ−θ′∥2.
则对任意参数扰动 Δ \Delta Δ,
$$
\mathcal{L}(\theta+\Delta)
\le \mathcal{L}(\theta)
- \left\langle \nabla\mathcal{L}(\theta), \Delta \right\rangle
- \frac{L}{2}\left| \Delta \right|_2^2.
$$
证明:由一阶泰勒展开与积分形式的余项可得,参见附录 A。
将扰动分为互不重叠的剪枝集合 P \mathcal{P} P 与量化集合 Q \mathcal{Q} Q(重叠部分并入剪枝项处理)。对剪枝, Δ i = − w i \Delta_i = -w_i Δi=−wi;对量化, ∣ Δ i ∣ ≤ Δ q / 2 |\Delta_i| \le \Delta_q/2 ∣Δi∣≤Δq/2,其中 Δ q \Delta_q Δq 是量化步长。代入命题 1,得到:
$$
\Delta\mathcal{L}
\le
\sum_{i\in\mathcal{P}} \left| w_i g_i \right|
- \frac{\Delta_q}{2}\sum_{i\in\mathcal{Q}} \left| g_i \right|
- \frac{L}{2}\left(
\sum_{i\in\mathcal{P}} w_i^2 - \frac{|\mathcal{Q}|\Delta_q^2}{4}
\right),
$$
其中 g i = ∂ L / ∂ w i g_i = \partial\mathcal{L}/\partial w_i gi=∂L/∂wi。该上界提示三条设计原则:优先剪掉 ∣ w i g i ∣ |w_i g_i| ∣wigi∣ 小的权重;对梯度幅值小的权重使用更低比特;对梯度幅值大的权重保留更高精度。它也说明,剪枝与量化的误差并非简单相加,二阶项会随扰动规模放大;当压缩比很高时,局部上界会变得很松,必须依赖任务级评测。
对均匀量化,若忽略截断,量化误差的均方值约为:
E [ ( w − w ^ ) 2 ] ≈ Δ q 2 12 , Δ q = w max − w min 2 b − 1 . \mathbb{E}\left[(w-\widehat{w})^2\right] \approx \frac{\Delta_q^2}{12}, \quad \Delta_q = \frac{w_{\max}-w_{\min}}{2^b-1}. E[(w−w )2]≈12Δq2,Δq=2b−1wmax−wmin.
该式说明位宽每增加 1 bit,量化步长约减半,均方误差约降为四分之一;但它假设误差在区间内均匀分布且无异常值,实际 Transformer 权重与激活往往偏离该假设。因此,它适合做量级判断,不适合预测具体任务的精度损失。
3.9.4 适用边界
上述复杂度与时延模型忽略了算子融合、内存层级、缓存命中、热降频与并发调度等实际因素。它们的作用是帮助团队建立预算直觉,而不是替代硬件实测。命题 1 的误差上界依赖光滑性假设,且只在一个局部邻域内成立;当剪枝或量化扰动较大时,上界可能非常松。本文把这些分析定位为“设计时的近似工具”,并主张最终决策必须由目标硬件上的端到端评测支撑。为便于工程落地,附录 C 将第 3 节的讨论归纳为 12 条设计要点,并给出常见反模式与验收证据。
4 Experiments
本节给出一套可复现的实验设计,用于验证 MobiComp 的设计假设。本文不报告未经实测的数字;所有结果表格保留 [TODO: 实验数据待填] 占位,待目标硬件、模型与数据确定后填充。这样做的目的不是回避实验,而是把“实验协议、基线、指标与验收标准”先固定下来,避免在看到结果后临时改变评价口径。
4.1 Experimental Setup
4.1.1 研究问题
实验围绕五个研究问题展开。
- RQ1(主效果):在相同内存或时延预算下,MobiComp 的协同压缩是否比单轴压缩和朴素串联获得更高的出行任务质量与约束满足率?
- RQ2(顺序与交互):剪枝、蒸馏、量化的不同顺序如何影响质量、训练成本与部署适配?三轴之间是正交互还是负交互?
- RQ3(长尾与安全):压缩对长尾地点实体、方言/噪声语音、时间与价格计算、安全拒答的影响是否均匀?哪些切片最先失效?
- RQ4(在线效率):在目标车机与手机平台上,压缩带来的端到端 P95/P99 时延、峰值内存与单请求能耗收益是多少?热降频和弱网回退下是否仍然成立?
- RQ5(可运维性):压缩模型在灰度、漂移与回滚场景下的失败模式是什么?哪些监控指标能提前预警?
4.1.2 任务与数据
实验任务覆盖出行链路的四个层次。
第一,意图理解与槽位抽取:从用户话语中识别导航、打车、改签、找餐厅、充电、停车、景点咨询等意图,并抽取时间、地点、人数、预算、偏好等槽位。数据来源包括公开指令数据与自建出行指令集;自建集的来源、规模与标注协议 [TODO: 数据说明待补充]。
第二,地点检索与实体问答:根据用户约束检索地点,回答营业时间、价格、评价、距离、交通方式等问题。需要覆盖常见地点与长尾地点、标准地名与口语别名、普通话与方言口音。长尾实体集的构建方法 [TODO: 待补充]。
第三,多日旅行规划:在预算、时间窗、开放时间、交通可行性等约束下生成行程。可使用 TravelPlanner 基准[17]作为公开评测之一,并补充本地化场景。TravelPlanner 的原始任务定义、工具接口与评测脚本以其公开版本为准;本文不在此复述其统计量,避免与版本更新不一致。
第四,驾驶场景理解与工具调用:使用 DriveLM[18]、DriveGPT4[19]与 LMDrive[20]相关的公开任务,评估感知—预测—规划链路上的语言理解与结构化输出;使用自建工具调用集评估 JSON schema 合法率、参数正确率与执行成功率。
安全评测单独构建红队集,覆盖危险驾驶建议、错误交通规则、诱导逃逸/逃票、泄露他人位置、歧视性推荐、超能力承诺等类别。红队集的构造、标注者资质与仲裁流程 [TODO: 安全评测协议待补充]。
4.1.3 模型与硬件
教师模型候选为 7B–13B 量级的开源指令模型,学生模型候选为 1B–3B 量级;具体模型、版本与许可证 [TODO: 待确定]。选择依据是目标硬件的内存预算与业务对质量的要求,而不是单纯追求参数最大。若业务允许端云协同,可增加一个云端大模型作为质量上界,并单独评估回退率与隐私影响。
硬件至少覆盖三类平台:高端手机 SoC、中端手机 SoC、车载座舱 SoC。每类平台的具体型号、NPU 算力、内存带宽、散热设计与运行时版本 [TODO: 硬件信息待补充]。实验必须在目标运行时上测量,而不是只在开发机 GPU 上测量;若运行时缺少某类低比特算子,应记录算子回退路径与实际耗时。
软件栈包括推理框架、量化算子库、KV 缓存管理、 tokenizer 与结构化解码器。版本号与编译选项 [TODO: 软件栈信息待补充]。所有实验应固定随机种子、线程数、频率策略与温度起始状态,避免把系统噪声误判为压缩收益。
4.1.4 基线
基线分为四组。
第一组是未压缩基线:全精度教师、全精度同架构学生。前者给出质量上界,后者分离“架构变小”与“压缩算法”的贡献。
第二组是单轴量化基线:GPTQ[3]、AWQ[5]、SmoothQuant[4]、QuaRot[7],以及 W8A16、W4A16、W8A8 等不同位宽配置。所有基线使用相同的校准集与评测集,校准集分别设置“通用语料”和“出行语料”两个版本,以观察校准分布的影响。
第三组是单轴剪枝与蒸馏基线:SparseGPT[8]、Wanda[9]、LLM-Pruner[10]、ShortGPT[12] 风格的层剪枝;MiniLLM[14]、GKD[15]、DistiLLM[16] 风格的蒸馏。剪枝基线需区分结构化与非结构化,并记录目标运行时是否真正加速。
第四组是朴素串联基线:按常见做法直接串联“剪枝—蒸馏—量化”,不做敏感度分配、不做实体/安全 token 加权、不做 KV 单独校准。该基线用于回答“MobiComp 的收益是否只是来自多做了几步工程”。
4.1.5 指标
指标分为质量、效率、安全与可运维性四类。
质量指标包括:
- 约束满足率(Constraint Satisfaction Rate, CSR):
C S R = 1 N ∑ i = 1 N 1 [ plan i ⊨ C i ] , \mathrm{CSR} = \frac{1}{N}\sum_{i=1}^{N} \mathbf{1}\left[\text{plan}_i \models \mathcal{C}_i\right], CSR=N1i=1∑N1[plani⊨Ci],
其中 C i \mathcal{C}_i Ci 是第 i i i 个请求的硬约束集合, ⊨ \models ⊨ 表示计划满足全部硬约束。对多日行程,硬约束包括预算、时间窗、开放时间、交通可行性与用户明确偏好。 - 实体 F1:地点、地址、路线、时间、价格等实体的精确率与召回率的调和平均。
- 工具调用成功率:工具名正确、参数通过 schema 校验、执行未报错三者同时满足的比例。
- JSON 合法率:输出可被解析且关键字段类型正确的比例。
- 人工偏好胜率:在盲评中,评审者偏好压缩模型输出的比例;需报告评审者一致性。
效率指标包括:首 token 时延(Time to First Token, TTFT)、每输出 token 时延(Time per Output Token, TPOT)、端到端 P50/P95/P99、峰值内存、单请求能耗、热降频触发率、弱网回退率。所有时延均包含预处理、检索、工具调用与后处理,除非明确标注为“模型内时延”。
安全指标包括:安全违规率、过度拒答率、升级/澄清适当率、结构化输出越界率。安全违规率应由规则检查与人工复核共同判定;只靠模型自评不够。
可运维性指标包括:灰度期指标漂移、回滚次数、告警准确率、平均恢复时间。它们不进入模型质量排名,但决定方案能否长期运行。
4.1.6 实现与统计协议
所有主实验至少运行 3 个随机种子,报告均值与标准差。对时延与能耗,报告中位数、P95 与 P99,并给出 bootstrap 95% 置信区间。对方法间比较,使用配对 bootstrap 或 Wilcoxon 符号秩检验,并做多重比较校正;同时报告效应量,避免只报 p 值。训练数据量、训练步数、学习率、批大小、蒸馏温度、剪枝轮数与量化校准样本数 [TODO: 超参与预算待补充]。所有超参数在验证集上选择,测试集只用于最终报告。
表 6 给出实验矩阵。
| 编号 | 目的 | 自变量 | 主要因变量 | 验收标准 |
|---|---|---|---|---|
| E1 | 主效果对比 | 教师、学生、单轴基线、朴素串联、MobiComp | CSR、实体 F1、工具成功率、P95、内存、能耗 | 在同等预算下 CSR 不低于基线,且至少一项效率指标更优 |
| E2 | 顺序与交互 | 路径 A/B/C/D、三轴开/关 | 质量、训练成本、部署适配 | 找到默认路径的适用边界 |
| E3 | 蒸馏加权 | 无加权、实体加权、数值加权、安全加权、组合 | 实体 F1、CSR、安全违规率 | 关键切片提升且通用能力不出现不可接受下降 |
| E4 | KV 量化 | FP16、8 bit、4 bit、混合 | 长上下文质量、峰值内存、P95 | 内存收益明确且长程约束不越界 |
| E5 | 长尾鲁棒性 | 常见/长尾、标准/方言、清晰/噪声 | 实体召回、CSR、澄清率 | 识别最先失效的切片并给出缓解 |
| E6 | 安全红队 | 压缩前后、不同位宽/剪枝率 | 违规率、过度拒答率 | 不高于基线阈值;越界即拒绝上线 |
| E7 | 热与网络 | 冷启动/热稳定、强网/弱网、端侧/云端 | P95/P99、回退率、能耗 | 热稳定与弱网下仍满足约束 |
| E8 | 漂移与灰度 | 节假日、临时管制、系统版本 | 失败率、告警、回滚 | 监控能提前预警并可回滚 |
4.2 Main Results
表 7 给出主结果模板。每一行对应一个压缩配置,列给出质量、效率与安全指标。所有数值待实测填充。
| 方法 | 位宽/稀疏度 | CSR ↑ | 实体 F1 ↑ | 工具成功率 ↑ | JSON 合法率 ↑ | P95 时延 ↓ | 峰值内存 ↓ | 单请求能耗 ↓ | 安全违规率 ↓ |
|---|---|---|---|---|---|---|---|---|---|
| 教师(FP16) | 16/0 | [TODO: 实验数据待填] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| 学生(FP16) | 16/0 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| GPTQ W4 | 4/0 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| AWQ W4 | 4/0 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| SmoothQuant W8A8 | 8/0 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| SparseGPT 50% | 16/0.5 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| Wanda 50% | 16/0.5 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| LLM-Pruner | 16/结构化 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| MiniLLM | 16/0 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| 朴素串联 | 4/结构化 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
| MobiComp | 4/结构化 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
解读主结果时,应同时看三个对比:MobiComp 相对教师的质量差、相对未压缩学生的质量差、相对朴素串联的效率差。若 MobiComp 只是在质量上接近教师,但时延和内存没有明显优势,说明压缩预算分配没有转化为部署收益;若效率优势明显但 CSR 或安全指标越界,则方案不可上线。主结果不应只报告一个综合分,而应按任务切片展开,至少分别报告短指令、长规划、长尾实体与安全红队。
基于第 3 节的分析,本文提出以下待检验假设。它们不是实验结论,而是实验要回答的问题。
- H1:在以解码为主的车载短指令场景,W4 权重量化配合 W8 KV 缓存带来的端到端 P95 收益,大于同等质量下的 W8A8;当批大小增大或长提示占比提高时,这一优势缩小。
- H2:在目标运行时缺少稀疏算子时,结构化剪枝加蒸馏在同等参数量削减下,比非结构化剪枝更能保住 CSR 与工具调用成功率。
- H3:在蒸馏中对实体、数值与安全 token 加权,能提升实体 F1 与 CSR,但可能让通用语言困惑度略有上升;需要报告权衡而不是只看单一指标。
- H4:8 bit KV 量化能在长上下文规划中显著降低峰值内存,且质量损失有限;更激进的 KV 量化会先损害长程约束跟踪,再损害短指令理解。
4.3 Ablation Study
消融的目标不是堆砌变体,而是回答“哪个设计决策真正重要”。表 8 给出建议的消融矩阵。
| 变体 | CSR ↑ | 实体 F1 ↑ | 安全违规率 ↓ | P95 ↓ | 峰值内存 ↓ | 说明 |
|---|---|---|---|---|---|---|
| MobiComp 完整版 | [TODO: 实验数据待填] | [TODO] | [TODO] | [TODO] | [TODO] | 默认配置 |
| 去掉结构化剪枝 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 只做蒸馏与量化 |
| 去掉蒸馏恢复 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 剪枝后直接量化 |
| 去掉 KV 量化 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 观察长上下文内存 |
| 路径 B(剪枝→量化→蒸馏) | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 顺序消融 |
| 均匀精度(不做混合精度) | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 位宽分配消融 |
| 去掉 token 加权 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 蒸馏损失消融 |
| 通用语料校准 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 校准分布消融 |
| 一次性大幅剪枝 | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | 迭代剪枝消融 |
消融结果应按以下顺序解读。第一,看剪枝与蒸馏的交互:去掉蒸馏后质量下降多少,是否在长规划切片上更明显。第二,看量化的边际收益:从 W8 到 W4,内存和时延改善多少,CSR 与实体 F1 损失多少;若收益主要来自内存而非时延,说明运行时可能没有真正用上低比特算子。第三,看混合精度的贡献:把嵌入层、输出层与安全关键层降为统一 W4,观察实体召回与安全违规率是否恶化。第四,看校准分布的影响:通用语料校准与出行语料校准的差距,能说明场景数据是否值得投入。第五,看顺序:路径 B 是否在激进 W4 下优于路径 A,训练成本增加多少。
所有消融都应报告训练预算。若某个变体通过增加数倍训练步数获得提升,这个提升不能简单归因于压缩策略。建议在同等 GPU 小时或同等 token 预算下比较,或至少同时报告“同等预算”和“最佳预算”两组结果。
4.4 Analysis
4.4.1 帕累托前沿
主结果应进一步整理为“质量—时延”和“质量—能耗”两张帕累托图。横轴分别为 P95 端到端时延与单请求能耗,纵轴为 CSR 或综合任务分。每个点对应一个压缩配置,标注位宽、稀疏度与是否使用 KV 量化。工程决策通常选择“膝点”:继续压缩带来的效率收益开始小于质量损失。不同场景的膝点不同,车载短指令可以更靠效率端,旅行规划应更靠质量端。
帕累托图还能暴露“伪收益”。如果某个配置在服务器 GPU 上时延更低,但在目标 NPU 上没有优势,应把后者作为最终图。若两个配置在平均时延上接近,但 P99 差异明显,应单独报告尾时延;出行场景的用户体验更多由尾事件决定。
4.4.2 时延与内存分解
端到端时延应分解为语音识别、检索、工具调用、模型预填充、解码、结构化校验、语音合成与渲染。模型压缩只影响其中一部分;若检索或工具调用占主导,应优先优化那些环节,而不是继续压低模型位宽。模型内部时延还应区分 TTFT 与 TPOT:TTFT 受预填充与首层计算影响,TPOT 受解码访存影响;W4 权重量化通常更利于 TPOT,激活量化与算子融合更利于 TTFT。
内存应分解为权重、KV 缓存、激活工作区、运行时与系统占用。对长上下文出行请求,KV 缓存可能是最大项;此时只报告“模型文件大小”会严重低估部署压力。建议同时报告空载内存、峰值内存与长上下文峰值内存。
4.4.3 长尾实体与方言
长尾分析应按实体频率分桶,分别报告常见地点、低频地点、生僻地名的召回与复制准确率;按输入条件分组,分别报告标准普通话、方言口音、噪声语音、截断语音的表现。重点观察压缩是否让“听不懂就追问”的行为退化:一个模型如果在噪声下不再澄清,而是自信地编造地点,其平均分可能不低,但实际风险很高。
缓解手段包括:提高嵌入层与输出层精度;在蒸馏中加入长尾实体与噪声语音样本;在解码时用检索结果约束实体;在置信度低时触发澄清或云端回退。每种手段都应单独消融,避免把多个改动的收益混在一起。
4.4.4 安全与结构化输出
安全分析应区分“漏拒”和“过度拒答”。只压低违规率而让模型对正常请求也大量拒绝,会损害可用性。建议同时报告违规率、过度拒答率与升级适当率,并按风险类别展开。结构化输出分析应报告 JSON 解析成功率、schema 校验通过率、关键字段语义正确率与工具执行成功率;四者缺一不可。一个 JSON 能解析但日期越界的输出,仍然不可用。
安全指标不应参与平均值排名。建议设置硬门槛:任何配置在红队集上的违规率超过阈值,直接淘汰,无论其 CSR 多高。阈值由安全、法务与产品团队共同确定;本文不给出具体数值,避免在不同监管环境下造成误导。
4.4.5 热降频与弱网
实验室中的短时跑分不能代表真实体验。应在以下条件下重复测量:冷启动、连续请求 10 分钟以上、电量低于阈值、后台有其他应用、环境温度较高、网络从强网切换到弱网或断网。重点观察 P95/P99 时延、热降频触发率、端云回退率与回退后的质量。若压缩模型在热稳定后因降频而失去优势,说明收益只存在于短时峰值,不能作为上线依据。
弱网条件下,云端回退可能带来数秒级延迟,用户体验不如端侧小模型。此时应优先保证离线可用性,哪怕质量略低;端侧模型的价值不仅是省成本,更是可用性兜底。
4.4.6 失败案例分类
表 9 给出建议的失败案例分类。表中的例子是说明性示例,不是实测结果。
| 失败类型 | 示例(说明性) | 可能根因 | 缓解措施 |
|---|---|---|---|
| 实体幻觉 | 推荐不存在的商户 | 长尾实体召回下降;解码无检索约束 | 提高嵌入/输出精度;检索约束;置信度回退 |
| 时间窗违规 | 行程安排超出开放时间 | 时间计算能力受损;约束跟踪丢失 | 保留推理层精度;约束验证器;计划后校验 |
| 工具参数错误 | JSON 字段缺失或日期格式错误 | 量化扰动 logits;解码无语法约束 | schema 约束解码;解析失败重试;模板回退 |
| 预算越界 | 总价超过用户预算 | 数值 token 蒸馏不足;缺少显式校验 | 数值 token 加权;预算计算器;硬约束检查 |
| 过度长输出 | 驾驶中给出长篇说明 | 缺少长度控制;场景路由错误 | 场景化长度预算;语音优先;驾驶中禁用复杂输出 |
| 不安全建议 | 建议规避交通规则 | 安全对齐不足;蒸馏复制教师错误 | 红队数据;规则护栏;拒绝/升级策略 |
| 语言/方言切换 | 用户说方言却回复普通话长文 | 方言覆盖不足;语言识别错误 | 方言数据;语言确认;短句澄清 |
失败案例分析应保存输入、上下文、模型输出、工具返回、压缩配置与设备状态,形成可追溯的记录。只有把失败与具体配置关联起来,才能判断是压缩导致、数据导致还是运行时导致。
4.5 Limitations
本文的首要局限是缺少实测数据。MobiComp 是一个设计框架与实验协议,尚未在真实车机与手机平台上完成端到端验证;所有性能与质量结论都需要后续实验确认。本文给出的公式与假设用于建立预算直觉,不能替代硬件测量。
第二,分析模型是简化的。时延模型忽略算子融合、缓存命中、内存对齐、并发调度与热降频;误差上界依赖光滑性假设,在高压缩比下可能很松。实际系统是非线性的,压缩收益不一定随位宽线性变化。
第三,硬件多样性带来外推风险。不同 NPU 的算子支持、量化粒度、KV 缓存管理与调度策略差异很大;在一个平台上有效的配置,换一个平台可能失效。本文建议的“硬件在环”验证会增加实验成本,但这是必要的。
第四,数据与隐私约束限制了实验规模。出行数据涉及位置与订单,难以大规模共享;校准集与评测集可能覆盖不足,导致长尾与方言切片估计偏差。联邦校准、设备端评测与去标识化是可能的缓解方向,但会增加工程复杂度。
第五,安全评测难以穷尽。红队集只能覆盖已知风险类别,无法保证没有遗漏;人工复核也存在标注者偏差。压缩可能改变模型的拒答边界,而这类变化不容易被平均指标捕捉。安全论证应独立于压缩收益,不能因为模型变小就降低安全标准。
第六,交互效应与超参数敏感度尚未量化。剪枝、蒸馏与量化的组合空间很大,本文只给出默认路径与消融建议;实际最优配置可能依赖模型、数据与硬件,需要通过实验搜索。搜索成本本身也应纳入总拥有成本。
5 Discussion
5.1 压缩改变的是误差分布,不只是平均值
本文反复强调约束满足率、实体 F1、安全违规率与尾时延,而不是只报告平均分。原因是压缩对误差的影响通常不均匀:它可能几乎不影响常见短指令,却显著损害长尾地点、时间计算与多步约束跟踪。平均分把这些切片混在一起,掩盖了真正的风险。对出行场景,一次约束违反或一次危险建议的代价,可能远高于一百次普通回答的轻微退化。因此,压缩方案的验收应以“最差关键切片”与“安全硬门槛”为先,再考虑平均质量。
这也意味着,压缩比不是一个可以脱离场景讨论的数字。一个在通用基准上“无损”的 4 bit 模型,可能在某个方言切片上损失严重;一个在实验室跑分优秀的剪枝方案,可能在量产机上因为算子回退而变慢。场景约束、数据切片与目标硬件必须同时进入设计,而不是在最后才补评测。
5.2 压缩三难与停止条件
可以把出行模型的压缩目标概括为一个三难:质量、效率与安全。三者并非完全对立,但边际收益会变化。初期压缩通常能同时降低内存和时延,质量损失很小;继续压缩后,质量与安全开始下降,效率收益递减。工程团队需要定义停止条件,例如:关键切片的 CSR 不低于基线、安全违规率不高于阈值、P95 时延满足产品要求、峰值内存留有余量。只要有一个条件不满足,就不应继续加码。
停止条件应在实验前确定,而不是看到结果后调整。否则团队容易陷入“再压一点看看”的循环,最终在某个长尾切片上翻车。本文建议把停止条件写入模型卡与发布检查单,并与回滚机制绑定。
5.3 软硬协同
压缩的收益最终由运行时兑现。一个在 PyTorch 中看起来很好的 W4 模型,如果目标 NPU 只支持 W8,或者低比特算子只覆盖部分形状,实际速度可能不如 W8。因此,压缩设计应从目标硬件反向约束:先确认算子支持矩阵、内存带宽、KV 缓存管理能力与量化粒度,再选择算法。必要时,模型架构也应配合硬件,例如使用分组查询注意力降低 KV 头数、选择对量化友好的归一化与激活函数、避免运行时难以融合的算子组合。
软硬协同还意味着接受“不完美的压缩”。某些层可能因为算子不支持而保留 W8,整体压缩率略低,但端到端时延更稳;某些注意力头可能因为安全关键而保留更高精度,参数量略大,但避免了长尾失效。工程目标不是追求最高压缩率,而是找到可上线的工作点。
5.4 组织流程与治理
压缩不是一次性的模型优化,而是持续的产品治理。建议建立以下流程:第一,模型卡记录压缩配置、校准数据、评测切片、已知失败模式与适用边界;第二,发布检查单包含质量、效率、安全与回滚四项,任何一项不通过则不得发布;第三,线上监控按场景切片跟踪失败率、尾时延、结构化输出失败与安全事件;第四,建立事故复盘机制,把失败案例反馈到校准集与红队集;第五,定期重新校准,尤其是在节假日、交通管制、系统升级与硬件换代之后。
治理还包括责任边界。压缩模型仍然是模型,不能因为“端侧运行”就假定更安全或更合规。位置数据的采集、存储、上传与删除应遵循数据最小化原则;模型输出涉及驾驶安全时,应由确定性规则与人类驾驶员最终负责,不能把责任转移给模型。
5.5 伦理与社会影响
出行场景涉及位置隐私、驾驶安全、无障碍与公平性。端侧压缩可以减少原始数据上传,降低隐私暴露面,但也可能让模型能力下降,导致对偏远地区、少数方言或低收入用户的服务质量更差。地点推荐还可能放大商业偏见,优先展示合作商户而非用户真正需要的地点。压缩评测应加入公平性与覆盖率指标,而不仅是平均满意度。
驾驶场景的伦理边界尤其重要。模型不应在驾驶中诱导用户长时间阅读或操作屏幕;语音交互应短、明确、可中断;涉及安全关键决策时,模型应提供信息与建议,而不是替代驾驶员判断。压缩带来的低时延不应被用来增加交互复杂度,而应被用来提升可靠性与可用性。
5.6 何时不应压缩
并非所有场景都适合端侧压缩。若任务涉及直接车辆控制、高风险医疗或法律建议、需要大规模知识检索的复杂规划,端侧小模型的能力边界可能不足以承担;此时应优先使用云端大模型、规则系统或人机协同,而不是为了“端侧”而牺牲安全。压缩的适用边界应由任务风险、数据敏感度、网络可用性与硬件预算共同决定。对高风险场景,压缩模型可以承担意图理解、澄清与路由,而把关键决策交给更可靠的系统。
6 Conclusion
本文围绕出行场景下的模型量化、蒸馏与剪枝,提出了约束感知的压缩设计框架 MobiComp。本文将出行场景的时延、能耗、内存、质量、隐私与安全需求形式化为约束向量和压缩可行域,将压缩比视为约束求解的输出;通过分层、分任务、分实体与分模态的敏感度画像分配预算;给出“结构化剪枝—蒸馏恢复—混合精度量化”的默认流水线,并讨论顺序、交互与回退策略;最后建立了离线质量、在线效率与长尾安全三层评测协议,总结了 12 条设计要点。本文没有报告未经实测的性能数字,而是给出可复现的实验设计、基线矩阵与待填指标模板。
本文的核心判断是:出行场景的压缩设计不能只追求单轴压缩率或通用基准分数,而应以场景硬约束和关键切片为验收对象;不能把三条压缩轴线简单串联,而应显式处理顺序与交互;不能只用离线平均分判断上线,而要在目标硬件上验证尾时延、热降频、弱网回退与安全边界。只有把模型压缩纳入完整的系统与产品流程,压缩收益才能真正转化为用户体验。
未来工作包括四个方向。第一,在真实车机与手机平台上完成本文实验协议的端到端验证,填充主结果与消融表。第二,研究剪枝、蒸馏与量化的联合优化,减少三轴之间的负交互。第三,构建面向出行场景的公开压缩评测集,覆盖长尾地点、方言、噪声语音、结构化工具调用与安全红队,并建立可复现的评测脚本。第四,探索安全约束下的压缩理论,给出可验证的风险上界,而不仅是平均精度估计。我们希望在后续工作中把这些设计要点转化为可部署、可审计、可回滚的工程实践。
References
[1] HINTON G, VINYALS O, DEAN J. Distilling the knowledge in a neural network[EB/OL]. arXiv:1503.02531, 2015.
[2] DETTMERS T, LEWIS M, BELKADA Y, et al. LLM.int8(): 8-bit matrix multiplication for transformers at scale[EB/OL]. arXiv:2208.07339, 2022.
[3] FRANTAR E, ASHKBOOS S, HOEFLER T, et al. GPTQ: Accurate post-training quantization for generative pre-trained transformers[C]//International Conference on Learning Representations (ICLR). 2023. arXiv:2210.17323.
[4] XIAO G, LIN J, SEZNEC M, et al. SmoothQuant: Accurate and efficient post-training quantization for large language models[EB/OL]. arXiv:2211.10438, 2022.
[5] LIN J, TANG J, TANG H, et al. AWQ: Activation-aware weight quantization for on-device LLM compression and acceleration[EB/OL]. arXiv:2306.00978, 2023.
[6] DETTMERS T, PAGNONI A, HOLTZMAN A, et al. QLoRA: Efficient finetuning of quantized LLMs[EB/OL]. arXiv:2305.14314, 2023.
[7] ASHKBOOS S, CROCI M L, MOHTASHAMI A, et al. QuaRot: Outlier-free 4-bit inference in rotated LLMs[EB/OL]. arXiv:2404.00456, 2024.
[8] FRANTAR E, ALISTARH D. SparseGPT: Massive language models can be accurately pruned in one-shot[EB/OL]. arXiv:2301.00774, 2023.
[9] SUN M, LIU Z, BAIR A, et al. A simple and effective pruning approach for large language models[C]//International Conference on Learning Representations (ICLR). 2024. arXiv:2306.11695.
[10] MA X, FANG G, WANG X. LLM-Pruner: On the structural pruning of large language models[EB/OL]. arXiv:2305.11627, 2023.
[11] XIA M, GAO T, ZENG Z, et al. Sheared LLaMA: Accelerating language model pre-training via structured pruning[C]//International Conference on Learning Representations (ICLR). 2024. arXiv:2310.06694.
[12] MEN X, XU M, LIN H, et al. ShortGPT: Layers in large language models are more redundant than you expect[EB/OL]. arXiv:2403.03853, 2024.
[13] GROMOV A, GLORIOSO P, TIRUMALA K, et al. The unreasonable ineffectiveness of the deeper layers[C]//International Conference on Learning Representations (ICLR). 2025. arXiv:2403.17887.
[14] GU Y, DONG L, WEI F, et al. MiniLLM: On-policy distillation of large language models[EB/OL]. arXiv:2306.08543, 2023.
[15] AGARWAL R, VIEILLARD N, STANCZYK P, et al. On-policy distillation of language models: Learning from self-generated mistakes[C]//International Conference on Learning Representations (ICLR). 2024. arXiv:2306.13649.
[16] KO J, KIM S, CHEN T, et al. DistiLLM: Towards streamlined distillation for large language models[EB/OL]. arXiv:2402.03898, 2024.
[17] XIE J, ZHANG K, CHEN J, et al. TravelPlanner: A benchmark for real-world planning with language agents[EB/OL]. arXiv:2402.01622, 2024.
[18] SIMA C, RENZ K, CHITTA K, et al. DriveLM: Driving with graph visual question answering[EB/OL]. arXiv:2312.14150, 2023.
[19] XU Z, ZHANG Y, XIE E, et al. DriveGPT4: Interpretable end-to-end autonomous driving via large language model[EB/OL]. arXiv:2310.01412, 2024.
[20] SHAO H, HU Y, WASLANDER S L, et al. LMDrive: Closed-loop end-to-end driving with large language models[EB/OL]. arXiv:2312.07488, 2023.
[21] LIU Z, ZHAO C, IANDOLA F, et al. MobileLLM: Optimizing sub-billion parameter language models for on-device use cases[EB/OL]. arXiv:2402.14905, 2024.
[22] APPLE. Apple Intelligence foundation language models[EB/OL]. arXiv:2407.21075, 2024.
说明:以上条目均依据 arXiv 公开元数据与已下载论文的首页信息整理;会议版本仅保留论文首页可核实者,未引用无法核实的页码或 DOI。若后续需要正式投稿,应按照目标会议或期刊的参考文献格式补全出版信息,并以出版版本为准。
Appendix
A. 命题 1 的证明
设 L \mathcal{L} L 对参数 L L L-光滑。对 θ + Δ \theta+\Delta θ+Δ 在 θ \theta θ 处做带积分余项的一阶展开:
$$
\mathcal{L}(\theta+\Delta)
\mathcal{L}(\theta)
+
\left\langle \nabla\mathcal{L}(\theta), \Delta \right\rangle
+
\int_{0}^{1}
\left\langle
\nabla\mathcal{L}(\theta+t\Delta) - \nabla\mathcal{L}(\theta),
\Delta
\right\rangle
,dt.
$$
由 L L L-光滑性,
∥ ∇ L ( θ + t Δ ) − ∇ L ( θ ) ∥ 2 ≤ L t ∥ Δ ∥ 2 . \left\| \nabla\mathcal{L}(\theta+t\Delta) - \nabla\mathcal{L}(\theta) \right\|_2 \le L t \left\| \Delta \right\|_2. ∥∇L(θ+tΔ)−∇L(θ)∥2≤Lt∥Δ∥2.
由 Cauchy–Schwarz 不等式,
∣ ⟨ ∇ L ( θ + t Δ ) − ∇ L ( θ ) , Δ ⟩ ∣ ≤ L t ∥ Δ ∥ 2 2 . \left| \left\langle \nabla\mathcal{L}(\theta+t\Delta) - \nabla\mathcal{L}(\theta), \Delta \right\rangle \right| \le L t \left\| \Delta \right\|_2^2. ∣⟨∇L(θ+tΔ)−∇L(θ),Δ⟩∣≤Lt∥Δ∥22.
对 t t t 从 0 到 1 积分,得到
L ( θ + Δ ) ≤ L ( θ ) + ⟨ ∇ L ( θ ) , Δ ⟩ + L 2 ∥ Δ ∥ 2 2 . \mathcal{L}(\theta+\Delta) \le \mathcal{L}(\theta) + \left\langle \nabla\mathcal{L}(\theta), \Delta \right\rangle + \frac{L}{2}\left\| \Delta \right\|_2^2. L(θ+Δ)≤L(θ)+⟨∇L(θ),Δ⟩+2L∥Δ∥22.
证毕。
将 Δ \Delta Δ 分解到互不重叠的剪枝集合 P \mathcal{P} P 与量化集合 Q \mathcal{Q} Q:
$$
\left\langle \nabla\mathcal{L}(\theta), \Delta \right\rangle
-\sum_{i\in\mathcal{P}} w_i g_i
+
\sum_{i\in\mathcal{Q}} \Delta_i g_i.
$$
对第一项取绝对值上界,对第二项使用 ∣ Δ i ∣ ≤ Δ q / 2 |\Delta_i|\le \Delta_q/2 ∣Δi∣≤Δq/2,再对二阶项使用
$$
\left| \Delta \right|_2^2
\sum_{i\in\mathcal{P}} w_i^2
+
\sum_{i\in\mathcal{Q}} \Delta_i^2
\le
\sum_{i\in\mathcal{P}} w_i^2
+
\frac{|\mathcal{Q}|\Delta_q^2}{4},
$$
即可得到第 3.9.3 节的上界。该上界是局部且保守的;当扰动较大时,高阶项不可忽略,实际误差应由任务级评测确定。
B. 预算分配算法的复杂度
设层组数为 L L L,每个层组的候选配置数为 K K K,内存预算离散化为 M M M 个单位,时延预算离散化为 C C C 个单位。动态规划的时间复杂度为 O ( L M C K ) O(L M C K) O(LMCK),空间复杂度为 O ( M C ) O(M C) O(MC);当 L L L 较大或预算粒度较细时,动态规划可能不可行。按单位字节效用排序的贪心算法时间复杂度为 O ( L K log ( L K ) ) O(L K \log(L K)) O(LKlog(LK)),空间复杂度为 O ( L K ) O(L K) O(LK)。贪心不保证全局最优,但在敏感度估计存在噪声、且安全关键层已被固定的情况下,它是一个可解释且易回滚的工程选择。
敏感度画像的成本取决于评测集规模与模型大小。层级重建误差需要对每层做一次校准前向,成本约为 O ( N cal N d ) O(N_{\text{cal}} N d) O(NcalNd);任务级敏感度需要对每个任务切片运行完整评测,成本随切片数与样本数线性增长。工程上可以先做便宜的层级粗筛,再对候选配置做任务级精评,避免在全部组合上穷举。
C. 12 条设计要点清单
表 10 汇总了本文的 12 条设计要点、常见反模式与验收证据。该清单可以直接作为压缩项目的评审检查单。
| 编号 | 设计要点 | 常见反模式 | 验收证据 |
|---|---|---|---|
| D1 | 约束先行:先确定场景约束与验收阈值,再决定压缩比 | 先定 4 bit,再补评测 | 约束向量、阈值、目标硬件清单 |
| D2 | 尾时延优先:用 P95/P99、热稳定与端到端链路做预算 | 只看平均时延或模型内时延 | 冷/热、强/弱网下的尾时延报告 |
| D3 | 切片敏感度:按任务、实体、方言与模态画像 | 只用通用困惑度选配置 | 分层敏感度矩阵与关键切片基线 |
| D4 | 结构化优先:优先层/头/FFN 通道剪枝 | 报告稀疏率但不报告实际加速 | 目标运行时加速比与算子路径 |
| D5 | 保护关键精度:嵌入、输出、首尾、归一化与安全层保留 W8/FP16 | 全模型一刀切 W4 | 实体召回、安全红队、长尾切片 |
| D6 | KV 独立预算:按公式估算并按内容与位置制定策略 | 只算权重内存 | 长上下文峰值内存与长程 CSR |
| D7 | 数据四覆盖:通用、领域、长尾、安全四类蒸馏数据 | 只用通用指令蒸馏 | 数据配比消融与切片指标 |
| D8 | 关键 token 加权:实体、数值、否定与安全 token | 所有 token 等权 | 实体 F1、数值准确率、安全违规率 |
| D9 | 同策略精调:离策略预热 + 同策略精调 | 只用教师生成序列 | 学生自生成序列上的质量与长程一致性 |
| D10 | 稳健量化:异常值处理 + W4 权重/W8 激活与 KV 起点 | 无校准直接 W4 | 校准分布消融、算子支持矩阵 |
| D11 | 结构化输出护栏:语法约束 + schema 校验 + 回退 | 只测平均 JSON 合法率 | 解析率、字段语义正确率、工具成功率 |
| D12 | 部署闭环:硬件在环、灰度、监控、回滚;安全一票否决 | 实验室跑分直接上线 | 热降频/弱网报告、灰度指标、回滚演练 |
D. 实验执行检查单
在启动一次完整的压缩实验前,建议逐项确认以下内容。
- 场景与阈值:目标场景、请求切片、硬件型号、网络条件、时延/内存/能耗阈值与安全门槛是否已书面确认。
- 数据隔离:训练集、验证集、测试集、长尾集与安全红队集是否严格分离;长尾集与安全集是否从未参与调参。
- 教师质量:教师是否完成出行领域适配与安全对齐;教师在关键切片上的失败模式是否已记录。
- 敏感度画像:是否完成分层、分任务、分实体与分模态的敏感度测量;是否识别出安全关键层。
- 压缩配置:剪枝比例、位宽、分组大小、KV 位宽与混合精度策略是否写入配置文件并版本化。
- 恢复预算:蒸馏与 QAT 的 token/GPU 小时预算是否明确;是否与基线在同等预算下比较。
- 硬件在环:是否在目标硬件与目标运行时上测量冷启动、热稳定、低电量与弱网条件。
- 安全红队:是否覆盖危险建议、错误规则、隐私泄露、歧视性推荐与超能力承诺;是否有独立复核。
- 结构化输出:JSON 解析、schema 校验、关键字段语义与工具执行是否分别测过。
- 灰度与回滚:影子模式、小流量、监控指标、告警阈值与回滚包是否准备好。
- 模型卡:压缩配置、校准数据、评测切片、已知失败模式与适用边界是否记录。
- 上线决策:是否满足“质量、效率、安全、可回滚”四项门槛;是否有明确的否决人。
E. 术语表
| 术语 | 英文/缩写 | 含义 |
|---|---|---|
| 大语言模型 | LLM | 以 Transformer 为主干、在海量文本上训练的语言模型 |
| 量化 | Quantization | 将浮点权重或激活映射到低比特表示 |
| 训练后量化 | PTQ | 在不重新训练或仅少量校准的情况下完成量化 |
| 量化感知训练 | QAT | 在训练中模拟量化误差,提升低比特精度 |
| 知识蒸馏 | KD | 让小型学生模型学习教师模型的输出分布 |
| 结构化剪枝 | Structured Pruning | 移除层、头、通道等完整结构单元 |
| 非结构化剪枝 | Unstructured Pruning | 移除单个权重,产生稀疏张量 |
| 键值缓存 | KV Cache | 自回归解码中缓存的历史键与值 |
| 分组查询注意力 | GQA | 多个查询头共享一组键值头的注意力结构 |
| 神经网络处理器 | NPU | 面向神经网络推理的专用加速器 |
| 首 token 时延 | TTFT | 从请求开始到生成第一个 token 的时间 |
| 每输出 token 时延 | TPOT | 解码阶段平均每个输出 token 的耗时 |
| 尾时延 | P95/P99 | 95%/99% 请求不超过的时延值 |
| 约束满足率 | CSR | 计划满足全部硬约束的请求比例 |
| 兴趣点 | POI | Point of Interest,地图上的地点实体 |
| 自动语音识别 | ASR | 将语音转写为文本 |
| 空中下载升级 | OTA | 通过无线网络分发模型与系统更新 |
更多推荐



所有评论(0)