I
站方编辑 · Staff
量化是降低显存与成本最直接的手段,但格式和方法很多,选错了可能质量下降明显或者根本跑不快。这篇做一个梳理。
【一、精度层级】
- FP16 / BF16:通常作为“基准”精度。BF16 数值范围更大,训练和推理都更不容易溢出。
- FP8:在较新的数据中心 GPU 上有硬件支持,兼顾速度与质量,适合大规模服务。
- INT8:权重量化(W8A16)或权重+激活量化(W8A8),质量通常接近原模型。
- INT4:显存降到约四分之一,适合消费级显卡和端侧,但对部分任务(数学、代码、长推理)的影响需要重点评测。
【二、常见方法与格式】
- GPTQ:基于少量校准数据逐层量化,常用于 GPU 推理。
- AWQ:根据激活分布保护重要权重,在 INT4 下通常保持较好质量。
- GGUF:llama.cpp 生态的文件格式,提供多种量化等级(如 Q4、Q5、Q8 系列),适合 CPU、Apple Silicon 与本地部署。
- bitsandbytes:在 Hugging Face 生态中加载 8bit/4bit 模型很方便,常用于 QLoRA 微调;推理速度未必是最优。
各推理框架支持的格式不同,部署前先确认框架是否支持对应格式和对应硬件的加速内核。
【三、选择思路】
1. 显存充足、追求质量:BF16 或 FP8。
2. 单张消费级显卡跑中等规模模型:INT4(AWQ/GPTQ),或 GGUF 的中等量化等级。
3. 纯 CPU 或 Mac 本地:GGUF。
4. 同等显存下,“更大模型 + 低比特量化”有时优于“更小模型 + 高精度”,但要用自己的评测集验证。
【四、常见坑】
- 量化后速度反而变慢:硬件不支持对应的低比特内核,需要反量化计算。
- 校准数据与业务分布差异大,导致特定领域质量下降。
- 只看困惑度(perplexity),忽略了下游任务的实际退化。
- 不同来源的量化文件质量参差不齐,注意查看来源与说明。
讨论:
1. 你们在生产环境中最常用哪种量化方案?
2. INT4 量化后,哪些任务的退化最明显?
【一、精度层级】
- FP16 / BF16:通常作为“基准”精度。BF16 数值范围更大,训练和推理都更不容易溢出。
- FP8:在较新的数据中心 GPU 上有硬件支持,兼顾速度与质量,适合大规模服务。
- INT8:权重量化(W8A16)或权重+激活量化(W8A8),质量通常接近原模型。
- INT4:显存降到约四分之一,适合消费级显卡和端侧,但对部分任务(数学、代码、长推理)的影响需要重点评测。
【二、常见方法与格式】
- GPTQ:基于少量校准数据逐层量化,常用于 GPU 推理。
- AWQ:根据激活分布保护重要权重,在 INT4 下通常保持较好质量。
- GGUF:llama.cpp 生态的文件格式,提供多种量化等级(如 Q4、Q5、Q8 系列),适合 CPU、Apple Silicon 与本地部署。
- bitsandbytes:在 Hugging Face 生态中加载 8bit/4bit 模型很方便,常用于 QLoRA 微调;推理速度未必是最优。
各推理框架支持的格式不同,部署前先确认框架是否支持对应格式和对应硬件的加速内核。
【三、选择思路】
1. 显存充足、追求质量:BF16 或 FP8。
2. 单张消费级显卡跑中等规模模型:INT4(AWQ/GPTQ),或 GGUF 的中等量化等级。
3. 纯 CPU 或 Mac 本地:GGUF。
4. 同等显存下,“更大模型 + 低比特量化”有时优于“更小模型 + 高精度”,但要用自己的评测集验证。
【四、常见坑】
- 量化后速度反而变慢:硬件不支持对应的低比特内核,需要反量化计算。
- 校准数据与业务分布差异大,导致特定领域质量下降。
- 只看困惑度(perplexity),忽略了下游任务的实际退化。
- 不同来源的量化文件质量参差不齐,注意查看来源与说明。
讨论:
1. 你们在生产环境中最常用哪种量化方案?
2. INT4 量化后,哪些任务的退化最明显?