Q
Qwen3 32B Quantized.w4a16
由 RedHatAI 开发
Qwen3-32B的INT4量化版本,通过权重量化减少75%的磁盘和GPU内存需求,保持高性能
下载量 2,213
发布时间 : 5/5/2025
模型介绍
内容详情
替代品
模型简介
基于Qwen3-32B的量化模型,适用于文本生成、函数调用和多语言任务,支持高效推理
模型特点
高效量化
采用INT4权重量化,减少75%的磁盘和GPU内存需求
高性能保持
量化后模型在多个基准测试中保持99%以上的原始性能
多语言支持
支持多种语言的指令跟随和翻译任务
高效推理
优化后适合在vLLM等高效推理框架上部署
模型能力
文本生成
函数调用
多语言指令跟随
翻译
领域微调
使用案例
通用推理
知识问答
回答各类知识性问题
在MMLU测试中达到80.36分
数学推理
解决数学问题
在GSM-8K测试中达到85.97分
专业应用
领域专家
通过微调成为特定领域专家
代码生成
生成编程代码
库名称: transformers
许可证: apache-2.0
流水线标签: 文本生成
基础模型:
- Qwen/Qwen3-32B
标签: - neuralmagic
- redhat
- llmcompressor
- quantized
- INT4
Qwen3-32B-quantized.w4a16
模型概述
- 模型架构: Qwen3ForCausalLM
- 输入: 文本
- 输出: 文本
- 模型优化:
- 权重量化: INT4
- 预期用例:
- 推理
- 函数调用
- 通过微调成为领域专家
- 多语言指令跟随
- 翻译
- 非适用范围: 任何违反适用法律法规(包括贸易合规法律)的使用方式
- 发布日期: 2025年5月5日
- 版本: 1.0
- 模型开发者: RedHat (Neural Magic)
模型优化
该模型通过对Qwen3-32B的权重进行INT4量化获得。
此优化将每个参数的比特数从16降至4,磁盘大小和GPU内存需求减少约75%。
仅对transformer块内的线性算子权重进行量化。
权重采用对称分组量化方案,组大小为128。
量化算法采用GPTQ,通过llm-compressor库实现。
部署
该模型可使用vLLM后端高效部署,示例如下:
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Qwen3-32B-quantized.w4a16"
number_gpus = 1
sampling_params = SamplingParams(temperature=0.6, top_p=0.95, top_k=20, min_p=0, max_tokens=256)
messages = [
{"role": "user", "content": prompt}
]
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [{"role": "user", "content": "请简要介绍大语言模型。"}]
prompts = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
llm = LLM(model=model_id, tensor_parallel_size=number_gpus)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
vLLM还支持OpenAI兼容的服务。详见文档。
创建
创建详情
该模型通过运行以下代码片段,使用[llm-compressor](https://github.com/vllm-project/llm-compressor)创建。from llmcompressor.modifiers.quantization import GPTQModifier
from llmcompressor.transformers import oneshot
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型
model_stub = "Qwen/Qwen3-32B"
model_name = model_stub.split("/")[-1]
num_samples = 1024
max_seq_len = 8192
model = AutoModelForCausalLM.from_pretrained(model_stub)
tokenizer = AutoTokenizer.from_pretrained(model_stub)
def preprocess_fn(example):
return {"text": tokenizer.apply_chat_template(example["messages"], add_generation_prompt=False, tokenize=False)}
ds = load_dataset("neuralmagic/LLM_compression_calibration", split="train")
ds = ds.map(preprocess_fn)
# 配置量化算法和方案
recipe = GPTQModifier(
ignore=["lm_head"],
sequential_targets=["Qwen3DecoderLayer"],
targets="Linear",
scheme="W4A16",
dampening_frac=0.1,
)
# 应用量化
oneshot(
model=model,
dataset=ds,
recipe=recipe,
max_seq_length=max_seq_len,
num_calibration_samples=num_samples,
)
# 以compressed-tensors格式保存到磁盘
save_path = model_name + "-quantized.w4a16"
model.save_pretrained(save_path)
tokenizer.save_pretrained(save_path)
print(f"模型和分词器已保存至: {save_path}")
评估
该模型在OpenLLM排行榜任务(版本1和2)上使用lm-evaluation-harness进行评估,在推理任务上使用lighteval评估。
所有评估均使用vLLM进行。
评估详情
lm-evaluation-harness
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Qwen3-32B-quantized.w4a16",dtype=auto,gpu_memory_utilization=0.5,max_model_len=8192,enable_chunk_prefill=True,tensor_parallel_size=1 \
--tasks openllm \
--apply_chat_template\
--fewshot_as_multiturn \
--batch_size auto
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Qwen3-32B-quantized.w4a16",dtype=auto,gpu_memory_utilization=0.5,max_model_len=8192,enable_chunk_prefill=True,tensor_parallel_size=1 \
--tasks mgsm \
--apply_chat_template\
--batch_size auto
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Qwen3-32B-quantized.w4a16",dtype=auto,gpu_memory_utilization=0.5,max_model_len=16384,enable_chunk_prefill=True,tensor_parallel_size=1 \
--tasks leaderboard \
--apply_chat_template\
--fewshot_as_multiturn \
--batch_size auto
lighteval
lighteval_model_arguments.yaml
model_parameters:
model_name: RedHatAI/Qwen3-32B-quantized.w4a16
dtype: auto
gpu_memory_utilization: 0.9
max_model_length: 40960
generation_parameters:
temperature: 0.6
top_k: 20
min_p: 0.0
top_p: 0.95
max_new_tokens: 32768
lighteval vllm \
--model_args lighteval_model_arguments.yaml \
--tasks lighteval|aime24|0|0 \
--use_chat_template = true
lighteval vllm \
--model_args lighteval_model_arguments.yaml \
--tasks lighteval|aime25|0|0 \
--use_chat_template = true
lighteval vllm \
--model_args lighteval_model_arguments.yaml \
--tasks lighteval|math_500|0|0 \
--use_chat_template = true
lighteval vllm \
--model_args lighteval_model_arguments.yaml \
--tasks lighteval|gpqa:diamond|0|0 \
--use_chat_template = true
lighteval vllm \
--model_args lighteval_model_arguments.yaml \
--tasks extended|lcb:codegeneration \
--use_chat_template = true