Files

97 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

---
library_name: transformers
license: apache-2.0
language:
- ja
base_model:
- Qwen/Qwen2.5-32B-Instruct
- abeja/ABEJA-Qwen2.5-32b-Japanese-v0.1
- Qwen/QwQ-32B
pipeline_tag: text-generation
---
## ABEJA-QwQ32b-Reasoning-Japanese-v1.0
ABEJA-QwQ32b-Reasoning-Japanese-v1.0はabeja/ABEJA-Qwen2.5-32b-Japanese-v0.1(*)をベースとしたReasoningモデルです。
ABEJA-Qwen2.5-32b-Japanese-v0.1に対してQwen/QwQ-32BのChatVectorをマージしたあと、追加学習をすることでReasoningモデルとして日本語性能を確保しています。
(*)Qwen/Qwen2.5-32B-Instructをベースに日本語中心とした継続事前学習を実施したモデル
`<think></think>`で囲まれた思考過程の後に最終的な出力をします。
## 使用上の注意
モデルマージで利用している [QwQ-32B](https://huggingface.co/Qwen/QwQ-32B) の特性を引き継いでおり、QwQ-32BのUsage-Gidelineに従った利用を推奨します。
https://huggingface.co/Qwen/QwQ-32B#usage-guidelines
特に
- 強制的に思考過程を経るために `<think>\n` の後から出力を開始してください。apply_chat_templateを使いadd_generation_prompt=Trueとすると、自動的に適用されます。
- Temperature=0.6, TopP=0.95, MinP=0, TopKを20から40の間、といったパラメータを推奨します。ここの値を大きく変えると精度が落ちることを確認しています
- multi-turnでの会話では、会話履歴の中には最終的な出力のみで`<think></think>`で囲まれた思考過程は含めないでください。この機能もすでにapply_chat_templateに含んでいます。
- Systemプロンプトは不要です。最初にrole:userから始めてください。
といった点はご注意ください。
## 使い方
```Python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "abeja/ABEJA-QwQ32b-Reasoning-Japanese-v1.0"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "人とAIが協調するためには"
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 = model.generate(
**model_inputs,
max_new_tokens=32768,
do_sample=True,
temperature=0.6,
top_k=40,
top_p=0.95,
)
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)
```
## 開発者
- Hiroshi Kiyota
- Keisuke Fujimoto
- Kentaro Nakanishi
- Kyo Hattori
- Shinya Otani
- Shogo Muranushi
- Takuma Kume
- Tomoki Manabe
(*)アルファベット順