知识困难
在大模型训练和推理中,如何进行显存优化?(如梯度检查点、混合精度、ZeRO 等)
训练侧靠混合精度、梯度检查点、ZeRO 分片、梯度累积和 8-bit 优化器;推理侧靠 KV Cache 量化/分页、权重量化和小头部署。
标准答案
训练显存的大头是参数、梯度、优化器状态(Adam 约为参数的 4 倍)和激活。手段:bf16/fp16 混合精度(保留 fp32 主权重)省一半以上;梯度检查点用重算换激活显存;ZeRO-1/2/3(或 FSDP)分别对优化器状态、梯度、参数做分片;梯度累积用时间换 batch 大小;8-bit 优化器进一步压缩状态。推理侧:KV Cache 是增长主体,用量化(int8)、PagedAttention 分页、GQA/滑窗压缩;权重可 int4 量化减少驻留。
深入理解
面试官期待的是显存账本意识:能按 13B 模型粗算各部分占比(参数 26GB@bf16、Adam 状态约 104GB、激活随序列长度线性),再对号入座选手段。每个手段的代价也要能说清:梯度检查点约多 30% 计算、ZeRO-3 增加通信、量化有精度风险。