
为什么需要 batch假设你正在为一个在线翻译服务部署一个基于 7B 参数的大语言模型。单个请求进来,模型逐 token 地生成回答——先算第一个词,再算第二个词,如此往复。此时观察 GPU 的利用率,你会看到一个令人不安的数字:往往只有 10%-30%。服务器在烧钱,算力却在大部分时间里闲置。问题出在哪里?单请求利用率低:被"权重访存"卡住的生成过程要理解利用率为何如此惨淡,需要先看清大模型推理时 GPU 真正在做什么。以 7B 参数的模型为例,其权重文件大小约为14GB(假设为 FP16 精度)。而一块 NVIDIA A100 GPU 的 HBM 带宽约为1.5TB/s。生成一个 token 时,GPU 必须将模型的所有 14GB 权重从显存读入计算单元(SM),完成矩阵乘法后再写回。这一步被称为权重访存。计算本身很快——对于单个 token,7B 模型的矩阵乘法只需约几毫秒的纯计算时间;但读取 14GB 权重所需的时间是: