# DeepSeek-R1-0528: ローカル実行方法

DeepSeek-R1-0528 は、DeepSeek の R1 推論モデルに対する新しいアップデートです。完全版の 671B パラメータモデルには 715GB のディスク容量が必要です。量子化された動的 **1.66ビット** 版は 162GB（サイズを80%削減）を使用します。GGUF: [DeepSeek-R1-0528-GGUF](https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF)

DeepSeek は、Qwen3（8B）をファインチューニングした R1-0528 の蒸留版もリリースしました。この蒸留版は Qwen3（235B）と同等の性能を達成します。 ***また、*** [***Qwen3 Distill をファインチューニングする***](#fine-tuning-deepseek-r1-0528-with-unsloth) ***Unsloth を使って***. Qwen3 GGUF: [DeepSeek-R1-0528-Qwen3-8B-GGUF](https://huggingface.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF)

すべてのアップロードは Unsloth [Dynamic 2.0](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs.md) SOTAの5-shot MMLUおよびKL Divergence性能向けであり、精度損失を最小限に抑えて量子化されたDeepSeek LLMを実行・ファインチューニングできます。

**チュートリアルのナビゲーション：**

<a href="#run-qwen3-distilled-r1-in-llama.cpp" class="button secondary">llama.cpp で実行</a><a href="#run-in-ollama-open-webui" class="button secondary">Ollama/Open WebUI で実行</a><a href="#fine-tuning-deepseek-r1-0528-with-unsloth" class="button secondary">R1-0528 のファインチューニング</a>

{% hint style="success" %}
NEW: ツール呼び出しに大幅な改善と、チャットテンプレートの修正。\
\
新しい [TQ1\_0 動的 1.66ビット量子化](https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF?show_file_info=DeepSeek-R1-0528-UD-TQ1_0.gguf) - サイズは 162GB。192GB RAM（Mac を含む）および Ollama ユーザーに最適です。試すには: `ollama run hf.co/unsloth/DeepSeek-R1-0528-GGUF:TQ1_0`
{% endhint %}

## :gear: 推奨設定

DeepSeek-R1-0528-Qwen3-8B については、このモデルはほぼどんな環境にも収まり、RAM が 20GB しかない場合でも動作します。事前準備は不要です。\
\
ただし、サイズが 715GB の完全版 R1-0528 モデルでは追加の準備が必要です。1.78ビット（IQ1\_S）の量子化版は、1x 24GB GPU（全レイヤーをオフロード）に収まります。さらに 128GB の RAM があれば、この構成で約 5 トークン/秒が見込めます。

この量子化を実行するには、少なくとも 64GB の RAM が推奨されます（GPU なしでは 1 トークン/秒になります）。最適な性能を得るには、少なくとも **180GB のユニファイドメモリ、または 180GB の RAM+VRAM 合計** が必要で、5トークン/秒以上を目指せます。

サイズと精度のバランスを取るために、2.7bit（Q2\_K\_XL）または 2.4bit（IQ2\_XXS）の量子化版を使うことをおすすめします。2.4bit 版もよく動作します。

{% hint style="success" %}
必須ではありませんが、最高の性能を得るには、VRAM + RAM の合計をダウンロードする量子化版のサイズに合わせてください。
{% endhint %}

### 🐳 公式推奨設定:

によると [DeepSeek](https://huggingface.co/deepseek-ai/DeepSeek-R1-0528)、R1（R1-0528 と Qwen3 distill は同じ設定を使用してください）の推論に推奨される設定は次のとおりです:

* 次を設定してください <mark style="background-color:green;">**temperature 0.6**</mark> 重複や不整合を減らすため。
* 設定 <mark style="background-color:green;">**top\_p を 0.95 に**</mark> （推奨）
* 信頼できる評価のために、複数回テストして結果を平均してください。

### :1234: チャットテンプレート/プロンプト形式

R1-0528 は元の R1 モデルと同じチャットテンプレートを使用します。強制する必要は `<think>\n` ありませんが、追加することはできます。

```
<｜begin▁of▁sentence｜><｜User｜>1+1は何ですか？<｜Assistant｜>2です。<｜end▁of▁sentence｜><｜User｜>もっと説明して！<｜Assistant｜>
```

BOS は強制的に追加され、EOS は各やり取りを区切ります。推論時のBOSトークンの重複を避けるため、呼び出すのは `tokenizer.encode(..., add_special_tokens = False)` チャットテンプレートが BOS トークンも自動で追加するためです。\
llama.cpp / GGUF 推論では、自動追加されるので BOS は省略してください:

```
<｜User｜>1+1は何ですか？<｜Assistant｜>
```

この `<think>` および `</think>` トークンには専用のトークンが割り当てられます。

## モデルのアップロード

**すべてのアップロード** - そのうち imatrix ベースでも動的でもないものも含め、会話・コーディング・言語タスクに特化して最適化されたキャリブレーションデータセットを利用しています。

* Qwen3（8B）蒸留版: [DeepSeek-R1-0528-Qwen3-8B-GGUF](https://huggingface.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF)
* 完全版 DeepSeek-R1-0528 モデルのアップロードは以下:

また、次もアップロードしました [IQ4\_NL](https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/IQ4_NL) および [Q4\_1](https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/Q4_1) の量子化版で、ARMおよびAppleデバイス向けに特に高速に動作します。

<table data-full-width="false"><thead><tr><th>MoE ビット数</th><th>種類 + リンク</th><th>ディスクサイズ</th><th>詳細</th></tr></thead><tbody><tr><td>1.66bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF?show_file_info=DeepSeek-R1-0528-UD-TQ1_0.gguf">TQ1_0</a></td><td><strong>162GB</strong></td><td>1.92/1.56bit</td></tr><tr><td>1.78bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-IQ1_S">IQ1_S</a></td><td><strong>185GB</strong></td><td>2.06/1.56bit</td></tr><tr><td>1.93bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-IQ1_M">IQ1_M</a></td><td><strong>200GB</strong></td><td>2.5/2.06/1.56</td></tr><tr><td>2.42bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-IQ2_XXS">IQ2_XXS</a></td><td><strong>216GB</strong></td><td>2.5/2.06bit</td></tr><tr><td>2.71bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-Q2_K_XL">Q2_K_XL</a></td><td><strong>251GB</strong></td><td>3.5/2.5bit</td></tr><tr><td>3.12bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-IQ3_XXS">IQ3_XXS</a></td><td><strong>273GB</strong></td><td>3.5/2.06bit</td></tr><tr><td>3.5bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-Q3_K_XL">Q3_K_XL</a></td><td><strong>296GB</strong></td><td>4.5/3.5bit</td></tr><tr><td>4.5bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-Q4_K_XL">Q4_K_XL</a></td><td><strong>384GB</strong></td><td>5.5/4.5bit</td></tr><tr><td>5.5bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF/tree/main/UD-Q5_K_XL">Q5_K_XL</a></td><td><strong>481GB</strong></td><td>6.5/5.5bit</td></tr></tbody></table>

以下の版もアップロードしました [BF16形式](https://huggingface.co/unsloth/DeepSeek-R1-0528-BF16)と、元の [FP8（float8）形式](https://huggingface.co/unsloth/DeepSeek-R1-0528).

## DeepSeek-R1-0528 のチュートリアルを実行:

### :llama: Ollama/Open WebUI で実行

1. インストール `ollama` まだなら、ぜひやってください！ サイズ 32B までのモデルしか実行できません。完全版の 720GB R1-0528 モデルを実行するには、 [こちらを参照](#run-full-r1-0528-on-ollama-open-webui).

```bash
apt-get update
apt-get install pciutils -y
curl -fsSL https://ollama.com/install.sh | sh
```

2. モデルを実行します！失敗した場合は `ollama serve`を別の端末で呼び出せることに注意してください。修正内容と推奨パラメータ（temperature など）はすべて、Hugging Face のアップロード内の `params` に含まれています！

```bash
ollama run hf.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF:Q4_K_XL
```

3. <mark style="color:green;background-color:yellow;">**（NEW）Ollama で完全版 R1-0528 モデルを実行するには、TQ1\_0（162GB 量子化版）を使えます:**</mark>

```bash
OLLAMA_MODELS=unsloth_downloaded_models ollama serve &

ollama run hf.co/unsloth/DeepSeek-R1-0528-GGUF:TQ1_0
```

### :llama: Ollama/Open WebUI で完全版 R1-0528 を実行

Open WebUI は、R1 を実行する方法についてのステップバイステップのチュートリアルを公開しています。R1-0528 では、R1 を新しい 0528 量子化版に置き換えるだけです: <https://docs.openwebui.com/tutorials/integrations/llm-providers/deepseekr1-dynamic>

<mark style="background-color:green;">**（NEW）Ollama で完全版 R1-0528 モデルを実行するには、TQ1\_0（162GB 量子化版）を使えます:**</mark>

```bash
OLLAMA_MODELS=unsloth_downloaded_models ollama serve &

ollama run hf.co/unsloth/DeepSeek-R1-0528-GGUF:TQ1_0
```

Ollama で TQ1\_0（162GB）より大きい量子化版を使いたい場合は、まず以下のコードのように 3 つの GGUF 分割ファイルを 1 つに結合する必要があります。その後、モデルをローカルで実行してください。

```bash
./llama.cpp/llama-gguf-split --merge \\
  DeepSeek-R1-0528-GGUF/DeepSeek-R1-0528-UD-IQ1_S/DeepSeek-R1-0528-UD-IQ1_S-00001-of-00003.gguf \
	merged_file.gguf
```

### ✨ llama.cpp で Qwen3 蒸留版 R1 を実行

1. <mark style="background-color:yellow;">**完全版 720GB R1-0528 モデルを実行するには、**</mark> [<mark style="background-color:yellow;">**こちらを参照**</mark>](#run-full-r1-0528-on-llama.cpp)<mark style="background-color:yellow;">**.**</mark> 最新の `llama.cpp` を [GitHub こちら](https://github.com/ggml-org/llama.cpp)から取得してください。以下のビルド手順に従うこともできます。 `-DGGML_CUDA=ON` を `-DGGML_CUDA=OFF` に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 **Apple Mac / Metal デバイスの場合**、次を設定して `-DGGML_CUDA=OFF` その後は通常どおり続けてください - Metal サポートは既定で有効です。

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \\
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. 次に llama.cpp を直接使ってモデルをダウンロードします:

```bash
./llama.cpp/llama-cli -hf unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF:Q4_K_XL --jinja
```

### ✨ llama.cpp で完全版 R1-0528 を実行

1. 最新の `llama.cpp` を [GitHub こちら](https://github.com/ggml-org/llama.cpp)から取得してください。以下のビルド手順に従うこともできます。 `-DGGML_CUDA=ON` を `-DGGML_CUDA=OFF` に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 **Apple Mac / Metal デバイスの場合**、次を設定して `-DGGML_CUDA=OFF` その後は通常どおり続けてください - Metal サポートは既定で有効です。

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \\
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split llama-mtmd-cli
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. もし `llama.cpp` モデルを直接読み込むには、以下のようにできます。(:IQ1\_S) は量子化タイプです。Hugging Face からもダウンロードできます（ポイント 3）。これは次のものに似ています `ollama run` に似ています。使用 `export LLAMA_CACHE="folder"` して `llama.cpp` 特定の場所に保存するために。

{% hint style="success" %}
ぜひ試してみてください `-ot ".ffn_.*_exps.=CPU"` すべての MoE レイヤーを CPU にオフロードします！これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。

GPU メモリがもう少し多い場合は、試してみてください `-ot ".ffn_(up|down)_exps.=CPU"` これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。

試してみてください `-ot ".ffn_(up)_exps.=CPU"` GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の MoE レイヤーのみがオフロードされます。

そして最後に、 `-ot ".ffn_.*_exps.=CPU"` を使ってすべてのレイヤーをオフロードします。

これは最も少ない VRAM を使用します。 `正規表現をカスタマイズすることもできます。例えば` -ot "\\.(6|7|8|9|\[0-9]\[0-9]|\[0-9]\[0-9]\[0-9])\\.ffn\_(gate|up|down)\_exps.=CPU"
{% endhint %}

```bash
export LLAMA_CACHE="unsloth/DeepSeek-R1-0528-GGUF"
./llama.cpp/llama-cli \\
    -hf unsloth/DeepSeek-R1-0528-GGUF:IQ1_S \
    --cache-type-k q4_0 \\
    --threads -1 \
    --n-gpu-layers 99 \\
    --prio 3 \\
    --temp 0.6 \\
    --top-p 0.95 \
    --min-p 0.01 \\
    --ctx-size 16384 \\
    --seed 3407 \\
    -ot ".ffn_.*_exps.=CPU"
```

3. モデルのダウンロード（ `pip install huggingface_hub hf_transfer` のインストール後）。 `UD-IQ1_S`（動的 1.78bit 量子化）または次のような他の量子化版 `Q4_K_M` 私たちは <mark style="background-color:green;">**当社の 2.7bit 動的量子化版の使用を推奨します**</mark><mark style="background-color:green;">**&#x20;**</mark><mark style="background-color:green;">**`UD-Q2_K_XL`**</mark><mark style="background-color:green;">**&#x20;**</mark><mark style="background-color:green;">**サイズと精度のバランスを取るためです**</mark>。その他のバージョンはこちら： [https://huggingface.co/unsloth/DeepSeek-R1-0528-GGUF](https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF)

{% code overflow="wrap" %}

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # レート制限されることがあるので、無効化するには 0 に設定
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/DeepSeek-R1-0528-GGUF",
    local_dir = "unsloth/DeepSeek-R1-0528-GGUF",
    allow_patterns = ["*UD-IQ1_S*"], # 動的 1bit（168GB） 動的 2bit（251GB）には "*UD-Q2_K_XL*" を使用
)
```

{% endcode %}

4. DeepSeek R1 の 1.58bit Dynamic Quant で説明しているように、Unsloth の Flappy Bird テストを実行してください。
5. 編集 `--threads 32` CPU スレッド数を `--ctx-size 16384` コンテキスト長を `--n-gpu-layers 2` GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \\
    --model unsloth/DeepSeek-R1-0528-GGUF/UD-IQ1_S/DeepSeek-R1-0528-UD-IQ1_S-00001-of-00004.gguf \
    --cache-type-k q4_0 \\
    --threads -1 \
    --n-gpu-layers 99 \\
    --prio 3 \\
    --temp 0.6 \\
    --top-p 0.95 \
    --min-p 0.01 \\
    --ctx-size 16384 \\
    --seed 3407 \\
    -ot ".ffn_.*_exps.=CPU" \
    -no-cnv \\
    --prompt "<｜User｜>PythonでFlappy Birdゲームを作成してください。次の要素を必ず含めてください:\n1. pygame を使うこと。\n2. 背景色はランダムに選び、明るい色にすること。最初は薄い青にしてください。\n3. SPACE を何度も押すと鳥が加速すること。\n4. 鳥の形は四角、円、三角形のいずれかからランダムに選ぶこと。色は暗い色からランダムに選ぶこと。\n5. 画面下部に、濃い茶色または黄色からランダムに選んだ色の地面を配置すること。\n6. 右上にスコアを表示すること。パイプを通過して当たらなければ加点すること。\n7. 十分な間隔を空けてランダムな位置にパイプを配置すること。色は濃い緑、薄い茶色、または濃い灰色からランダムにすること。\n8. 失敗したらベストスコアを表示すること。テキストは画面内に収めること。q または Esc を押すとゲームを終了し、SPACE をもう一度押すと再開すること。\n最終的なゲームコードは Python の markdown セクション内に入れてください。最終的な markdown セクションの前にコードをエラー確認して修正してください。<｜Assistant｜>"
```

{% endcode %}

## :8ball: 七角形テスト

動的量子化版も [r/Localllama](https://www.reddit.com/r/LocalLLaMA/comments/1j7r47l/i_just_made_an_animation_of_a_ball_bouncing/) これは、動く閉じた六角形ではなく七角形の形の中で回転するボールをシミュレートする基本的な物理エンジンを作るテストです。

<figure><img src="/files/f05be6a8c0f9d69f5cf4e1acc075c328cb73babc" alt="" width="563"><figcaption><p>目的は、七角形を回転させ、七角形の中のボールを動かすことです。</p></figcaption></figure>

<details>

<summary>モデルを実行するための完全なプロンプト</summary>

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \\
    --model unsloth/DeepSeek-R1-0528-GGUF/UD-IQ1_S/DeepSeek-R1-0528-UD-IQ1_S-00001-of-00004.gguf \
    --cache-type-k q4_0 \\
    --threads -1 \
    --n-gpu-layers 99 \\
    --prio 3 \\
    --temp 0.6 \\
    --top_p 0.95 \
    --min_p 0.01 \
    --ctx-size 16384 \\
    --seed 3407 \\
    -ot ".ffn_.*_exps.=CPU" \
    -no-cnv \\
    --prompt "<｜User｜>回転する七角形の中で20個のボールが跳ね回る Python プログラムを書いてください:\n- すべてのボールは同じ半径です。\n- すべてのボールには 1 から 20 までの数字が付いています。\n- すべてのボールは開始時に七角形の中心から落下します。\n- 色は次のとおりです: #f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35\n- ボールは重力と摩擦の影響を受け、回転する壁に対して現実的に跳ね返る必要があります。ボール同士の衝突も必要です。\n- すべてのボールの材質により、衝突時の跳ね返りの高さは七角形の半径を超えず、かつボールの半径より高くなります。\n- すべてのボールは摩擦を伴って回転し、ボール上の数字はボールのスピンを示すために使えます。\n- 七角形は中心の周りを回転しており、回転速度は 5 秒で 360 度です。\n- 七角形の大きさは、すべてのボールを収められる十分な大きさにしてください。\n- pygame ライブラリは使わず、衝突検出アルゴリズムと衝突応答などは自分で実装してください。使用できる Python ライブラリは tkinter, math, numpy, dataclasses, typing, sys です。\n- すべてのコードは単一の Python ファイルにまとめてください。<｜Assistant｜>"
```

{% endcode %}

</details>

## 🦥 Unsloth で DeepSeek-R1-0528 をファインチューニング

ファインチューニングするには **DeepSeek-R1-0528-Qwen3-8B** Unsloth を使って、マルチリンガル出力を大幅に向上させるよう設計されたカスタム報酬関数を備えた新しい GRPO ノートブックを作成しました。具体的には、望ましい言語での応答率を 40%以上（例ではインドネシア語を使用していますが、任意の言語を使えます）引き上げます。

* [**DeepSeek-R1-0528-Qwen3-8B ノートブック**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/DeepSeek_R1_0528_Qwen3_\(8B\)_GRPO.ipynb) **- 新規**

多くの推論系 LLM は多言語機能を備えていますが、推論トレース内で英語と対象言語が混在した出力をしがちです。この報酬関数は、望ましい言語での出力を強く促すことでこの問題を効果的に軽減し、言語の一貫性を大幅に改善します。

この報酬関数は完全にカスタマイズ可能で、他の言語に適応したり、特定の分野や用途向けにファインチューニングしたりできます。

{% hint style="success" %}
この報酬関数とノートブック全体の最も優れた点は、モデルに特定の言語を学習させるための言語データセットが不要だということです。このノートブックにはインドネシア語データセットはありません。
{% endhint %}

Unsloth を使えば、R1-Qwen3 の蒸留版のファインチューニングが 2倍速くなり、VRAM 使用量は 70% 削減され、8倍長いコンテキスト長をサポートします。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/moderu/tutorials/deepseek-r1-0528-how-to-run-locally.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
