2. 端侧模型部署约束分析
端侧部署与云端部署最本质的差别,不是“模型小一点”,而是模型必须与一颗具体芯片、一块具体内存、一套具体散热结构长期共处。云端可以靠弹性扩容掩盖资源紧张,端侧不行:算力、内存带宽、功耗预算、时延上限、存储容量和结温上限在设备出厂时就已经写死。因此,端侧模型选型的第一步不是挑模型,而是把设备约束翻译成一组可计算的数字,再反过来筛选模型、量化方案和推理框架。
六类约束的物理含义与量化口径
算力约束通常用峰值算力(TOPS 或 GOPS)描述,但真正决定推理速度的是“有效算力”,即峰值乘以算子利用率。以一块标称 8 TOPS INT8 的 NPU 为例,若目标模型包含大量 NPU 不友好的算子(如动态 shape 的注意力、非标准激活),实际利用率可能只有 20%~40%,等效算力仅 1.6~3.2 TOPS。选型时应按有效算力估算,而不是按标称值。
内存约束包含两层:容量与带宽。容量决定模型权重加运行时激活能否装下;带宽决定每 token 或每帧要搬运多少数据。对自回归大模型,解码阶段是典型的访存瓶颈——每生成一个 token 都要把全部权重读一遍。以 INT4 量化的 3B 模型为例,权重约 1.5 GB,若内存带宽为 25 GB/s,理论解码上限约 16 token/s,这还没算 KV Cache 的读写。所以“模型能不能跑”看容量,“跑得快不快”看带宽。
功耗约束直接决定设备能否持续工作。手机 SoC 的持续功耗预算通常在 3~5 W,超过就会触发降频。功耗与算力、带宽强相关,粗略可用 P ≈ α·C·f·V² 理解:提高频率和电压换性能,代价是功耗非线性上升。热约束是功耗约束的时间维度表现:短时爆发可以到 8 W,但持续 30 秒后结温逼近阈值,必须回落到稳态功耗。
时延约束要区分首 token 时延(TTFT)和每 token 时延(TPOT)。交互式语音助手通常要求 TTFT < 300 ms、TPOT < 50 ms;而离线图像批处理可以放宽到秒级。存储约束则影响模型分发与冷启动:模型文件越大,首次加载越慢,且占用用户可用空间,通常单模型不宜超过 2 GB。
约束如何反向决定量化策略
量化不是“越小越好”,而是“在精度可接受的前提下,把权重压进内存、把带宽压力降下来”。以 7B 模型为例:FP16 权重约 14 GB,远超手机内存;INT8 约 7 GB,仍然偏大;INT4 约 3.5 GB,勉强可加载但解码带宽压力大。若设备只有 8 GB 内存且需留出系统占用,实际可用约 4~5 GB,那么 INT4 几乎是唯一选择。但 INT4 对激活值量化敏感,通常采用“权重量化 + 激活保持 FP16”的混合方案,即 W4A16。
量化粒度也受约束影响。Per-tensor 量化实现简单、硬件友好,但精度损失大;Per-channel 量化精度更好,却增加反量化开销。在带宽受限的设备上,反量化本身也要读权重,因此 group-wise 量化(如 group size 128)成为常见折中:既控制精度损失,又让反量化开销可接受。校准集的选择同样关键——用真实业务分布校准,比用通用语料校准的端侧精度通常高 1~3 个百分点。
推理框架的匹配逻辑
框架选择取决于三个匹配:算子匹配、量化格式匹配、调度匹配。若模型含大量自定义算子,而目标 NPU 只支持标准算子,就必须在框架层做算子替换或回退到 CPU,这会直接拉低有效算力。量化格式方面,不同 NPU 对 INT4 的打包方式不同(如是否支持对称量化、是否要求 zero-point 为 0),框架必须能导出对应格式,否则量化模型无法被硬件加速。
调度匹配常被忽略。端侧推理往往要与摄像头、音频、显示等模块共享内存和总线,框架是否支持零拷贝、是否能在 NPU 与 CPU 间做流水线并行,直接影响时延和功耗。例如,把预处理放在 CPU、推理放在 NPU、后处理再回 CPU,若中间张量需要多次拷贝,带宽和功耗都会上升。成熟的端侧框架会提供内存复用池和异步执行接口,减少这类开销。
一个可复用的约束核算示例
假设目标设备:NPU 8 TOPS INT8、内存 8 GB LPDDR5、带宽 25 GB/s、持续功耗 4 W、结温上限 85°C、可用存储 4 GB。目标场景:中文语音助手,要求 TTFT < 300 ms、TPOT < 50 ms。
第一步,按 TPOT 反推可承载的权重体积:TPOT 50 ms 对应 20 token/s,若带宽利用率按 60% 计,有效带宽 15 GB/s,则每 token 可搬运权重约 15 GB/s × 0.05 s = 0.75 GB。也就是说,权重体积不宜超过 0.75 GB,对应 INT4 量化下约 1.5B 参数。第二步,检查内存:1.5B INT4 权重约 0.75 GB,KV Cache 按 2048 上下文、hidden 2048、32 层估算约 0.5 GB,加上运行时开销,总占用约 1.5~2 GB,8 GB 内存完全可容纳。第三步,检查存储:模型文件约 0.8 GB,小于 4 GB 上限。第四步,检查算力:1.5B 模型每 token 约 3 GFLOP,20 token/s 需要 60 GFLOPS,远低于 8 TOPS 有效算力,算力不是瓶颈。第五步,检查功耗与热:NPU 满载约 2~3 W,加上 CPU 和内存,总功耗约 3.5~4.5 W,接近持续预算上限,需要限制并发任务或降低频率。
核算结论:该设备适合部署 1.5B 级别、INT4 量化的模型,框架优先选择支持 W4A16 且能对接该 NPU 的方案。若实测 TPOT 超过 50 ms,优先检查 KV Cache 是否过大、是否开启了不必要的日志或调试输出,再考虑进一步压缩上下文长度。