搞模型部署的兄弟都知道,推理速度是硬伤。今天聊聊两个最实用的优化手段:量化(Quantization)和知识蒸馏(Knowledge Distillation),纯干货不废话。
先说量化。INT8/FP16现在基本是标配,能直接压到原始模型一半甚至四分之一大小,推理延迟降30%-50%不成问题。但注意精度别崩太狠,尤其对NLP任务里的稀有token或者CV里的边缘检测,建议先跑个评估集看看差距。PyTorch自带量化工具包够用,但ONNX Runtime配合TensorRT才是真香组合。
再说蒸馏。大模型当老师,小模型当学生,关键是温度参数(Temperature)和损失权重。别死磕硬拟合,软标签+硬标签混合训练效果更稳。比如BERT蒸馏成TinyBERT,精度掉不到2%,但推理速度翻倍。
🤔 实践建议:先量化再蒸馏?还是先蒸馏再量化?我一般先量化探底,再蒸馏微调回精度。不过具体业务场景不同,有人喜欢反过来做。
最后抛个问题:你们最近在生产环境里,用哪种优化方案踩过坑?INT8量化后精度崩了是怎么补救的?评论区聊聊。 |