🚀 Qwen/QwQ-32B (Quantized)
このモデルは、元のモデルQwen/QwQ-32B
の量子化バージョンです。
BitsAndBytesライブラリを使用して、bnb-my-repoスペースを通じて4ビットに量子化されています。
🚀 クイックスタート
以下はapply_chat_template
を使用して、トークナイザーとモデルをロードし、内容を生成するコードスニペットです。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/QwQ-32B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r's are in the word \"strawberry\""
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
✨ 主な機能
- このモデルは、Qwenシリーズの推論モデルであるQwQの32Bバージョンです。思考と推論が可能で、下流タスク、特に難問において、従来の命令微調整モデルよりも大幅に性能を向上させることができます。
- 量子化により、メモリ使用量を削減し、推論速度を向上させることができます。
📦 インストール
このドキュメントには具体的なインストール手順が記載されていないため、このセクションは省略されます。
💻 使用例
基本的な使用法
上記のクイックスタートのコードが基本的な使用例です。
高度な使用法
使用ガイドライン
最適なパフォーマンスを得るために、以下の設定を推奨します。
-
思考出力の強制: モデルが"<think>\n"で始まるようにして、空の思考内容を生成しないようにします。これにより、出力品質の低下を防ぐことができます。apply_chat_template
を使用し、add_generation_prompt=True
に設定すると、これは自動的に実装されますが、応答の先頭に<think>タグがない場合があります。これは正常な動作です。
-
サンプリングパラメータ:
- 無限の繰り返しを避けるために、Greedyデコードではなく、Temperature=0.6、TopP=0.95、MinP=0を使用します。
- 生成される出力の多様性を維持しながら、まれなトークンの出現を除外するために、TopKを20から40の間で使用します。
- サポートされているフレームワークでは、
presence_penalty
パラメータを0から2の間で調整して、無限の繰り返しを減らすことができます。ただし、値を高くすると、時々言語の混合が発生し、パフォーマンスがわずかに低下する可能性があります。
-
履歴に思考内容を含めない: 複数ターンの会話では、履歴のモデル出力には、最終出力部分のみを含め、思考内容を含める必要はありません。この機能は、apply_chat_template
にすでに実装されています。
-
出力形式の標準化: ベンチマーク時には、プロンプトを使用してモデルの出力を標準化することを推奨します。
- 数学の問題: プロンプトに「Please reason step by step, and put your final answer within \boxed{}.」を含めます。
- 選択問題: 応答を標準化するために、プロンプトに以下のJSON構造を追加します。「Please show your choice in the
answer
field with only the choice letter, e.g.,\"answer\": \"C\"
」。
-
長い入力の処理: 8,192トークンを超える入力の場合、YaRNを有効にして、モデルが長いシーケンス情報を効果的に捕捉する能力を向上させます。
サポートされているフレームワークでは、config.json
に以下を追加してYaRNを有効にすることができます。
{
...,
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
デプロイには、vLLMの使用を推奨します。vLLMに不慣れな場合は、ドキュメントを参照してください。現在、vLLMは静的なYARNのみをサポートしており、これは入力長に関係なくスケーリング係数が一定であることを意味し、短いテキストでのパフォーマンスに影響を与える可能性があります。長いコンテキストを処理する必要がある場合のみ、rope_scaling
設定を追加することをお勧めします。
📚 ドキュメント
量子化の詳細
- 量子化タイプ: int4
- bnb_4bit_quant_type: nf4
- bnb_4bit_use_double_quant: True
- bnb_4bit_compute_dtype: bfloat16
- bnb_4bit_quant_storage: uint8
元のモデル情報
QwQ-32Bの紹介
QwQはQwenシリーズの推論モデルです。従来の命令微調整モデルと比較して、思考と推論が可能なQwQは、下流タスク、特に難問において、大幅に向上したパフォーマンスを達成することができます。QwQ-32Bは中規模の推論モデルであり、DeepSeek-R1やo1-miniなどの最先端の推論モデルと競争力のあるパフォーマンスを達成することができます。
このリポジトリにはQwQ 32Bモデルが含まれており、以下の特徴があります:
- タイプ: 因果言語モデル
- トレーニング段階: 事前学習と事後学習(教師付き微調整と強化学習)
- アーキテクチャ: RoPE、SwiGLU、RMSNorm、およびAttention QKVバイアスを備えたtransformers
- パラメータ数: 32.5B
- パラメータ数(非埋め込み): 31.0B
- レイヤー数: 64
- アテンションヘッド数(GQA): Qに40、KVに8
- コンテキスト長: 最大131,072トークン
- 長さが8,192トークンを超えるプロンプトの場合、このセクションに概説されているようにYaRNを有効にする必要があります。
注意: 最良のエクスペリエンスを得るために、QwQモデルをデプロイする前に使用ガイドラインを確認してください。
デモを試すか、QwenChatを介してQwQモデルにアクセスすることができます。
詳細については、ブログ、GitHub、およびドキュメントを参照してください。
評価とパフォーマンス
詳細な評価結果は、この📑 ブログに報告されています。
GPUメモリの要件とそれぞれのスループットについては、ここの結果を参照してください。
🔧 技術詳細
このドキュメントには具体的な技術詳細が記載されていないため、このセクションは省略されます。
📄 ライセンス
このモデルはApache 2.0ライセンスの下で提供されています。
引用
もし私たちの研究が役に立った場合は、ぜひ引用してください。
@misc{qwq32b,
title = {QwQ-32B: Embracing the Power of Reinforcement Learning},
url = {https://qwenlm.github.io/blog/qwq-32b/},
author = {Qwen Team},
month = {March},
year = {2025}
}
@article{qwen2.5,
title={Qwen2.5 Technical Report},
author={An Yang and Baosong Yang and Beichen Zhang and Binyuan Hui and Bo Zheng and Bowen Yu and Chengyuan Li and Dayiheng Liu and Fei Huang and Haoran Wei and Huan Lin and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Yang and Jiaxi Yang and Jingren Zhou and Junyang Lin and Kai Dang and Keming Lu and Keqin Bao and Kexin Yang and Le Yu and Mei Li and Mingfeng Xue and Pei Zhang and Qin Zhu and Rui Men and Runji Lin and Tianhao Li and Tianyi Tang and Tingyu Xia and Xingzhang Ren and Xuancheng Ren and Yang Fan and Yang Su and Yichang Zhang and Yu Wan and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zihan Qiu},
journal={arXiv preprint arXiv:2412.15115},
year={2024}
}