153 lines
4.5 KiB
Markdown
153 lines
4.5 KiB
Markdown
|
|
---
|
|||
|
|
library_name: transformers
|
|||
|
|
license: mit
|
|||
|
|
datasets:
|
|||
|
|
- HuggingFaceH4/Bespoke-Stratos-17k
|
|||
|
|
- AI-MO/NuminaMath-TIR
|
|||
|
|
language:
|
|||
|
|
- en
|
|||
|
|
- ja
|
|||
|
|
base_model:
|
|||
|
|
- microsoft/phi-4
|
|||
|
|
---
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
# AXCXEPT/phi-4-open-R1-Distill-EZOv1
|
|||
|
|
|
|||
|
|
<!-- Provide a quick summary of what the model is/does. -->
|
|||
|
|
|
|||
|
|
## Model Details
|
|||
|
|
This model is a Reasoner version of the phi-4 model by employing open-r1, which mimics the Distill methodology of Deepseek-R1. In particular, since it is specialized for Japanese, answers will be given in Japanese in principle.
|
|||
|
|
It can be made more flexible by interweaving English.
|
|||
|
|
|
|||
|
|
Deepseek-R1のDistill手法を模倣した、open-r1を採用して、phi-4モデルを Reasonerにしたモデルです。特に日本語に特化させているため、原則日本語で回答します。
|
|||
|
|
英語を織り交ぜることでより柔軟にすることが可能です。
|
|||
|
|
|
|||
|
|
## Example Output
|
|||
|
|
```
|
|||
|
|
<thinking>
|
|||
|
|
まず、問題文を整理します。父親の現在の年齢は息子の3倍であり、6年前の父親の年齢は息子の5倍でした。これを数式で表現すると:
|
|||
|
|
|
|||
|
|
1. 現在の年齢関係:父親の年齢 = 3 × 息子の年齢 → F = 3S
|
|||
|
|
2. 6年前の年齢関係:父親の年齢 - 6 = 5 × (息子の年齢 - 6) → F - 6 = 5(S - 6)
|
|||
|
|
|
|||
|
|
これらの2つの方程式を同時に解きます。まず第1式からF = 3Sを代入すると:
|
|||
|
|
|
|||
|
|
3S - 6 = 5(S - 6)
|
|||
|
|
3S - 6 = 5S - 30
|
|||
|
|
30 - 6 = 5S - 3S
|
|||
|
|
24 = 2S
|
|||
|
|
S = 12
|
|||
|
|
|
|||
|
|
息子の年齢が12歳であることが分かります。これを第1式に代入すると:
|
|||
|
|
|
|||
|
|
F = 3 × 12 = 36
|
|||
|
|
|
|||
|
|
父親の年齢は36歳です。最後に条件を確認します:
|
|||
|
|
- 現在の年齢関係:36 = 3×12 → 成立
|
|||
|
|
- 6年前の年齢関係:36-6=30 vs 12-6=6 → 30=5×6 → 成立
|
|||
|
|
|
|||
|
|
両方の条件が満たされているため、解は正しいと言えます。
|
|||
|
|
</thinking>
|
|||
|
|
|
|||
|
|
<answer>
|
|||
|
|
父親の年齢は36歳、息子の年齢は12歳です。
|
|||
|
|
|
|||
|
|
根拠:
|
|||
|
|
1. 現在の年齢関係:36 = 3×12(成立)
|
|||
|
|
2. 6年前の年齢関係:30 = 5×6(成立)
|
|||
|
|
3. 両方の条件を満たす唯一の解
|
|||
|
|
</answer>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
--------------------------------------
|
|||
|
|
## HOW TO USE
|
|||
|
|
-------------------
|
|||
|
|
### Setup
|
|||
|
|
```
|
|||
|
|
pip install --upgrade transformers accelerate datasets trl
|
|||
|
|
```
|
|||
|
|
-------------------
|
|||
|
|
### Predict(using AutoModelForCausalLM)
|
|||
|
|
```python
|
|||
|
|
|
|||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
model_name = "AXCXEPT/phi-4-open-R1-Distill-EZOv1"
|
|||
|
|
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|||
|
|
model_name,
|
|||
|
|
torch_dtype="auto",
|
|||
|
|
device_map="auto"
|
|||
|
|
)
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|||
|
|
|
|||
|
|
prompt = f"""
|
|||
|
|
ある父と子の年齢に関する問題があります。条件は次の通りです:
|
|||
|
|
|
|||
|
|
父の現在の年齢は息子の現在の年齢の3倍です。
|
|||
|
|
6年前、父の年齢は息子の年齢の5倍でした。
|
|||
|
|
父と息子の年齢を求めてください。
|
|||
|
|
"""
|
|||
|
|
messages = [
|
|||
|
|
{"role": "system", "content": "You are an excellent AI."},
|
|||
|
|
{"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=2048
|
|||
|
|
)
|
|||
|
|
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)
|
|||
|
|
```
|
|||
|
|
-------------------
|
|||
|
|
### Predict(using vllm)
|
|||
|
|
#### Setup
|
|||
|
|
```
|
|||
|
|
pip install vllm
|
|||
|
|
vllm serve AXCXEPT/phi-4-open-R1-Distill-EZOv1
|
|||
|
|
```
|
|||
|
|
#### Predict
|
|||
|
|
```
|
|||
|
|
from openai import OpenAI
|
|||
|
|
client = OpenAI(
|
|||
|
|
base_url="http://localhost:8000/v1",
|
|||
|
|
api_key="token-abc123",
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
prompt = f"""
|
|||
|
|
There is a question concerning the age of a father and his child. The conditions are as follows
|
|||
|
|
|
|||
|
|
The father's current age is 3 times the son's current age.
|
|||
|
|
Six years ago, the father's age was five times the son's age.
|
|||
|
|
Find the ages of the father and the son.
|
|||
|
|
"""
|
|||
|
|
completion = client.chat.completions.create(
|
|||
|
|
model="AXCXEPT/EZO-phi-4-openr1-v1_917",
|
|||
|
|
messages=[
|
|||
|
|
{"role": "system", "content": "You are an excellent AI. Please answer carefully and thoughtfully, in the same language as the instructions."}
|
|||
|
|
{"role": "user", "content": prompt}
|
|||
|
|
]
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print(completion.choices[0].message.content)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
### Special Thanks
|
|||
|
|
Phi-4 develop team, open-r1 team developer, deepseek team, thanks for your special technology and knowledge.
|