以下の内容はhttps://touch-sp.hatenablog.com/entry/2025/02/05/113050より取得しました。


Lightblueが「DeepSeek-R1-Distill-Qwen-7B」の日本語追加学習モデルを公開してくれたのでさっそく使ってみました

はじめに

サイバーエージェントが「DeepSeek-R1-Distill-Qwen-14B-Japanese」を公開しています。
huggingface.co
今回はLightblueの「DeepSeek-R1-Distill-Qwen-7B-Japanese」を使ってみます。
huggingface.co

結果

プロンプト

ある父と子の年齢に関する問題があります。条件は次の通りです:
父の現在の年齢は息子の現在の年齢の3倍です。
6年前、父の年齢は息子の年齢の5倍でした。
父と息子の年齢を求めてください。

「DeepSeek-R1-Distill-Qwen-7B-Japanese」の回答

ちょいちょい中国語と思われる漢字が出力されます。

<think>
まず、父と子の年齢に関する方程式を建立します。

1. 父の年齢を  F 、子の年齢を  S  とします。

2. 父の年齢は子の年齢の3倍なので、方程式は  F = 3S  となります。

3. 6年前、父の年齢は子の年齢の5倍でした。6年前の年齢は  F - 6  S - 6  です。方程式は  F - 6 = 5(S - 6)  となります。

4. 方程式を解きます。
   - 先に  F = 3S  を代入します。
   -  3S - 6 = 5(S - 6) 
   - 展開して  3S - 6 = 5S - 30 
   - 方程式を整理して  -2S = -24 
   - 解得  S = 12 

5. 子の年齢が  S = 12  岁の場合、父の年齢  F = 3S = 36  岁です。

6. 最終的な答えは父が36歳、子が12歳です。
</think>

解答:

父と子の年齢に関する方程式を建立し、解を求めます。

1. 年齢の関係を表す方程式を設定します。

   - 父の年齢を  F 、子の年齢を  S  とします。
   - 父の年齢は子の年齢の3倍なので、方程式は:
     
     F = 3S
     
   - 6年前、父の年齢は子の年齢の5倍でした。6年前の年齢は \( F - 6 \) と \( S - 6 \) です。方程式は:
     
     F - 6 = 5(S - 6)
     

2. 方程式を解きます。

   - 先に  F = 3S  を代入します。
     
     3S - 6 = 5(S - 6)
     
   - 展開して方程式を整理します。
     
     3S - 6 = 5S - 30
     
     
     -2S = -24
     
   - 解得:
     
     S = 12
     
   - 代入  F = 3S 
     F = 3 \times 12 = 36
     

3. 最終的な答え:

   - 父の年齢:\boxed{36} 岁
   - 子の年齢:\boxed{12}最終的な答え:

\boxed{父: 36\text{歳}, 子: 12\text{歳}}

方法

今回はvLLMを使いました。

vLLMはLinuxでしか動かせないのでサーバー側はWSL2を使っています。

vllm serve lightblue/DeepSeek-R1-Distill-Qwen-7B-Japanese --cpu-offload-gb 12

クライアント側はWindowsのPythonを使っています。

from openai import OpenAI

openai_api_key = "EMPTY"
openai_api_base = "http://172.21.29.1:8000/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

prompt = '''ある父と子の年齢に関する問題があります。条件は次の通りです:

父の現在の年齢は息子の現在の年齢の3倍です。
6年前、父の年齢は息子の年齢の5倍でした。
父と息子の年齢を求めてください。'''

stream = client.chat.completions.create(
    model="lightblue/DeepSeek-R1-Distill-Qwen-7B-Japanese",
    messages=[
        {"role": "user", "content": prompt},
    ],
    temperature=0.5,
    max_tokens=8000,
    #frequency_penalty=1.1,
    stream=True
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

補足

WSL2のIP Addressを知るのは以下のコマンドです。

ip addr show

関連記事

touch-sp.hatenablog.com





以上の内容はhttps://touch-sp.hatenablog.com/entry/2025/02/05/113050より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14