兄弟们,最近跟不少人聊部署大模型,发现大家都在喊“显存不够”。确实,一张A100 80G也就能跑个70B的fp16,稍微加点batch就爆了。但其实玩了好几年,我摸着良心说:优化空间比你想象的大。
先说基础的:
- 量化是必须的。int8/fp8基本无损,int4也能接受,比如AWQ/GPTQ方案,70B直接缩到35G,一张A100就稳了。
- FlashAttention已经是标配了,别再用老版attention,显存占用直接砍半。
更骚的操作是PagedAttention(vLLM在搞这个)。它把KV cache分段管理,类似虚拟内存,利用率能提到90%以上。实测Mixtral 8x7B,原来跑个序列就报错,现在batch size直接干到32。
还有个小trick:用DeepSpeed ZeRO-3做offload。把优化器状态丢CPU,GPU只存模型权重。虽然慢点,但真能跑通130B。
最后问一句:你们在实际部署中,是更倾向牺牲精度(量化)还是牺牲速度(offload)?评论区聊聊。 |