Docker Model Runner によるローカルモデルの利用
Docker Model Runner (DMR) を使用すると、自分のマシン上で AI モデルをローカルに実行できます。API キーは不要で、追加コストもかからず、データは完全にプライベートな状態に保たれます。
ローカルモデルを使用する理由
Docker Model Runner を使えば、API キーや継続的な利用料金を気にすることなくモデルを実行できます。データが外部に送信されることはなく、モデルを一度ダウンロードすればオフラインでの作業も可能です。これは、クラウドプロバイダーを利用する際の代替手段となります。
事前準備
Docker Model Runner がインストールされ、実行されている必要があります。
-
Docker Desktop (macOS/Windows): Settings > AI > Enable Docker Model Runner を有効にします。詳細は DMR スタートガイド を参照してください。
-
Docker Engine (Linux):
sudo apt-get install docker-model-pluginまたはsudo dnf install docker-model-pluginでインストールします。詳細は DMR スタートガイド(Engine版) を参照してください。
Docker Model Runner が利用可能か確認するには、以下のコマンドを実行します:
$ docker model versionバージョン情報が返ってくれば、ローカルモデルを使用する準備は完了です。
DMR でのモデル使用
Docker Model Runner は互換性のあるあらゆるモデルを実行できます。モデルのソースには以下が含まれます:
-
Docker Hub リポジトリ (
docker.io/namespace/model-name) -
任意のレジストリにパッケージ化・プッシュされた独自の OCI アーティファクト
-
HuggingFace モデルの直接参照 (
hf.co/org/model-name) -
Docker Desktop 内の Docker Model カタログ
ローカルの Docker カタログで利用可能なモデルを確認するには、以下のコマンドを実行します:
$ docker model list --openaiモデルを使用するには、設定ファイル内でそのモデルを参照するだけです。ローカルに存在しない場合、DMR は初回の実行時に自動的にモデルをプルします。
基本設定
dmr プロバイダーを使用して、エージェントが Docker Model Runner を使用するように設定します。
agents:
root:
model: dmr/ai/qwen3
instruction: あなたは有能なアシスタントです
toolsets:
- type: filesystemエージェントを初めて実行した際、モデルがローカルにない場合はプルするかどうか確認されます:
$ cagent run agent.yaml
Model not found locally. Do you want to pull it now? ([y]es/[n]o)仕組み
エージェントに DMR を使用するよう設定すると、cagent は自動的にローカルの Docker Model Runner に接続し、推論リクエストをそこへルーティングします。モデルがローカルにない場合は初回の使用時にプルを促されます。API キーや認証は一切必要ありません。
高度な設定
モデルの動作をより細かく制御するには、models セクションで定義を行います。
models:
local-qwen:
provider: dmr
model: ai/qwen3:14B
temperature: 0.7
max_tokens: 8192
agents:
root:
model: local-qwen
instruction: あなたは有能なコーディングアシスタントです推測デコーディングによる高速化
小型のドラフトモデルを用いた推測デコーディング(Speculative Decoding)を使用して、レスポンスを高速化できます。
models:
fast-qwen:
provider: dmr
model: ai/qwen3:14B
provider_opts:
speculative_draft_model: ai/qwen3:0.6B-Q4_K_M
speculative_num_tokens: 16
speculative_acceptance_rate: 0.8ドラフトモデルがトークンの候補を生成し、メインモデルがそれを検証します。これにより、長い回答の際のスループットを大幅に向上させることができます。
ランタイムフラグ
パフォーマンスを最適化するために、エンジン固有のフラグを渡すことができます。
models:
optimized-qwen:
provider: dmr
model: ai/qwen3
provider_opts:
runtime_flags: ["--ngl=33", "--threads=8"]主なフラグ:
-
--ngl: GPU にオフロードするレイヤー数 -
--threads: 使用する CPU スレッド数 -
--repeat-penalty: 繰り返し抑制のペナルティ
RAG での DMR 利用
Docker Model Runner は、RAG(検索拡張生成)ワークフローのための埋め込み(Embeddings)とリランキング(Reranking)の両方をサポートしています。\
DMR による埋め込み
ナレッジベースのインデックス作成にローカルの埋め込みモデルを使用します。
rag:
codebase:
docs: [./src]
strategies:
- type: chunked-embeddings
embedding_model: dmr/ai/embeddinggemma
database: ./code.dbDMR によるリランキング
DMR は、RAG の精度を向上させるためのネイティブなリランキング機能を提供します。
models:
reranker:
provider: dmr
model: hf.co/ggml-org/qwen3-reranker-0.6b-q8_0-gguf
rag:
docs:
docs: [./documentation]
strategies:
- type: chunked-embeddings
embedding_model: dmr/ai/embeddinggemma
limit: 20
results:
reranking:
model: reranker
threshold: 0.5
limit: 5DMR ネイティブのリランキングは、RAG 結果の精度を上げるための最も高速なオプションです。
トラブルシューティング
cagent が Docker Model Runner を見つけられない場合は、以下を確認してください:
-
DMR のステータスを確認:
docker model status -
利用可能なモデルを確認:
docker model list -
モデルのログでエラーを確認:
docker model logs -
設定の確認: Docker Desktop の設定(macOS/Windows)で Model Runner が有効になっているか再確認してください