Skip to content

9. 最佳实践:清单与反模式 ​

一句话理解:端侧推理的最佳实践大多是一条公式的变形——「每 token 字节数 × 搬运次数 ≤ 带宽 × 时延预算」;本章把它展开成可勾选的清单与要避开的反模式。

9.1 容量规划清单 ​

text
□ 1. 选目标模型时先算带宽账:tok/s 上限 = 带宽 × 0.8 ÷ 权重量化字节
□ 2. 选权重量化位宽:端侧甜点区 Q4_K_M 类混合量化(等效 4.5-4.8 bit),
     低于 Q3 需逐任务验证精度,W4A16 优先于 W4A4(激活位宽保 16)
□ 3. 确认 GQA:KV 头数 ≤ 8 是端侧长上下文前提,新选型避免 MHA 老模型
□ 4. 算 KV 预算:最大上下文 = (内存 - OS保留 - 权重) ÷ KV每token,
     按业务 95 分位上下文长度倒推所需 KV 量化档(FP16/INT8/INT4)
□ 5. 留 15-20% 内存余量给激活、页缓存与系统抖动

9.2 运行时与格式清单 ​

决策点推荐理由
跨平台快速验证llama.cpp + GGUF生态最大、后端最全、迭代最快
Apple 正式上架Core ML(.mlpackage)ANE 红利 + 系统级集成
Mac/iPad 研究原型MLX统一内存原生设计
Android 正式产品ExecuTorch + QNN 或 ORT + QNN EPNPU 覆盖率与官方支持
已有 ONNX 资产ORT 多 EP 组合一套代码多芯片
浏览器场景MLC/WebGPU唯一严肃路线
text
□ 6. 格式双轨收敛:社区/开发者走 GGUF,正式产品走平台原生格式,
     避免维护三条以上打包管线
□ 7. 打包时内嵌完整元数据(分词器、rope 参数、GQA 形状、算子覆盖清单)
□ 8. 模型包必须签名 + 哈希清单,加载失败拒绝运行而非降级

9.3 性能优化清单 ​

text
□ 9. 默认 mmap 懒加载 + 合理预取窗口;热路径小模型 mlock
□ 10. prefill 与 decode 分开优化:prefill 吃 NPU INT8 算力,
     decode 压每 token 字节(量化 > 投机解码 > MoE 稀疏)
□ 11. 投机解码按会话实测接受率动态开关;α < 0.6 的领域直接关掉
□ 12. 算子回退税设预算(≤15%),超预算回编译期解决(图融合/改写算子),
      不在运行时硬扛
□ 13. 系统提示词/RAG 前缀 KV 预热缓存,多轮对话只增量 prefill
□ 14. 采样循环零分配;会话级内存一次分配、复用到底

9.4 端云协同清单 ​

text
□ 15. 隐私分级先于性能求值:默认从严,用户可显式放宽
□ 16. 路由决策可远程覆写,且默认配置必须云端可用(端侧挂=无感知降级)
□ 17. 估时模型用持续性能数字(峰值 × 0.6-0.7),并按遥测回流修正
□ 18. 两端都不满足 SLO 时显式降级(缩短输出/模板回复),禁止静默超时
□ 19. 端云双跑抽样对比质量,量化掉点 > 2% 的领域回退云端

9.5 反模式清单 ​

反模式后果正确姿势
用 datasheet TOPS 做容量规划上线即热节流,长对话后半段超时用稳态数字,热箱验证
FP16 权重直端侧装不下或 tok/s 个位数至少 Q4 起步
冷启动数字报首 token预期管理崩坏报热启动 + p95
每个回退算子单独搬运传输税失控融合 + 批量搬运
mlock 一切KV 预算被挤占只锁热路径小模型
隐私让位于延迟悄悄上云合规事故硬约束 + 审计日志
端侧失败静默重试用户面对无限转圈显式降级 + 可解释提示
单一机型通过即全量低端机集中崩溃机型矩阵 + 分级降档

9.6 一页纸速查 ​

9.7 本章小结 ​

清单的本质是把前三章的公式变成肌肉记忆:先带宽账选位宽,再容量账定上下文,异构账管回退,路由账守隐私;所有数字用稳态、所有决策可回滚。

Released under CC-BY-SA-4.0 License.