Q
Qwen3 8B FP8 Dynamic
由 RedHatAI 开发
Qwen3-8B-FP8-dynamic是基于Qwen3-8B模型通过FP8量化优化的版本,显著降低了GPU内存需求和磁盘空间占用,同时保持了原始模型的性能。
下载量 81
发布时间 : 5/2/2025
模型介绍
内容详情
替代品
模型简介
该模型是通过将Qwen3-8B的激活和权重量化为FP8数据类型得到的优化版本,适用于推理、函数调用和多语言指令跟随等任务。
模型特点
FP8量化
通过FP8量化技术,显著降低了GPU内存需求(约50%)和磁盘空间占用(约50%),同时提高了计算吞吐量(约2倍)。
高效推理
优化后的模型保持了原始模型的性能,在多个基准测试中表现优异,部分任务甚至有所提升。
多语言支持
支持多语言指令跟随和翻译任务,适用于国际化应用场景。
模型能力
文本生成
函数调用
多语言指令跟随
翻译
使用案例
通用AI助手
智能问答
回答用户提出的各种问题,提供准确的信息和建议。
在OpenLLM v1基准测试中平均恢复率达到101.0%
教育
数学问题解答
解决复杂的数学问题,提供详细的解题步骤。
在Math-lvl-5测试中达到51.90分
商业应用
多语言客服
提供多语言的客户服务支持,理解并回答客户咨询。
在MGSM多语言测试中达到25.80分
库名称:transformers 许可证:apache-2.0 流水线标签:文本生成 基础模型:
- Qwen/Qwen3-8B 标签:
- neuralmagic
- redhat
- llmcompressor
- 量化
- FP8
Qwen3-8B-FP8-dynamic
模型概述
- 模型架构: Qwen3ForCausalLM
- 输入: 文本
- 输出: 文本
- 模型优化:
- 激活量化: FP8
- 权重量化: FP8
- 预期用途:
- 推理。
- 函数调用。
- 通过微调成为领域专家。
- 多语言指令跟随。
- 翻译。
- 非适用范围: 任何违反适用法律法规(包括贸易合规法律)的使用方式。
- 发布日期: 2025年05月02日
- 版本: 1.0
- 模型开发者: RedHat (Neural Magic)
模型优化
该模型是通过将Qwen3-8B的激活和权重量化为FP8数据类型得到的。 这种优化将表示权重和激活的位数从16位减少到8位,降低了GPU内存需求(约50%),并提高了矩阵乘法计算吞吐量(约2倍)。 权重量化还减少了约50%的磁盘空间需求。
仅量化了Transformer块内线性算子的权重和激活。 权重采用对称静态每通道方案量化,而激活采用对称动态每令牌方案量化。 量化使用了llm-compressor库。
部署
该模型可以使用vLLM后端高效部署,如下例所示。
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Qwen3-8B-FP8-dynamic"
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": "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兼容的服务。更多详情请参阅文档。
创建
创建详情
该模型是通过运行以下代码片段使用[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-8B"
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"模型和分词器已保存至: {save_path}")
评估
该模型在OpenLLM排行榜任务(版本1和2)上使用lm-evaluation-harness进行了评估,并在推理任务上使用lighteval进行了评估。 所有评估均使用vLLM进行。
评估详情
lm-evaluation-harness
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Qwen3-8B-FP8-dynamic",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-8B-FP8-dynamic",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-8B-FP8-dynamic",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-8B-FP8-dynamic
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