使用 OpenVINO 对 Qwen3-14B 模型进行 INT4 量化

环境准备

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值