Quantization 模型量化

用更少的"位数"实现更快的AI推理

性能优化 部署 必知

📖 定义

Quantization(模型量化)是一种模型压缩技术,通过将模型参数从高精度浮点数(如32位FP32)转换为低精度表示(如8位INT8、4位INT4),显著减少模型体积、内存占用和计算需求,同时尽量保持模型性能。

简单理解:就像把高清照片压缩成小图——文件小了,但基本内容还在。

⚙️ 量化原理

1

映射范围

确定原始浮点范围和目标整数范围

2

量化转换

将浮点参数映射到整数(近似取整)

3

推理运算

使用整数运算替代浮点运算,大幅加速

🎯 量化精度对比

精度 位数 体积 速度 精度损失
FP32 32位 100% 1x 基准
FP16 16位 50% 1.5-2x 极小
INT8 8位 25% 2-4x
INT4 4位 12.5% 4-8x

💻 代码示例

Python - 使用 bitsandbytes 进行量化
# 使用LLM.cpp进行量化推理
from llama_cpp import Llama

# 加载量化后的模型 (Q4_K_M - 4位量化)
llm = Llama(
    model_path="./models/llama-2-7b-chat.Q4_K_M.gguf",
    n_ctx=2048,  # 上下文长度
    n_threads=4, # CPU线程数
    verbose=False
)

# 推理
output = llm(
    "用一句话解释量子计算:",
    max_tokens=100,
    temperature=0.7
)
print(output["choices"][0]["text"])

📚 相关术语