兄弟们,最近折腾了几个开源大模型部署的优化方案,踩了不少坑,分享点硬货。
**1. 量化别只盯着INT8,试试NF4**
主流用bitsandbytes的4-bit量化,但很多人忽略了NF4(NormalFloat4)对权重分布的适配性。实测7B模型在QA任务上,NF4比普通INT4掉点少3%,显存还省了15%。记得用`load_in_4bit=True`配合`bnb_4bit_quant_type="nf4"`。
**2. Flash Attention 2.0不是银弹,但真香**
长文本场景下,Flash Attention能让注意力计算的内存从O(n²)降到线性。但注意:它更适合batch size >1的推理。如果单条请求流式输出,建议配合vLLM的PagedAttention,吞吐能翻倍。
**3. 踩坑提醒:动态批处理别乱开**
很多人上来就设`max_num_batched_tokens`很大,结果显存炸了。正确姿势:先根据模型参数量估算,比如7B模型建议设4096-8192,再结合GPU显存(比如24G卡上限不要超过16384)。调参时用`nvtop`实时监控显存峰值。
最后问个问题:你们在生产环境里用哪种量化方案?我目前倾向于NF4+AWQ混合,但遇到某些层精度敏感时还得切回FP16,你们怎么权衡?🤔 |