环境准备
pip install "openvino>=2025.1.0" "optimum[openvino,nncf]" openvino-genai huggingface_hub nncf
Optimum-Intel 会在 export openvino 时调用 NNCF 做权重量化(weight compression),支持 INT4/INT8 等。
用 optimum-cli 做 INT4 导出
Optimum-Intel 文档支持通过 --weight-format int4 做 4-bit 权重量化并导出 OpenVINO IR:
optimum-cli export openvino \
--model Qwen/Qwen3-14B \
--task text-generation-with-past \
--weight-format int4 \
--ratio 0.8 \
--group-size 128 \
qwen3-14b-int4-ov
说明:
-
--weight-format int4
-
对 LLM 做权重 INT4(默认是 4-bit 非对称 int4_asym) 的压缩。
-
-
--ratio 0.8
-
大概 80% 的层用 INT4,其余用 INT8 备份精度,平衡精度和体积/速度。
-
-
--group-size 128
-
分组量化的 group size,官方很多 INT4 模型也用 128。
-
用 optimum-cli 做 INT8 导出
INT8 量化采用默认的 Per-Channel 策略更稳健,足以提供很好的精度,所以不需要额外的分组参数。并且对参数的敏感度较低。通常不需要像 INT4 量化那样显式地设置 --group-size 和 --ratio
optimum-cli export openvino \
--model Qwen/Qwen3-14B \
--task text-generation-with-past \
--weight-format int8 \
qwen3-14b-int4-ov
用 GenAI 加载自己导出的模型
import openvino_genai as ov_genai
model_dir = "qwen3-14b-int4-ov"
device = "CPU" # 或 "GPU"/"NPU"
pipe = ov_genai.LLMPipeline(model_dir, device)
tokenizer = pipe.get_tokenizer()
tokenizer.set_chat_template(tokenizer.chat_template)
out = pipe.generate(
"请用 3 点总结一下 INT4 量化对 LLM 的影响。",
max_length=200,
)
print(out)
1053

被折叠的 条评论
为什么被折叠?



