> 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: 実行とファインチューニングの方法

**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;">**任意の Vision サポート**</mark>*](#possible-vision-support) をモデルに追加しました。

{% hint style="success" %}
また、Mistral と裏で協力して、デバッグ、テスト、考えられるバグや問題の修正を行いました！必ず **Mistral 公式のダウンロードまたは Unsloth の GGUF をダウンロードして** / dynamic quants から **正しい実装** （すなわち、正しいシステムプロンプト、正しいチャットテンプレートなど）

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

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

#### **Devstral - Unsloth Dynamic** quants:

| 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-bit 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;">**Temperature を 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>

**システムプロンプトを推奨します**。これは Open Hands のシステムプロンプトを元にした派生版です。完全なシステムプロンプトは以下にあります [こちら](https://huggingface.co/unsloth/Devstral-Small-2505/blob/main/SYSTEM_PROMPT.txt).

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

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

.... SYSTEM PROMPT は続きます ....
```

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

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

1. インストール `ollama` まだインストールしていない場合は！

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

2. 当社の dynamic quant を使ってモデルを実行します。必要であれば `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)を有効にするのが最適です。私たちはメモリ使用量を 50% 節約できる 8bit 量子化を使っています。次も試せます `"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" %}
Devstral は自動で \<bos> を追加するので、\<bos> を削除することを忘れないでください！また、 `--jinja` を使ってシステムプロンプトを有効にしてください！
{% endhint %}

## :eyes:実験的 Vision サポート

[Xuan-Son](https://x.com/ngxson) が Hugging Face で自身の [GGUF リポジトリ](https://huggingface.co/ngxson/Devstral-Small-Vision-2505-GGUF) で示したように、Mistral 3.1 Instruct の vision encoder を Devstral 2507 に「graft」することは実際に可能です。私たちは 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 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/devstral-how-to-run-and-fine-tune.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.
