兄弟们,最近帮几个项目做模型部署优化,踩了不少坑,也捞到几个实打实的技巧。分享出来,免得大家重复造轮子。
**1. 动态batch + 显存预分配**
别傻傻固定batch size。用PyTorch的`torch.cuda.memory_stats`监控显存峰值,动态调整batch。配合`torch.cuda.empty_cache()`手动回收碎片,能多塞30%的样本。注意预分配策略:先跑一次最大batch,让CUDA缓存热起来。
**2. INT8量化别只盯着Post-Training**
很多同学直接上PTQ(后训练量化),结果掉点3-5%。试试QAT(量化感知训练)的蒸馏版:用FP16教师模型蒸馏INT8学生,只微调最后几层。我拿Bert-base试过,精度只掉0.2%,推理速度翻倍。
**3. 算子融合 + CUDAGraph**
别用`torch.jit.script`了,容易爆。用`torch.compile`的`reduce-overhead`模式,配合手动合并相邻的LayerNorm和Linear。实测GPT-2推理延迟从12ms降到8ms。再上CUDAGraph固化计算图,省掉kernel launch开销。
**最后抛个问题:**
你们在部署大模型(7B+)时,遇到过哪些“看似合理但实测翻车”的优化手段?比如half精度溢出、稀疏化后推理变慢。来评论区聊聊,我复盘几个经典案例。 |