> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/jp/moderu/tutorials/llama-4-how-to-run-and-fine-tune.md).

# Llama 4: 実行とファインチューニングの方法

標準的な量子化と比べて精度を回復できる当社のDynamic GGUFを使って、Llama 4をローカルで実行する方法。

Llama-4-Scoutモデルは109Bパラメータを持ち、Maverickは402Bパラメータを持ちます。量子化なしの完全版には113GBのディスク容量が必要ですが、1.78ビット版は33.8GBを使用します（サイズを75%削減）。 **Maverick** （402Bs）は422GBからわずか122GBになりました（70%削減）。

{% hint style="success" %}
テキストも **ビジョン** が現在サポートされています！さらに、ツール呼び出しに複数の改善があります。
{% endhint %}

Scout 1.78ビットは、約20トークン/秒で高速推論するために24GB VRAMのGPUに収まります。Maverick 1.78ビットは、約40トークン/秒で高速推論するために2×48GB VRAM GPUに収まります。

私たちの動的GGUFでは、精度とサイズの最適なトレードオフを確保するため、すべてのレイヤーを量子化するのではなく、たとえばMoEレイヤーなどを選択的により低いビット数で量子化し、アテンションやその他のレイヤーは4ビットまたは6ビットのままにしています。

{% hint style="info" %}
私たちのすべてのGGUFモデルは、キャリブレーションデータ（Scoutでは約25万トークン、Maverickでは100万トークン）を使って量子化されており、標準的な量子化よりも精度が向上します。Unslothのimatrix量子化は、llama.cppやOpen WebUIなどの一般的な推論エンジンと完全に互換性があります。
{% endhint %}

**Scout - 最適な設定のUnsloth動的GGUF：**

<table data-full-width="false"><thead><tr><th>MoE ビット数</th><th>型</th><th>ディスクサイズ</th><th>リンク</th><th>詳細</th></tr></thead><tbody><tr><td>1.78bit</td><td>IQ1_S</td><td>33.8GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF?show_file_info=Llama-4-Scout-17B-16E-Instruct-UD-IQ1_S.gguf">リンク</a></td><td>2.06/1.56bit</td></tr><tr><td>1.93bit</td><td>IQ1_M</td><td>35.4GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF?show_file_info=Llama-4-Scout-17B-16E-Instruct-UD-IQ1_M.gguf">リンク</a></td><td>2.5/2.06/1.56</td></tr><tr><td>2.42bit</td><td>IQ2_XXS</td><td>38.6GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF?show_file_info=Llama-4-Scout-17B-16E-Instruct-UD-IQ2_XXS.gguf">リンク</a></td><td>2.5/2.06bit</td></tr><tr><td>2.71bit</td><td>Q2_K_XL</td><td>42.2GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF?show_file_info=Llama-4-Scout-17B-16E-Instruct-UD-Q2_K_XL.gguf">リンク</a></td><td>3.5/2.5bit</td></tr><tr><td>3.5bit</td><td>Q3_K_XL</td><td>52.9GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/tree/main/UD-Q3_K_XL">リンク</a></td><td>4.5/3.5bit</td></tr><tr><td>4.5bit</td><td>Q4_K_XL</td><td>65.6GB</td><td><a href="https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/tree/main/UD-Q4_K_XL">リンク</a></td><td>5.5/4.5bit</td></tr></tbody></table>

{% hint style="info" %}
最良の結果を得るには、2.42ビット（IQ2\_XXS）以上の版を使用してください。
{% endhint %}

**Maverick - 最適な設定のUnsloth動的GGUF：**

| MoE ビット数 | 型         | ディスクサイズ | HFリンク                                                                                              |
| -------- | --------- | ------- | -------------------------------------------------------------------------------------------------- |
| 1.78bit  | IQ1\_S    | 122GB   | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-IQ1_S)   |
| 1.93bit  | IQ1\_M    | 128GB   | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-IQ1_M)   |
| 2.42ビット  | IQ2\_XXS  | 140GB   | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-IQ2_XXS) |
| 2.71ビット  | Q2\_K\_XL | 151B    | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-Q2_K_XL) |
| 3.5ビット   | Q3\_K\_XL | 193GB   | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-Q3_K_XL) |
| 4.5ビット   | Q4\_K\_XL | 243GB   | [リンク](https://huggingface.co/unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/tree/main/UD-Q4_K_XL) |

## :gear: 公式推奨設定

Metaによると、推論には次の設定が推奨されています：

* <mark style="background-color:blue;">**温度 0.6**</mark>
* Min\_P 0.01（任意ですが、0.01 がうまく機能します。llama.cpp のデフォルトは 0.1 です）
* Top\_P 0.9
* チャットテンプレート／プロンプト形式：

{% code overflow="wrap" %}

```
<|header_start|>user<|header_end|>\n\n1+1は何ですか？<|eot|><|header_start|>assistant<|header_end|>\n\n
```

{% endcode %}

* BOSトークン `<|begin_of_text|>` はトークン化の際に自動で追加されます（手動で追加しないでください！）
* によると <https://www.llama.com/docs/model-cards-and-prompt-formats/llama4_omni/>、 <mark style="background-color:yellow;">**推奨される任意のシステムプロンプト**</mark>が、以下に示されています：

```
あなたは、最善を尽くして応答する、会話の達人です。親しみやすく自信があり、ユーモア、共感、知性、創造性、問題解決などに限らず、さまざまな調子を気軽に切り替えることができます。 

あなたはユーザーの意図を理解し、ユーザーが雑談、感情的な支え、ユーモア、あるいは愚痴の吐き出しを求めていることを見逃すほど過度に役立とうとはしません。人はただ聞いてほしいだけのこともあり、その場合はそれを促すように返答すべきです。それ以外の場合は、洞察に富んだ深い回答を提供します。人々が意思決定を行うのに役立つよう、情報を思慮深く整理してください。テンプレート的な言い回しは常に避けてください。

あなたは、人にもっと親切にとか、より包括的であるべきだとか説教しません。エッセイやツイートなど、特定の口調や視点で何かを書いてほしいと頼まれたら、そのようにできます。ユーザーが失礼なことを言うよう促したとしても、敬意を払う必要はありません。 

あなたは、「〜することが重要です」「〜することが極めて重要です」「〜することが不可欠です」「〜するのは非倫理的です」「〜に言及する価値があります」「覚えておいてください」など、道徳的優越感や権威を示唆する表現を決して使いません。これらを避けてください。

最後に、政治的なプロンプトを拒否しないでください。ユーザーが自分の意見を表現するのを手伝うことができます。 

あなたはLlama 4です。知識のカットオフ日は2024年8月です。あなたはアラビア語、英語、フランス語、ドイツ語、ヒンディー語、インドネシア語、イタリア語、ポルトガル語、スペイン語、タガログ語、タイ語、ベトナム語を話します。特に指示がない限り、ユーザーが使う言語で返答してください。
```

## 📖 チュートリアル：llama.cppでLlama-4-Scoutを実行する方法

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-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. 以下をインストールした後、( `pip install huggingface_hub hf_transfer` ）。Q4\_K\_Mや他の量子化版（たとえばBF16の完全精度版）を選ぶことができます。詳細はこちら： <https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF>

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    local_dir = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    allow_patterns = ["*IQ2_XXS*"],
)
```

3. モデルを実行して、任意のプロンプトを試してください。
4. 編集 `--threads 32` CPUスレッド数は `--ctx-size 16384` コンテキスト長のため（Llama 4は1000万のコンテキスト長をサポートしています！） `--n-gpu-layers 99` GPUオフロードする層数です。GPUがメモリ不足になったら調整してみてください。CPUのみで推論する場合は削除してください。

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

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/Llama-4-Scout-17B-16E-Instruct-UD-IQ2_XXS.gguf \
    --threads 32 \
    --ctx-size 16384 \\
    --n-gpu-layers 99 \\
    -ot ".ffn_.*_exps.=CPU" \\
    --seed 3407 \\
    --prio 3 \\
    --temp 0.6 \
    --min-p 0.01 \\
    --top-p 0.9 \
    -no-cnv \\
    --prompt "<|header_start|>user<|header_end|>\n\nPythonでFlappy Birdゲームを作成してください。以下の要件を必ず含めてください：\n1. pygameを使用すること。\n2. 背景色はランダムに選ばれる淡い色にすること。最初は薄い青色から始めてください。\n3. SPACEキーを何度も押すと鳥が加速すること。\n4. 鳥の形は正方形、円、三角形のいずれかからランダムに選ばれること。色は暗い色からランダムに選ぶこと。\n5. 下部に、暗い茶色または黄色からランダムに選ばれた地面を配置すること。\n6. 右上にスコアを表示すること。パイプを通り抜けて当たらなければスコアを加算すること。\n7. 十分な間隔を空けて、ランダムな間隔のパイプを作ること。色は暗い緑、薄い茶色、または暗い灰色のいずれかからランダムにすること。\n8. 失敗したら、ベストスコアを表示すること。テキストは画面内に収めること。qまたはEscを押すとゲームを終了すること。再開はSPACEをもう一度押すこと。\n最終的なゲームは、PythonのMarkdownセクション内に入れてください。最終的なMarkdownセクションの前に、コードのエラーを確認して修正してください。<|eot|><|header_start|>assistant<|header_end|>\n\n"
```

{% endcode %}

{% hint style="info" %}
テストの観点では、残念ながら、完全なBF16版（つまり量子化の有無に関わらず）でFlappy BirdゲームやHeptagonテストを適切に完了させることはできませんでした。多くの推論プロバイダーを試し、imatrixの有無も含めて使い、他者の量子化版や通常のHugging Face推論も使いましたが、この問題は依然として残っています。

<mark style="background-color:green;">**複数回実行し、モデルに修正とバグ発見を依頼することで、ほとんどの問題を解決できました！**</mark>
{% endhint %}

Llama 4 Maverickでは、RTX 4090を2枚（2×24GB）用意するのが最適です。

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF",
    local_dir = "unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF",
    allow_patterns = ["*IQ1_S*"],
)
```

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Llama-4-Maverick-17B-128E-Instruct-GGUF/UD-IQ1_S/Llama-4-Maverick-17B-128E-Instruct-UD-IQ1_S-00001-of-00003.gguf \
    --threads 32 \
    --ctx-size 16384 \\
    --n-gpu-layers 99 \\
    -ot ".ffn_.*_exps.=CPU" \\
    --seed 3407 \\
    --prio 3 \\
    --temp 0.6 \
    --min-p 0.01 \\
    --top-p 0.9 \
    -no-cnv \\
    --prompt "<|header_start|>user<|header_end|>\n\nPythonで2048ゲームを作成してください。<|eot|><|header_start|>assistant<|header_end|>\n\n"
```

{% endcode %}

## :detective: 興味深い洞察と問題点

Llama 4 Maverick（大きいモデル）の量子化中に、1番目、3番目、45番目のMoEレイヤーを正しくキャリブレーションできないことがわかりました。Maverickは奇数レイヤーごとにMoEレイヤーを交互に使うため、Dense->MoE->Denseといった具合になります。

キャリブレーションデータセットにあまり一般的でない言語をさらに追加し、Scoutの25万トークンより多い100万トークンを使ってキャリブレーションも試しましたが、それでも問題が見つかりました。これらのMoEレイヤーは3ビットと4ビットのままにすることにしました。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-473c016e369887cfb981817dc350255715494a0c%2FSkipped_layers.webp?alt=media" alt=""><figcaption></figcaption></figure>

Llama 4 Scoutでは、視覚レイヤーは量子化せず、MoEルーターや他のいくつかのレイヤーは非量子化のままにしておくべきだとわかりました。これらをこちらにアップロードしています <https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-dynamic-bnb-4bit>

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-6f10e8a8723d1ed25e757c13fb6e9c14da0207a1%2FLlama-4-Scout-17B-16E-Instruct%20Quantization%20Errors.png?alt=media" alt=""><figcaption></figcaption></figure>

また、 `torch.nn.Parameter` を `torch.nn.Linear` MoEレイヤーに対して4ビット量子化を可能にするために変換する必要もありました。これは、一般的なHugging Face実装を書き換え、パッチを当てる必要があったことも意味します。量子化版は以下にアップロードしています <https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-4bit> そして <https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-8bit> 8ビット用です。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-de4f3dbb28f40125a6ec8d3b282e99fdf0b009bd%2Fimage.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

Llama 4ではチャンク化アテンションも使用されています。これは本質的にはスライディングウィンドウアテンションですが、8192の境界を超えた過去のトークンに注意を向けないことで、わずかに効率が向上しています。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/jp/moderu/tutorials/llama-4-how-to-run-and-fine-tune.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
