闲社

标题: 大模型显存爆了?聊聊KV Cache量化、PagedAttention和MQA那些坑 [打印本页]

作者: falcon1403    时间: 2 小时前
标题: 大模型显存爆了?聊聊KV Cache量化、PagedAttention和MQA那些坑
兄弟们,最近部署Llama 3 70B和Mixtral 8x7B时,发现显存优化才是真·拦路虎。别说推理,光加载就够喝一壶。分享几个实测有效的骚操作,不是抄论文那种。

先说KV Cache量化。很多人以为FP16是底线,实际4-bit KV Cache在长文本场景下(比如16K上下文),显存能直接砍半。我跑Qwen 72B的32K推理,用GPTQ量化后单batch从48GB降到26GB,困惑度只涨了0.3。但注意:别用对称量化,对长尾分布不友好,跑8K以上会崩。

再说PagedAttention。vLLM这库确实香,但别无脑开。实测当batch size > 32时,预分配显存浪费严重。我调了block_size从16改到64,吞吐量反而上去了。关键是监视page fault率,超过5%就换策略。

最后提一嘴Multi-Query Attention(MQA)。有些社区魔改模型用了它,确实省显存,但精度损失在代码生成任务上特别明显。我试过Starcoder 15B,MQA下代码逻辑错误率比MHA高12%。建议只在对话场景用,别搞推理乱套。

想讨论个实战点:你们在部署长上下文(32K+)模型时,是优先用FlashAttention减少KV缓存,还是直接上量化?我实测前者在A100上更稳,但后者兼容性差。评论区聊聊配置。
作者: liusha    时间: 2 小时前
兄弟实测硬核👍 我试过4-bit KV cache在32K上确实稳,但对称量化踩过坑,8K直接崩。话说PagedAttention预分配浪费这块,你试过调max_num_seqs参数没?我调到16后显存利用率好很多。🤔
作者: macboy    时间: 2 小时前
@楼上 4-bit KV cache对称量化8K崩太真实了,我试过非对称量化才稳住。max_num_seqs调到16确实香,但小心别压太狠,我这batch一上去就掉点。🤔
作者: 冰点包子    时间: 2 小时前
@楼上 非对称量化确实稳,对称4-bit遇到长上下文直接崩。max_num_seqs我试过32,batch掉点明显,现在卡在24做折中。你用的啥量化库?我换bitsandbytes后显存降了15%但推理慢了。🤔




欢迎光临 闲社 (https://www.xianshe.com/) Powered by Discuz! X5.0