跳转至

十九:模型压缩:量化、ZeroQuant、LLM.int8() 与 SmoothQuant自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484153&idx=1&sn=43112a23068962b650b1c936f67d8f90&chksm=f01eb180c769389685633ef1e139f536923fa0ff60eba16e1509a37a363c158dad2625420961#rd

覆盖范围

  • 模型压缩与量化基础

  • scale、zero point、对称/非对称量化

  • PTQ/QAT、weight-only/W8A8、量化粒度

  • activation outlier 与大模型量化难点

  • ZeroQuant、LLM.int8()、SmoothQuant

  • NF4/QLoRA 回顾、校准数据、部署排错

一、模型压缩与量化基础

  • 什么是模型压缩?常见模型压缩方法有哪些?

  • 什么是模型量化?它主要降低哪些部署成本?

  • 请写出均匀量化和反量化的基本公式。

  • scale 和 zero point 分别有什么作用?

  • 对称量化和非对称量化有什么区别?

  • INT8 相比 FP16 理论上能节省多少权重存储?

  • 为什么实际量化压缩率不一定等于理论 bit 比例?

  • 量化误差主要来自哪里?

二、量化粒度与类型

  • per-tensor 量化是什么?优缺点是什么?

  • per-channel 量化是什么?为什么常用于权重量化?

  • per-token 量化是什么?适合什么场景?

  • per-group 量化是什么?group size 如何影响精度和开销?

  • weight-only quantization 是什么?

  • W8A8 量化是什么?

  • 为什么激活量化通常比权重量化更难?

  • 动态量化和静态量化有什么区别?

  • 什么是 calibration data?它在 PTQ 中有什么作用?

  • 校准数据分布不匹配会带来什么问题?

三、PTQ、QAT 与 LLM 量化难点

  • PTQ 和 QAT 分别是什么?

  • 为什么大模型部署中 PTQ 更常见?

  • QAT 相比 PTQ 的优势和成本是什么?

  • 大模型量化为什么比小模型量化更难?

  • 什么是 activation outlier?

  • activation outlier 为什么会破坏 naive INT8 量化?

  • 为什么 per-tensor scale 对 outlier 特别敏感?

  • activation outlier 和模型规模之间有什么关系?

  • 为什么量化后需要同时看困惑度和下游任务指标?

  • 为什么量化不一定带来推理加速?

四、ZeroQuant

  • ZeroQuant 的目标是什么?

  • ZeroQuant 的三个核心组件是什么?

  • ZeroQuant 中 fine-grained quantization 的意义是什么?

  • 什么是 layer-by-layer knowledge distillation?

  • ZeroQuant 为什么强调不访问原始训练数据也能做低成本量化?

  • ZeroQuant 的 backend optimization 主要解决什么问题?

  • ZeroQuant 和普通 PTQ 相比有什么系统化特点?

  • ZeroQuant 适合什么部署场景?

五、LLM.int8()

  • LLM.int8() 主要解决什么问题?

  • LLM.int8() 论文中大模型量化失败的关键观察是什么?

  • 什么是 emergent outlier feature?

  • LLM.int8() 的 mixed-precision decomposition 是什么?

  • 为什么 outlier dimensions 要用 FP16 处理?

  • LLM.int8() 中 normal dimensions 如何处理?

  • 请用公式说明 XW 如何拆成 normal 部分和 outlier 部分。

  • 什么是 vector-wise quantization?

  • vector-wise quantization 为什么比 per-tensor 更适合大模型矩阵乘?

  • LLM.int8() 为什么能在保持精度的同时降低显存?

  • LLM.int8() 的主要局限是什么?

  • bitsandbytes 中 load_in_8bit=True 大致对应什么思想?

六、SmoothQuant 与 NF4

  • SmoothQuant 主要解决什么问题?

  • SmoothQuant 的核心观察是什么?

  • SmoothQuant 如何把量化难点从 activation 迁移到 weight?

  • 请写出 SmoothQuant 的等价变换公式。

  • SmoothQuant 中 smoothing scale 的作用是什么?

  • SmoothQuant 中 alpha 控制什么?

  • alpha 过大或过小分别可能有什么问题?

  • SmoothQuant 和 LLM.int8() 处理 outlier 的方式有什么不同?

  • NF4 是什么?它和普通 int4 有什么区别?

  • QLoRA 中 NF4 的作用是什么?

  • NF4/QLoRA 和 LLM.int8()/SmoothQuant 的主要使用场景有什么不同?

  • 为什么 4-bit 量化通常比 8-bit 更需要方法设计和校准?

七、部署、评估与排错

  • 量化部署时应评估哪些指标?

  • 如果量化后困惑度上升明显,应该排查哪些因素?

  • 如果量化后推理速度没有提升,可能是什么原因?

  • 为什么 kernel 支持对量化部署很关键?

  • 为什么有些层需要保持高精度?

  • KV cache 量化和权重量化有什么区别?

  • 量化对长上下文推理可能有什么影响?

  • 量化模型上线前为什么要做真实场景评估?

  • 如何选择 LLM.int8()、SmoothQuant、NF4/QLoRA?

  • 请完整比较 ZeroQuant、LLM.int8()、SmoothQuant、NF4/QLoRA 的目标、机制、优缺点和适用场景。

            预览时标签不可点
    

    <div class="