大模型量化中的 INT8、INT4、PTQ 和 QAT 应该如何理解与选择?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
量化选型不能只比较 INT8 与 INT4,先说清量化的是权重、激活还是 KV,再交代 PTQ/QAT、粒度、异常值、校准集和硬件 Kernel。更低位宽可能省显存却因反量化变慢,因此答案应以目标后端上的质量、延迟、吞吐和显存联合对照收束。
可以这样答:
INT4、INT8 不能只按位宽选,必须看量化对象、算法、Kernel 和目标硬件。区分:PTQ 用校准数据估计尺度,成本低;QAT 在训练中模拟量化,通常更稳但更贵。权重、激活和 KV 的异常值结构不同,也不能共用同一粒度。要注意,低位宽能省显存和带宽,却可能因反量化或不成熟 Kernel 变慢。工程上要用真实请求集比较任务胜率、困惑度、吞吐、TTFT、TPOT、峰值显存和单位请求能耗。
核心回答
量化是用更低位宽表示权重、激活或 KV Cache,以减少显存占用和数据搬运;它是否加速,取决于硬件和推理框架有没有对应的高效算子。面试时应先说清量化对象:例如 W8A8 同时量化权重和激活,W4A16 通常只把权重压到 4 bit、计算时仍使用较高精度激活。PTQ(训练后量化)在已有模型上直接量化,通常只需要少量校准数据;QAT(量化感知训练)在训练中模拟量化误差,成本更高,但在低位宽或敏感任务上可能更稳。
选择时先建立 BF16/FP16 基线,再从硬件支持良好的 8 bit 或 weight-only 4 bit 方案开始,用目标任务评测质量,并实测显存、吞吐和延迟。不能只根据“位宽减半”推断服务一定快一倍。
展开说明
若模型有 \(N\) 个参数、每个权重用 \(b\) bit,权重主体约占 \(Nb/8\) 字节;实际还包含 scale、zero-point、未量化层、运行时工作区和 KV Cache。常见取舍包括:
- 精度与粒度:按通道或按较小 group 量化通常更能适应不同数值范围,但元数据和算子开销也更高。
- 离群值:少量大幅值通道可能主导误差。GPTQ 使用近似二阶信息逐层降低权重量化误差;AWQ 根据激活统计保护较重要的权重通道。
- 校准数据:应接近真实输入的语言、长度和领域;只用很小且失真的样本,可能低估质量损失。
- 端到端性能:模型若仍受其他算子、通信或 KV Cache 限制,权重变小并不等价于同比例降低延迟。
工程实践
固定模型、tokenizer、服务框架和生成参数,对同一批代表性样本比较基线与量化版本。至少记录任务质量分片、拒答或格式错误率、峰值显存、TTFT、TPOT 和不同并发下的 tokens/s。还要验证目标 GPU 的量化 kernel 是否真正启用;若发生频繁反量化或回退算子,模型虽然更小,吞吐反而可能没有改善。
常见追问
- 为什么 4 bit 模型不一定比 8 bit 模型快一倍? 端到端速度还受反量化、Kernel 覆盖、张量形状和通信限制;省下的带宽可能被转换开销抵消。
- 权重量化、激活量化和 KV Cache 量化分别影响什么? 权重量化主要省模型容量与权重带宽,激活量化影响中间计算,KV 量化影响长上下文与并发容量且误差会进入后续注意力。
- 校准集应该怎样构造,如何判断量化损失可接受? 覆盖真实长度、语言、领域和难例分布;在业务非劣阈值内同时检查质量、关键切片和性能收益。
一句话复习
量化先分清对象与算子支持,再用真实任务同时验证质量、显存和端到端速度。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。