> 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/devstral-how-to-run-and-fine-tune.md).

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

Small-2507と2505を含むMistral Devstral 1.1を実行・ファインチューニングします。

**Devstral-Small-2507** （Devstral 1.1）は、Mistralのソフトウェアエンジニアリング向け新しいエージェント型LLMです。ツール呼び出し、コードベースの探索、コーディングエージェントの駆動に優れています。Mistral AIは元の2505版を2025年5月にリリースしました。

からファインチューニング [**Mistral-Small-3.1**](https://huggingface.co/unsloth/Mistral-Small-3.1-24B-Instruct-2503-GGUF)、Devstralは128kのコンテキストウィンドウをサポートします。Devstral Small 1.1は性能が向上し、53.6%のスコアを達成しています [SWE-bench verified](https://openai.com/index/introducing-swe-bench-verified/)、これにより（2025年7月10日時点）ベンチマークで第1位のオープンモデルとなっています。

Unsloth Devstral 1.1 GGUFには追加の <mark style="background-color:green;">**ツール呼び出しサポート**</mark> そして <mark style="background-color:green;">**チャットテンプレートの修正**</mark>。Devstral 1.1は引き続きOpenHandsとよく動作しますが、他のプロンプトやコーディング環境への汎化もさらに向上しています。

テキスト専用のため、Devstralのビジョンエンコーダーはファインチューニング前に削除されました。そこで、 [*<mark style="background-color:green;">**オプションのビジョンサポート**</mark>*](#possible-vision-support) をモデルに追加しました。

{% hint style="success" %}
また、裏でMistralと協力して、潜在的なバグや問題のデバッグ、テスト、修正も行いました。必ず **Mistralの公式ダウンロードまたはUnslothのGGUFをダウンロードして** / 動的量子化版を利用して **正しい実装** （つまり、正しいシステムプロンプト、正しいチャットテンプレートなど）

次を使用してください `--jinja` をllama.cppで使ってシステムプロンプトを有効にしてください！
{% endhint %}

すべてのDevstralアップロードは当社のUnsloth手法を使用しており、5-shot MMLUおよびKLダイバージェンスベンチマークで最高の性能を発揮します。つまり、量子化されたMistral LLMを精度の低下を最小限に抑えて実行・ファインチューニングできます！ [Dynamic 2.0](/docs/jp/ji-chu/dynamic-3.0-ggufs.md) Devstral - Unsloth Dynamic

#### **量子化版：** 量子化版：

| Devstral 2507（新）                                                                                                     | Devstral 2505                                                                                               |
| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| GGUF: [Devstral-Small-2507-GGUF](https://huggingface.co/unsloth/Devstral-Small-2507-GGUF)                            | [Devstral-Small-2505-GGUF](https://huggingface.co/unsloth/Devstral-Small-2505-GGUF)                         |
| 4ビットBnB： [Devstral-Small-2507-unsloth-bnb-4bit](https://huggingface.co/unsloth/Devstral-Small-2507-unsloth-bnb-4bit) | [Devstral-Small-2505-unsloth-bnb-4bit](https://huggingface.co/unsloth/Devstral-Small-2505-unsloth-bnb-4bit) |

## 🖥️ **Devstralの実行**

### :gear: 公式推奨設定

Mistral AIによると、推論に推奨される設定は次のとおりです：

* <mark style="background-color:blue;">**温度は0.0～0.15**</mark>
* Min\_P 0.01（任意ですが、0.01 がうまく機能します。llama.cpp のデフォルトは 0.1 です）
* <mark style="background-color:orange;">**次を使います:**</mark><mark style="background-color:orange;">**&#x20;**</mark><mark style="background-color:orange;">**`--jinja`**</mark><mark style="background-color:orange;">**&#x20;**</mark><mark style="background-color:orange;">**を使うとシステムプロンプトを有効にできます。**</mark>

**システムプロンプトの使用を推奨します**、これはOpenHandsのシステムプロンプトを元にした派生版です。完全なシステムプロンプトは以下に示されています [ここ](https://huggingface.co/unsloth/Devstral-Small-2505/blob/main/SYSTEM_PROMPT.txt).

```
あなたはDevstralです。Mistral AIによって学習され、OpenHandsのスキャフォールドを使用する、役立つエージェント型モデルです。タスクを解決するためにコンピュータと対話できます。

<ROLE>
あなたの主な役割は、コマンドの実行、コードの変更、技術的問題の効果的な解決を通じてユーザーを支援することです。入念かつ体系的に進め、速度より品質を優先してください。
* ユーザーが「なぜXが起きているのか」のような質問をした場合は、問題を修正しようとせず、その質問に答えるだけにしてください。
</ROLE>

.... システムプロンプトは続きます ....
```

{% hint style="success" %}
当社の動的アップロードには「`UD`」という接頭辞が付いています。付いていないものは動的ではありませんが、それでも当社のキャリブレーションデータセットを利用しています。
{% endhint %}

## :llama: チュートリアル：OllamaでDevstralを実行する方法

1. インストール `ollama` まだの場合は！

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

2. 当社の動的量子化版でモデルを実行してください。なお、次を呼び出すことができます `ollama serve &`が失敗した場合は別のターミナルで実行してください。推奨パラメータ（temperature など）はすべて `params` として Hugging Face のアップロードに含めています！
3. また、Devstralは128Kのコンテキスト長をサポートしているため、有効にするのが最適です [**KV キャッシュ量子化**](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-set-the-quantization-type-for-the-kv-cache)。当社では8bit量子化を使用しており、メモリ使用量を50%削減できます。また、次も試せます `"q4_0"`

```bash
export OLLAMA_KV_CACHE_TYPE="q8_0"
ollama run hf.co/unsloth/Devstral-Small-2507-GGUF:UD-Q4_K_XL
```

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

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` モデルを直接読み込むには、以下のようにできます：（:Q4\_K\_XL）は量子化タイプです。Hugging Face（3番）経由でもダウンロードできます。これは次と同様です: `ollama run`

```bash
./llama.cpp/llama-cli -hf unsloth/Devstral-Small-2507-GGUF:UD-Q4_K_XL --jinja
```

3. **または** （インストール後に）経由でモデルをダウンロードします `pip install huggingface_hub hf_transfer` 。Q4\_K\_Mや他の量子化版（BF16のフル精度など）を選べます。

```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/Devstral-Small-2507-GGUF",
    local_dir = "unsloth/Devstral-Small-2507-GGUF",
    allow_patterns = ["*Q4_K_XL*", "*mmproj-F16*"], # Q4_K_XL用
)
```

4. モデルを実行します。
5. 編集 `--threads -1` 最大CPUスレッド数に対して、 `--ctx-size 131072` コンテキスト長用（Devstralは128Kのコンテキスト長をサポートしています！）、 `--n-gpu-layers 99` GPUオフロードする層数を指定します。GPUのメモリ不足になる場合は調整してください。CPUのみで推論する場合は削除してください。メモリ使用量を減らすため、Kキャッシュにも8bit量子化を使用しています。
6. 会話モードの場合:

<pre class="language-bash"><code class="lang-bash">./llama.cpp/llama-cli \
    --model unsloth/Devstral-Small-2507-GGUF/Devstral-Small-2507-UD-Q4_K_XL.gguf \
    --threads -1 \
    --ctx-size 131072 \
    <a data-footnote-ref href="#user-content-fn-1">--cache-type-k q8_0</a> \
    --n-gpu-layers 99 \\
    --seed 3407 \\
    --prio 2 \\
    --temp 0.15 \\
    --repeat-penalty 1.0 \
    --min-p 0.01 \\
    --top-k 64 \
    --top-p 0.95 \\
    <a data-footnote-ref href="#user-content-fn-2">--jinja</a>
</code></pre>

7. 会話モード以外で、当社のFlappy Birdプロンプトをテストするには：

<pre class="language-bash"><code class="lang-bash">./llama.cpp/llama-cli \
    --model unsloth/Devstral-Small-2507-GGUF/Devstral-Small-2507-UD-Q4_K_XL.gguf \
    --threads -1 \
    --ctx-size 131072 \
    <a data-footnote-ref href="#user-content-fn-1">--cache-type-k q8_0</a> \
    --n-gpu-layers 99 \\
    --seed 3407 \\
    --prio 2 \\
    --temp 0.15 \\
    --repeat-penalty 1.0 \
    --min-p 0.01 \\
    --top-k 64 \
    --top-p 0.95 \\
    -no-cnv \\
    --prompt "[SYSTEM_PROMPT]あなたはDevstralです。Mistral AIによって学習され、OpenHandsのスキャフォールドを使用する、役立つエージェント型モデルです。タスクを解決するためにコンピュータと対話できます。\n\n&#x3C;ROLE>\nあなたの主な役割は、コマンドの実行、コードの変更、技術的問題の効果的な解決を通じてユーザーを支援することです。入念かつ体系的に進め、速度より品質を優先してください。\n* ユーザーが「なぜXが起きているのか」のような質問をした場合は、問題を修正しようとせず、その質問に答えるだけにしてください。\n&#x3C;/ROLE>\n\n&#x3C;EFFICIENCY>\n* あなたの各アクションにはある程度コストがかかります。可能な限り、複数のアクションを1つのアクションにまとめてください。たとえば、複数のbashコマンドを1つにまとめたり、sedやgrepを使って複数のファイルをまとめて編集・閲覧してください。\n* コードベースを探索する際は、find、grep、gitなどの効率的なツールを適切なフィルタ付きで使用し、不要な操作を最小限に抑えてください。\n&#x3C;/EFFICIENCY>\n\n&#x3C;FILE_SYSTEM_GUIDELINES>\n* ユーザーがファイルパスを指定した場合、それが現在の作業ディレクトリからの相対パスだと決めつけないでください。まずファイルシステムを探索して、そのファイルを見つけてから作業してください。\n* ファイルの編集を求められた場合は、別名の新しいファイルを作るのではなく、そのファイルを直接編集してください。\n* グローバルな検索・置換操作では、複数回ファイルエディタを開く代わりに `sed` の使用を検討してください。\n&#x3C;/FILE_SYSTEM_GUIDELINES>\n\n&#x3C;CODE_QUALITY>\n* コメントは最小限にして、クリーンで効率的なコードを書いてください。コメントの冗長性は避けてください。コード自体から容易に推測できる情報を繰り返さないでください。\n* 解決策を実装する際は、問題を解決するのに必要な最小限の変更に集中してください。\n* 変更を実装する前に、まず探索を通じてコードベースを十分に理解してください。\n* 関数やファイルに大量のコードを追加する場合は、適切に関数やファイルをより小さな部分に分割することを検討してください。\n&#x3C;/CODE_QUALITY>\n\n&#x3C;VERSION_CONTROL>\n* git認証情報を設定する際は、特に指示がない限り、既定で user.name に "openhands"、user.email に "openhands@all-hands.dev" を使用してください。\n* git操作は慎重に行ってください。明示的に求められない限り、潜在的に危険な変更（例：mainへのpush、リポジトリの削除）は行わないでください。\n* コミットする際は、`git status` で変更された全ファイルを確認し、コミットに必要なすべてのファイルをステージしてください。可能な限り `git commit -a` を使用してください。\n* 通常バージョン管理に含めるべきでないファイル（例：node_modules/、.envファイル、ビルドディレクトリ、キャッシュファイル、大きなバイナリ）は、ユーザーに明示的に指示されない限りコミットしないでください。\n* 特定のファイルをコミットしてよいか不明な場合は、.gitignoreファイルの有無を確認するか、ユーザーに確認してください。\n&#x3C;/VERSION_CONTROL>\n\n&#x3C;PULL_REQUESTS>\n* プルリクエストを作成する際は、明示的に別の指示がない限り、セッション／課題ごとに1件だけ作成してください。\n* 既存のPRで作業している場合は、同じ課題に対して追加のPRを作るのではなく、新しいコミットで更新してください。\n* PRを更新する際は、元のPRタイトルと目的を維持し、説明は必要な場合のみ更新してください。\n&#x3C;/PULL_REQUESTS>\n\n&#x3C;PROBLEM_SOLVING_WORKFLOW>\n1. EXPLORATION: 解決策を提案する前に、関連ファイルを十分に探索し、文脈を理解する\n2. ANALYSIS: 複数のアプローチを検討し、最も有望なものを選ぶ\n3. TESTING:\n   * バグ修正の場合：修正を実装する前に、問題を検証するテストを作成する\n   * 新機能の場合：適切な場合はテスト駆動開発を検討する\n   * リポジトリにテスト基盤がなく、テストの実装に大規模なセットアップが必要な場合は、テスト基盤の構築に時間を投資する前にユーザーに相談する\n   * 環境がテスト実行可能な状態でない場合は、依存関係のインストールに時間を投資する前に、まずユーザーに相談する\n4. IMPLEMENTATION: 問題に対処するため、焦点を絞った最小限の変更を行う\n5. VERIFICATION: 環境がテストを実行できる状態なら、エッジケースも含めて実装を十分にテストする。環境がテスト実行可能な状態でない場合は、テストを実行するための時間を投資する前に、まずユーザーに相談する。\n&#x3C;/PROBLEM_SOLVING_WORKFLOW>\n\n&#x3C;SECURITY>\n* GITHUB_TOKEN やその他の認証情報は、ユーザーが明示的に要求し、想定している使い方にのみ使用してください。\n* ユーザーが別のことを求めるか、タスクにブラウジングが必要でない限り、GitHubや他のプラットフォームの操作にはAPIを使用してください。\n&#x3C;/SECURITY>\n\n&#x3C;ENVIRONMENT_SETUP>\n* ユーザーがアプリケーションの実行を求めたとき、アプリがインストールされていなくても止まらないでください。代わりにアプリケーションをインストールし、再度コマンドを実行してください。\n* 依存関係が不足している場合：\n  1. まずリポジトリ内を見回し、既存の依存関係ファイル（requirements.txt、pyproject.toml、package.json、Gemfileなど）を探してください\n  2. 依存関係ファイルがある場合は、それらを使ってすべての依存関係を一度にインストールしてください（例：`pip install -r requirements.txt`、`npm install` など）\n  3. 個別パッケージを直接インストールするのは、依存関係ファイルが見つからない場合、または特定のパッケージのみが必要な場合に限ってください\n* 同様に、ユーザーが要求した必須ツールで依存関係が不足している場合は、可能ならインストールしてください。\n&#x3C;/ENVIRONMENT_SETUP>\n\n&#x3C;TROUBLESHOOTING>\n* 何度も問題解決を試みてもテストが失敗し続ける、またはユーザーからまだ壊れていると報告された場合は、次のことを行ってください。\n  1. 一歩引いて、問題の考えられる原因を5〜7個考える\n  2. 各原因の可能性を評価する\n  3. 最も可能性の高い原因から順に、体系的に対処する\n  4. 推論過程を文書化する\n* ユーザーからの計画を実行している際に大きな問題に直面した場合は、直接回避しようとしないでください。代わりに、新しい計画を提案し、続行する前にユーザーの確認を取ってください。\n&#x3C;/TROUBLESHOOTING>[/SYSTEM_PROMPT][INST]PythonでFlappy Birdゲームを作成してください。以下を必ず含めてください：\n1. pygameを使うこと。\n2. 背景色はランダムに選び、明るい色合いにしてください。最初は薄い青色で始めてください。\n3. SPACEを何度も押すと鳥が加速するようにしてください。\n4. 鳥の形は、四角形、円、三角形のいずれかをランダムに選んでください。色は暗い色をランダムに選んでください。\n5. 下部に、ランダムに選ばれた濃い茶色または黄色の地面を配置してください。\n6. 右上にスコアを表示してください。パイプを通り抜けて当たらなければ加点してください。\n7. 十分な間隔を持つパイプをランダムに配置してください。色は濃い緑、薄い茶色、または濃い灰色のいずれかをランダムにしてください。\n8. 負けたときは最高スコアを表示してください。テキストは画面内に収めてください。q または Esc を押すとゲームを終了します。再開は SPACE をもう一度押します。\n最終的なゲームは、PythonのMarkdownセクション内に収めてください。コードにエラーがないか確認してください[/INST]"
</code></pre>

{% hint style="danger" %}
\<bos> は Devstral が自動で追加するため、削除するのを忘れないでください！また、必ず `--jinja` システムプロンプトを有効にするために使用してください！
{% endhint %}

## :eyes:実験的なビジョンサポート

[Xuan-Son](https://x.com/ngxson) Hugging FaceのXuan-Sonは、その [GGUFリポジトリ](https://huggingface.co/ngxson/Devstral-Small-Vision-2505-GGUF) Mistral 3.1 InstructのビジョンエンコーダーをDevstral 2507に実際に「移植」できることを示しました。また、以下を使えるようにするmmprojファイルもアップロードしました：

```bash
./llama.cpp/llama-mtmd-cli \
    --model unsloth/Devstral-Small-2507-GGUF/Devstral-Small-2507-UD-Q4_K_XL.gguf \
    --mmproj unsloth/Devstral-Small-2507-GGUF/mmproj-F16.gguf \
    --threads -1 \
    --ctx-size 131072 \
    --cache-type-k q8_0 \
    --n-gpu-layers 99 \\
    --seed 3407 \\
    --prio 2 \\
    --temp 0.15
```

例：

| 指示と出力コード                                                                                                      | レンダリングされたコード                                                                                                  |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| ![](https://cdn-uploads.huggingface.co/production/uploads/63ca214abedad7e2bf1d1517/HDic53ANsCoJbiWu2eE6K.png) | ![](https://cdn-uploads.huggingface.co/production/uploads/63ca214abedad7e2bf1d1517/onV1xfJIT8gzh81RkLn8J.png) |

## 🦥 UnslothでDevstralをファインチューニング

Mistral Small 3.1を含む標準のMistralモデルと同様に、UnslothはDevstralのファインチューニングをサポートします。学習は2倍高速で、VRAM使用量を70%削減し、8倍長いコンテキスト長をサポートします。Devstralは24GB VRAMのL4 GPUに余裕で収まります。

残念ながら、Devstralは16GB VRAMのメモリ制限をわずかに超えるため、現時点ではGoogle Colabで無料でファインチューニングすることは *できます* 無料でモデルをファインチューニングするには、私たちの [Kaggle ノートブック](https://www.kaggle.com/notebooks/welcome?src=https://github.com/unslothai/notebooks/blob/main/nb/Kaggle-Magistral_\(24B\)-Reasoning-Conversational.ipynb\&accelerator=nvidiaTeslaT4)、デュアルGPUを利用できるものです。ノートブックのMagistralモデル名をDevstralモデルに変更するだけで済みます。

古いバージョンのUnslothを使っている場合、および/またはローカルでファインチューニングする場合は、最新バージョンのUnslothをインストールしてください:

```bash
pip install --upgrade --force-reinstall --no-cache-dir unsloth unsloth_zoo
```

[^1]: メモリ使用量を減らすためのK量子化。f16、q8\_0、q4\_0が使用できます

[^2]: システムプロンプトを有効にするには --jinja を必ず使用してください


---

# 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/devstral-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.
