真实面经题目 · 原创解析

接手一个未量化的大模型时,如何推进量化方案选择、校准、精度评估和推理性能迭代?

这题考未量化大模型的量化 rollout 方法论,重点是从部署目标、量化范围、校准集、kernel 支持、质量回归、性能收益到灰度回滚形成闭环,而不是背几个量化名词。

60 秒回答模板

我会把它当成一个工程 rollout,而不是先拍脑袋选 INT4 或 INT8。第一步定义目标和基线:模型用于离线批处理、在线对话还是高并发服务,主要痛点是显存放不下、吞吐不足、TTFT 高、单 token 慢还是成本高,并记录未量化 BF16/FP16 版本的质量、延迟、吞吐和显存基线。第二步分析模型结构和敏感点:哪些是 attention、MLP、embedding、lm head、norm,哪些层或通道 outlier 明显,是否要先做 weight-only、再考虑 activation 或 KV cache 量化。第三步选方案和粒度:例如 per-channel 或 per-group,静态或动态 scale,PTQ、校准、少量微调或 QAT,关键层保留高精度。第四步确认推理引擎和 kernel 支持,避免模型文件变小但运行时 dequant、layout 转换或 fallback 抵消收益。第五步用通用能力、业务切片、长上下文、稳定性和安全样例做精度回归,同时用端到端延迟、吞吐、显存峰值、并发承载和 p99 做性能评估。上线时要灰度、监控、可回滚,并持续迭代校准集、混合精度策略和 kernel 实现。

考点 目标先行
难度 真实面经题
回答目标 让候选人能把未量化模型的量化推进讲成完整工程项目:目标定义、方案选择、校准评估、kernel 落地、质量性能闭环和上线回滚都要覆盖。

深入解析

01

先定义部署目标和基线

量化不是位宽越低越好。要先确认业务目标是降低显存、提升吞吐、降低延迟、扩大 batch、降低成本,还是适配某类 GPU;同时建立未量化版本的质量、TTFT、decode latency、吞吐、显存峰值和稳定性基线。没有基线就无法判断量化收益和质量损失是否可接受。

02

分析模型结构和敏感区域

不同模块对量化误差的敏感度不同。线性层权重量化通常是第一步,attention、MLP、embedding、lm head、norm、激活和 KV cache 的处理要分开评估。还要观察 outlier channel、激活分布、长上下文行为和特定能力切片,决定哪些层可以低比特,哪些层应保留 BF16/FP16 或使用更细粒度 scale。

03

选择量化范围和粒度

方案选择可以从保守到激进推进:先做 weight-only INT8/INT4 或 AWQ/GPTQ 类权重量化,再评估激活量化、KV cache 量化或 FP8 路径。粒度上要比较 per-tensor、per-channel、per-group,scale 是静态还是动态,zero-point 是否需要,累加精度如何设置。粒度越细通常精度更好,但元数据、kernel 和访存复杂度也会上升。

04

校准集决定误差暴露程度

PTQ 依赖校准数据估计权重和激活范围,校准集应覆盖真实 prompt 长度、语言、领域、工具调用、代码、数学、长上下文和高风险场景。只用少量短文本校准,可能在平均 benchmark 上看起来还行,但在线长尾场景输出重复、格式崩坏或拒答边界漂移。校准后还可以通过少量微调或混合精度修复敏感层。

05

推理引擎和 kernel 支持要同步

量化工程不能只产出一个低比特权重文件。要确认加载格式、scale 存储、layout、GEMM kernel、dequant 融合、batch shape、Tensor Core 路径、KV cache 管理和 fallback 是否被推理引擎高效支持。如果运行时频繁转换格式或退回通用 kernel,端到端可能不升反降。

06

用质量和性能一起迭代上线

评估要同时看模型质量和系统收益。质量侧看通用 benchmark、业务样例、长文本、代码、数学、安全、幻觉、格式遵循和人工偏好;系统侧看显存、TTFT、单 token 延迟、吞吐、并发、p95/p99 和稳定性。上线时采用灰度、双跑、监控、告警和可回滚策略,并把 badcase 回流到校准集和混合精度策略。

易错点

  • 一上来就指定 INT4 或 INT8,没有说明部署目标、基线和可接受质量损失。
  • 把量化只理解成权重文件变小,忽略激活、KV cache、scale 元数据、kernel 和推理引擎支持。
  • 用很小或不贴近真实分布的校准集做结论,导致长尾场景和长上下文回归没被发现。
  • 只看平均 benchmark,不看代码、数学、工具调用、安全、格式遵循和业务高价值切片。
  • 忽略混合精度和关键层保高精度,把位宽越低当成越好。
  • 声称蚂蚁内部采用了某种具体量化框架或上线指标,但来源只支持通用 rollout 流程题。

面试官追问

PTQ 和 QAT 在 rollout 中怎么选择?

PTQ 成本低、适合先快速验证权重量化收益;如果精度损失集中在关键能力或低比特策略较激进,可以考虑少量微调或 QAT。QAT 成本更高,但能让模型训练时适应量化噪声。

校准集应该怎么构建?

要覆盖线上真实输入分布和高风险切片,包括不同长度、语言、领域、代码、数学、长上下文、工具调用和安全边界。校准集不是越大越好,而是要能代表误差敏感场景。

哪些层常需要保留高精度?

具体要看评测结果,但 norm、embedding、lm head、异常值集中的层、长上下文敏感层或对输出分布影响大的层常会被优先检查,必要时保留 BF16/FP16 或使用更细粒度量化。

量化后权重变小,为什么端到端不一定更快?

如果 kernel 不支持低比特高效计算,dequant 没有融合,layout 转换多,batch 太小,或瓶颈在调度和网络上,模型文件变小不一定转化成推理加速。

如何判断量化版本可以上线?

要同时满足质量损失可接受、关键业务切片不回退、端到端性能有收益、显存和稳定性达标,并具备灰度、监控、告警和快速回滚。只看平均 benchmark 或单机吞吐不够。