🚀 Qwen3-8B-FP8-dynamic
このモデルは、Qwen3-8BをFP8データ型に量子化することで得られたものです。GPUメモリ要件を削減し、行列乗算の計算スループットを向上させることができます。また、推論、関数呼び出し、多言語命令追従、翻訳などの様々なタスクに対応しています。
🚀 クイックスタート
このモデルは、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互換のサービングもサポートしています。詳細はドキュメントを参照してください。
✨ 主な機能
- モデルアーキテクチャ: Qwen3ForCausalLM
- モデル最適化:
- 想定使用ケース:
- 推論
- 関数呼び出し
- 微調整による専門家知識の注入
- 多言語命令追従
- 翻訳
- 適用範囲外: 適用される法律や規制(貿易コンプライアンス法律を含む)に違反する方法での使用
- リリース日: 2025年05月02日
- バージョン: 1.0
- モデル開発者: RedHat (Neural Magic)
📦 インストール
このモデルは、transformersライブラリを使用してロードできます。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
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)
📚 ドキュメント
モデル最適化
このモデルは、Qwen3-8Bの活性化と重みをFP8データ型に量子化することで得られました。この最適化により、重みと活性化を表すビット数が16から8に減少し、GPUメモリ要件が約50%削減され、行列乗算の計算スループットが約2倍に増加します。重みの量子化により、ディスクサイズ要件も約50%削減されます。
トランスフォーマーブロック内の線形演算子の重みと活性化のみが量子化されます。重みは対称的な静的チャネルごとのスキームで量子化され、活性化は対称的な動的トークンごとのスキームで量子化されます。量子化にはllm-compressorライブラリが使用されています。
作成方法
作成詳細
このモデルは、[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"Model and tokenizer saved to: {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
精度
カテゴリ |
ベンチマーク |
Qwen3-8B |
Qwen3-8B-FP8-dynamic (このモデル) |
回復率 |
OpenLLM v1 |
MMLU (5-shot) |
71.95 |
72.30 |
100.5% |
|
ARC Challenge (25-shot) |
61.69 |
61.60 |
99.9% |
|
GSM-8K (5-shot, strict-match) |
75.97 |
80.52 |
106.0% |
|
Hellaswag (10-shot) |
56.52 |
55.95 |
99.0% |
|
Winogrande (5-shot) |
65.98 |
66.22 |
100.4% |
|
TruthfulQA (0-shot, mc2) |
53.17 |
52.39 |
98.5% |
|
平均 |
64.21 |
64.83 |
101.0% |
OpenLLM v2 |
MMLU-Pro (5-shot) |
34.57 |
37.82 |
109.4% |
|
IFEval (0-shot) |
84.77 |
84.56 |
99.8% |
|
BBH (3-shot) |
25.47 |
27.20 |
106.8% |
|
Math-lvl-5 (4-shot) |
51.05 |
51.90 |
101.7% |
|
GPQA (0-shot) |
0.00 |
0.00 |
--- |
|
MuSR (0-shot) |
10.02 |
10.65 |
--- |
|
平均 |
34.31 |
35.35 |
103.0% |
多言語 |
MGSM (0-shot) |
25.97 |
25.80 |
99.4% |
推論 (生成) |
AIME 2024 |
74.58 |
76.35 |
102.4% |
|
AIME 2025 |
65.21 |
63.75 |
97.8% |
|
GPQA diamond |
58.59 |
61.11 |
104.3% |
|
Math-lvl-5 |
97.60 |
96.60 |
99.0% |
|
LiveCodeBench |
56.27 |
56.60 |
100.6% |
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で提供されています。