デバイス上のローカルモデル
モデルを一つダウンロードして有効にすれば、ネットワークを抜いても AI は答え続けます。
このページの範囲
Section titled “このページの範囲”#45 は自由度の高い Hugging Face マーケット プレイスで、任意の repo・任意の量子化を検索してインストールできます。この ページで扱うのは、DuDuClaw OS デバイスが箱から出した時点で持っている、 もっと狭い道です。検証済みの短いリスト、ワンクリックのダウンロード、 もうワンクリックでそのモデルを稼働中にする、という三段階です。
デバイスイメージには推論エンジンだけが入っていて、重みは入っていません。 重みは数 GB あり、しかも古くなるため、イメージに焼き込まず必要になった 時点で取得します。
6 つのモデル、すべて実地検証
Section titled “6 つのモデル、すべて実地検証”リストの各行について、repository id・ファイル名・バイトサイズ・匿名で ダウンロードできるかを、2026-09-05 に Hugging Face API へ実際に問い合わせて 確認しました。推測はひとつもありません。そのうち 2 件はリストの中身を 変えました。
- Qwen 公式の
Qwen3-1.7B-GGUFには Q4_K_M が一切なく、Q8_0 のみでした。 そのため 1.7B の行はunsloth版を採用しています。 - Google の Gemma 3 GGUF repo はファイル取得に手動承認が必要で、ワン
クリックのダウンロードが成立しません。承認不要な
ggml-orgのビルドに 差し替えました。
| モデル | ファイルサイズ | メモリ要件 | 向いている用途 |
|---|---|---|---|
| Qwen3 1.7B | 1.0 GB | 約 2.5 GB | 会話が成立する最小構成、中国語が得意 |
| Llama 3.2 3B | 1.9 GB | 約 3.4 GB | 小さなマシンでの英語チャット |
| Qwen3 4B | 2.3 GB | 約 3.9 GB | バランスの取れた既定値 |
| Gemma 3 4B | 2.3 GB | 約 3.9 GB | 多言語チャット |
| Qwen2.5-Coder 7B | 4.4 GB | 約 5.9 GB | コードの読み書き |
| Qwen3 8B | 4.7 GB | 約 6.2 GB | 6 つの中で最も高性能 |
6 つとも Q4_K_M です。メモリの列はファイルサイズにコンテキストとエンジンの 作業バッファを足した値で、回答中に実際に必要となる量です。ダウンロード サイズとは別の数字です。
ローカルモデルのコンテキストウィンドウはクラウドモデルよりはるかに小さく、アプライアンスは既定で 8192 トークンを提供します。エージェントのツールループがローカルエンジンで動くとき、gateway はまず llama.cpp にそのウィンドウ(/props)を問い合わせ、リクエストを収めます:ツールは登録順に予算の 45% まで(goal loop が依存する tasks_* ツールは常に保持)、システムプロンプトが収まらなければ末尾から切り詰めて目印を付け、回答用に 1024 トークンを空けておきます。この仕組みがないと、完全なエージェントプロンプトと全 MCP ツール(約 33k トークン)は毎回サーバーに拒否されていました。
3 ステップ
Section titled “3 ステップ”管理 → ローカルモデル を開きます。内蔵パネルはマーケットプレイスの 上にあります。
+---------------------------+ | モデルを選ぶ | 緑 / 黄 / 赤 の適合ランプ、 | | 「今のこのマシン」で計算 +------------+--------------+ | v +---------------------------+ | ダウンロード | バックグラウンド実行・再開可能、 | | 進捗はカードに表示 +------------+--------------+ | v +---------------------------+ | このモデルを使う | 設定を保存してエンジンを起動、 | | 応答が通ればバナーが緑になる +---------------------------+適合ランプは、モデルのメモリ要件と、このマシンが今空けている容量を比べた 結果です。緑は余裕あり、黄はぎりぎり収まる、赤は収まらない、を意味します。
バナーが伝えていること
Section titled “バナーが伝えていること”ステータス行はライブの疎通確認から導かれます。設定ファイルの記述は見て いません。「ローカルモデルが応答中」は、エンジンが直前のリクエストに実際に 応答し、読み込んでいる重みの名前を返したという意味です。エンジンが落ちれば 次のポーリングでバナーが正直にそう変わります。
モデルの切り替えも同じ 2 クリックです。別のモデルをダウンロードし、 「このモデルを使う」を押すと、エンジンが新しいファイルで再起動します。 以前のファイルはインストール済み一覧から削除するまでディスクに残ります。
速度。 回答はこのデバイス自身のプロセッサーと内蔵グラフィックスで計算 されます。小さなローカルモデルはクラウドよりはっきり遅く感じられ、どれ くらい遅いかはハードウェア次第です。ダッシュボードは tokens/秒 の数値を 意図的に表示しません。お使いのマシンで誰も実測していないからです。
能力。 4B のモデルは、難しい推論・長い多段階の作業・コードレビューに おいてフロンティアのクラウドモデルの代わりにはなりません。得意なのは、 一日の大半を占める短くて反復的なやり取りです。これを分類する、あれを 要約する、この一行を翻訳する、定型的な質問に答える、といった仕事です。
存在しないモデルをでっち上げません。 重みを一つもダウンロードして いないデバイスは、その事実をそのまま報告します。ローカル推論はリクエストを 送る前に「ローカルモデルが未インストール」と明示して拒否します。失敗が 確定しているリクエストを投げ、対処しようのない接続エラーを見せることは しません。
クラウドとローカルの分担
Section titled “クラウドとローカルの分担”デバイスは既定で inference_mode = "hybrid" を維持します。設定済みの
クラウド runtime は得意な仕事をそのまま担当し、ローカルモデルはその下に
控えます。前面に立つわけではありません。ローカル寄りにする方法は 2 つ
あります。
- エージェント単位:そのエージェントの
agent.tomlの[model.local]にprefer_local = trueを設定します。簡単なやり取りはローカルを先に試し、 失敗したらクラウドへ戻ります。 - 全体:
config.tomlにinference_mode = "local"を設定します。すべての リクエストがローカルモデルへ向かい、信頼度ルーターがエスカレーションを 判断したときだけクラウドに届きます。
クラウドアカウントを一つも設定していない場合、ローカルモデルが唯一の経路に なります。ネットワークを抜いたデバイスが使い物になるのはこのためです。
どのリクエストをクラウドに上げる価値があるか判断する信頼度ルーターは #03 を参照してください。内蔵の 6 つ以外を探す 場合は #45 を参照してください。
ファイルの置き場所
Section titled “ファイルの置き場所”- ダウンロードした重み:デバイス自身のモデルディレクトリ。マーケット プレイスからインストールしたものと同じ場所です。
- 現在の選択:「このモデルを使う」を押した時点で保存され、ステータス パネルが読み戻して表示します。
どちらもデバイスのデータ領域にあるため、システム更新後も残ります。