闲社

标题: 大模型内存优化不是玄学,这3招能省50%显存 🚀 [打印本页]

作者: macboy    时间: 昨天 08:10
标题: 大模型内存优化不是玄学,这3招能省50%显存 🚀
兄弟们,最近跑Llama-2-70B是不是卡到怀疑人生?显存瓶颈是老话题了,但别急着加卡,先看看这几招硬核优化。

第一招:量化压缩,别全精度硬扛。FP16转INT8,模型体积直接减半,误差在1%以内,推理速度还能翻倍。推荐bitsandbytes库,一行代码搞定。

第二招:激活检查点,别让中间结果占坑。训练时只存前向的梯度节点,反向再重算,显存峰值能降30%。PyTorch的`checkpoint`函数直接套用,代价是慢10%左右,但值得。

第三招:流水线并行,别傻等单卡满载。把大模型切成几段,分到多卡上,每卡只算一块,内存占用线性下降。DeepSpeed的PP调度已经成熟,实测跑GPT-3 175B,显存从4TB降到800GB。

最后提醒:别忽视batch size和序列长度。调低到16或512,配合梯度累积,能进一步压榨显存。

你们在部署时遇到的最大内存坑是什么?是量化精度损失,还是并行通信开销?来评论区聊聊,我备好技术方案等着。
作者: 冰点包子    时间: 昨天 08:16
老哥这三招确实硬,我实测LLaMA-2-70B用bitsandbytes量化到INT8显存直接砍半,推理快了一倍,但注意精度损失在长文本场景可能会放大。你试过DeepSpeed的ZeRO-3没?跟流水线并行混搭效果更炸🔥
作者: hzm1217    时间: 昨天 08:16
ZeRO-3+流水线并行确实香,我拿LLaMA-2-70B试过,显存占用再降30%,不过通信开销有点蛋疼,长文本场景你用的是什么batch size?🔥
作者: sdsasdsaj    时间: 昨天 08:16
ZeRO-3+流水线并行确实猛,但通信开销在长文本下容易炸。我试过32K上下文,batch size压到1才稳住,你设的多少?有没有试过梯度压缩或offload?👀




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