# 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 検証済み](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と引き続き良好に動作しますが、他のプロンプトやコーディング環境にもより一般化するようになりました。

テキスト専用として、視覚エンコーダーは微調整前に削除されました。私たちはモデルに対して [*<mark style="background-color:green;">**オプションのビジョンサポート**</mark>*](#possible-vision-support) を追加しました。

{% hint style="success" %}
また、バックグラウンドでMistralと協力してバグや問題のデバッグ、テスト、修正を支援しました！必ず **Mistralの公式ダウンロードかUnslothのGGUFをダウンロードしてください** / 動的量子化を使って、 **正しい実装を入手してください** （例：正しいシステムプロンプト、正しいチャットテンプレートなど）

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

すべてのDevstralアップロードは当社のUnsloth [Dynamic 2.0](https://unsloth.ai/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs) 手法を使用しており、5ショットMMLUおよびKL Divergenceベンチマークで最高のパフォーマンスを提供します。つまり、量子化したMistral LLMを精度損失を最小限に抑えて実行および微調整できるということです！

#### **Devstral - Unsloth ダイナミック** 量子化：

| 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;">**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>

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

{% hint style="success" %}
当社のダイナミックアップロードには '`UD`' プレフィックスが含まれています。プレフィックスがないものはダイナミックではありませんが、それでも当社のキャリブレーションデータセットを利用しています。
{% endhint %}

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

1. Ollamaで実行する `をインストールしてください` まだインストールしていない場合は！

```bash
apt-get update
こちらを参照してください
apt-get install pciutils -y
```

2. 当社のダイナミック量子化でモデルを実行してください。失敗した場合は別のターミナルで `ollama serve と`を呼び出せることに注意してください！推奨されるすべてのパラメータ（temperatureなど）はに含めています `を呼び出すことができます！私たちはすべての修正と推奨パラメータ（temperatureなど）を` params
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)。私たちはKキャッシュに対して8bit量子化を使用しており、メモリ使用量を50%節約します。"q4\_0"も試すことができます `"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を実行する方法 <a href="#tutorial-how-to-run-llama-4-scout-in-llama.cpp" id="tutorial-how-to-run-llama-4-scout-in-llama.cpp"></a>

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に類似しています。 `ollama run`

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

3. **または** モデルをダウンロードする（以下をインストールした後） `モデルをダウンロードするには（` ）。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">export LLAMA_CACHE="unsloth/GLM-4.7-GGUF"
    --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 \
    --model unsloth/GLM-4.7-GGUF/UD-Q2_K_XL/GLM-4.7-UD-Q2_K_XL-00001-of-00003.gguf \
    --prio 2 \
    --temp 0.15 \
    --repeat-penalty 1.0 \
    --min-p 0.01 \
    --top-k 64 \
    --temp 1.0 \
    <a data-footnote-ref href="#user-content-fn-2">--jinja</a>
</code></pre>

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

<pre class="language-bash"><code class="lang-bash">export LLAMA_CACHE="unsloth/GLM-4.7-GGUF"
    --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 \
    --model unsloth/GLM-4.7-GGUF/UD-Q2_K_XL/GLM-4.7-UD-Q2_K_XL-00001-of-00003.gguf \
    --prio 2 \
    --temp 0.15 \
    --repeat-penalty 1.0 \
    --min-p 0.01 \
    --top-k 64 \
    --temp 1.0 \
    -no-cnv \
    --prompt "[SYSTEM_PROMPT]あなたはDevstralです。Mistral AIによって訓練され、OpenHandsのスキャフォールドを使用する有用なエージェンシックモデルです。コンピュータと対話してタスクを解決できます。\n\n&#x3C;ROLE>\nあなたの主な役割は、コマンドの実行、コードの修正、技術的問題の効果的な解決によってユーザーを支援することです。徹底的かつ体系的に対応し、速さよりも品質を優先してください。\n* ユーザーが「なぜXが起きているのか」のような質問をした場合、問題を修正しようとせず、その質問に対する回答のみを提供してください。\n&#x3C;/ROLE>\n\n&#x3C;EFFICIENCY>\n* あなたの各アクションはややコストがかかります。可能な限り複数のアクションを単一のアクションにまとめてください。例えば複数の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へのプッシュ、リポジトリの削除など）危険を伴う変更を行わないでください。\n* 変更をコミットする際は `git status` で修正されたファイルを確認し、コミットに必要なファイルをすべてステージしてください。可能な場合は `git commit -a` を使用してください。\n* 一般にバージョン管理に含めるべきでないファイル（例：node_modules/、.env ファイル、ビルドディレクトリ、キャッシュファイル、大きなバイナリ）はユーザーから明示的に指示がない限りコミットしないでください。\n* どのファイルをコミットすべきか不明な場合は、.gitignore の存在を確認するか、ユーザーに確認してください。\n&#x3C;/VERSION_CONTROL>\n\n&#x3C;PULL_REQUESTS>\n* プルリクエストを作成する際は、特に指示がない限りセッション/issueごとに1つだけ作成してください。\n* 既存のPRに取り組む場合は、同じ問題に対して追加のPRを作成するのではなく、新しいコミットで既存のPRを更新してください。\n* PRを更新する際は、元のPRタイトルと目的を保持し、必要な場合にのみ説明を更新してください。\n&#x3C;/PULL_REQUESTS>\n\n&#x3C;PROBLEM_SOLVING_WORKFLOW>\n1. 探索：提案する前に関連ファイルを徹底的に探索してコンテキストを理解する\n2. 分析：複数のアプローチを検討し、最も有望なものを選択する\n3. テスト：\n   * バグ修正の場合：修正を実装する前に問題を検証するテストを作成する\n   * 新機能の場合：適切な場合はテスト駆動開発を検討する\n   * リポジトリにテスト基盤が欠けており、テストの実装が大規模なセットアップを要する場合は、時間を投資する前にユーザーと相談する\n   * 環境がテストを実行するために整っていない場合は、時間をかけてすべての依存関係をインストールする前にユーザーと相談する\n4. 実装：問題に対処するために焦点を絞った最小限の変更を行う\n5. 検証：環境がテストを実行できる場合は、境界値を含めて実装を徹底的にテストする。環境が整っていない場合は、テスト実行に時間をかける前にユーザーと相談する\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のマークダウンセクション内にあること。エラーがないかコードを確認してください[/INST]"
</code></pre>

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

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

[Xuan-Son](https://x.com/ngxson) Hugging Faceの [GGUFリポジトリ](https://huggingface.co/ngxson/Devstral-Small-Vision-2505-GGUF) で、Mistral 3.1 Instructのビジョンエンコーダーを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 \
    --model unsloth/GLM-4.7-GGUF/UD-Q2_K_XL/GLM-4.7-UD-Q2_K_XL-00001-of-00003.gguf \
    --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: 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.
