🚀 Qwen3-235B-A22B-FP8-dynamic
本项目是对Qwen3-235B-A22B模型进行FP8量化后的版本,能有效降低GPU内存需求,提高计算吞吐量,可用于推理、函数调用等多种自然语言处理场景。
🚀 快速开始
本模型可以使用 vLLM 后端高效部署,示例代码如下:
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Qwen3-235B-A22B-FP8-dynamic"
number_gpus = 4
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": "Give me a short introduction to large language model."}]
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 的服务。更多详细信息请参阅 文档。
✨ 主要特性
- 模型架构:Qwen3MoeForCausalLM,输入和输出均为文本。
- 模型优化:对激活和权重进行 FP8 量化,减少 GPU 内存需求约 50%,提高矩阵乘法计算吞吐量约 2 倍,同时磁盘大小需求也减少约 50%。
- 预期用例:推理、函数调用、通过微调服务主题专家、多语言指令跟随、翻译等。
- 适用范围:禁止以任何违反适用法律法规(包括贸易合规法律)的方式使用。
- 发布日期:2025 年 5 月 5 日
- 版本:1.0
- 模型开发者:RedHat (Neural Magic)
模型优化细节
本模型是通过将 Qwen3-235B-A22B 的激活和权重量化为 FP8 数据类型得到的。仅对 Transformer 块内线性算子的权重和激活进行量化,权重采用对称静态逐通道方案量化,激活采用对称动态逐令牌方案量化,使用 llm-compressor 库进行量化。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Qwen3-235B-A22B-FP8-dynamic"
number_gpus = 4
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": "Give me a short introduction to large language model."}]
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)
高级用法
文档未提及高级用法示例,故跳过此部分。
📚 详细文档
模型创建
创建详情
本模型使用 [llm-compressor](https://github.com/vllm-project/llm-compressor) 创建,代码片段如下:
from llmcompressor.modifiers.quantization import QuantizationModifier
from llmcompressor.transformers import oneshot
from transformers import AutoModelForCausalLM, AutoTokenizer
model_stub = "Qwen/Qwen3-235B-A22B"
model_name = model_stub.split("/")[-1]
model = AutoModelForCausalLM.from_pretrained(model_stub)
tokenizer = AutoTokenizer.from_pretrained(model_stub)
recipe = QuantizationModifier(
ignore=["lm_head"],
targets="Linear",
scheme="FP8_dynamic",
)
oneshot(
model=model,
recipe=recipe,
)
save_path = model_name + "-FP8-dynamic"
model.save_pretrained(save_path)
tokenizer.save_pretrained(save_path)
print(f"Model and tokenizer saved to: {save_path}")
模型评估
本模型在 OpenLLM 排行榜任务(版本 1)上进行了评估,使用 lm-evaluation-harness 和 vLLM。
评估详情
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Qwen3-235B-A22B-FP8-dynamic",dtype=auto,gpu_memory_utilization=0.5,max_model_len=8192,enable_chunk_prefill=True,tensor_parallel_size=4 \
--tasks openllm \
--apply_chat_template\
--fewshot_as_multiturn \
--batch_size auto
准确率
类别 |
基准测试 |
Qwen3-235B-A22B |
Qwen3-235B-A22B-FP8-dynamic(本模型) |
恢复率 |
OpenLLM v1 |
MMLU (5-shot) |
84.77 |
84.61 |
99.8% |
OpenLLM v1 |
ARC Challenge (25-shot) |
71.84 |
70.90 |
98.7% |
OpenLLM v1 |
GSM-8K (5-shot, strict-match) |
74.22 |
74.98 |
101.0% |
OpenLLM v1 |
Hellaswag (10-shot) |
76.56 |
76.10 |
99.4% |
OpenLLM v1 |
Winogrande (5-shot) |
73.95 |
75.06 |
101.5% |
OpenLLM v1 |
TruthfulQA (0-shot, mc2) |
61.18 |
60.93 |
99.6% |
OpenLLM v1 |
平均 |
73.75 |
73.76 |
100.0% |
🔧 技术细节
文档未提及足够的技术实现细节,故跳过此章节。
📄 许可证
本项目采用 Apache-2.0 许可证。