PI DOCUMENTATION / 日本語

llama.cpp によるローカルモデル

原文を読む ↗
非公式日本語訳機械翻訳・対訳チェック済み更新 2026/10/01

Pi は llama.cpp ルーターサーバーをサポートしています。ルーターは複数の GGUF モデルを検出し、必要に応じてロードまたはアンロードします。

ルーターをサポートする最新の llama.cpp ビルドを使用してください。ビルド手順に従うか、お使いのプラットフォーム向けのビルド済みリリースをインストールします。

ルーターを起動する#

--model または -m を指定せずに llama-server を起動します。モデルを指定すると、ルーターモードではなく単一モデルモードで起動します。

bash
llama-server \
  --models-dir ~/models \
  --no-models-autoload \
  --jinja \
  --host 127.0.0.1 \
  --port 8080 \
  -ngl 999 \
  -c 32768

重要なオプション:

  • --models-dir ~/models はローカルの GGUF ファイルを検出します。
  • --no-models-autoload は、/llama を介した明示的なロードのみを行うようにします。
  • --jinja は、互換性のあるチャットテンプレートとツール呼び出しを有効にします。
  • -ngl 999 は、可能な限り多くのレイヤーを GPU にオフロードします。
  • -c 32768 は、ロードされた各モデルのコンテキストウィンドウを設定します。モデル固有のコンテキストを使用するには省略しますが、メモリが大幅に多く必要になる場合があります。

単一ファイルのモデルは、モデルディレクトリの直下に配置できます。マルチモーダルモデルと複数シャードのモデルは、それぞれ別のサブディレクトリに配置してください:

text
~/models/
├── llama-3.2-1b-Q4_K_M.gguf
├── gemma-3-4b-it-Q4_K_M/
│   ├── gemma-3-4b-it-Q4_K_M.gguf
│   └── mmproj-F16.gguf
└── large-model-Q4_K_M/
    ├── large-model-Q4_K_M-00001-of-00003.gguf
    ├── large-model-Q4_K_M-00002-of-00003.gguf
    └── large-model-Q4_K_M-00003-of-00003.gguf

ファイルを手動で追加した後は、ルーターを再起動してください。モデルごとのコンテキストサイズやその他のオプションには、llama.cpp のモデルプリセットを使用します。

Pi を設定する#

Pi を起動し、プロバイダーを設定します:

text
/login llama.cpp

ルーターの URL と、必要に応じて API キーを入力します。デフォルトの URL は http://127.0.0.1:8080 です。

--no-models-autoload を指定してルーターを起動した場合、/login llama.cpp は接続情報のみを保存します。/llama を実行してモデルをロードしてから、/model で現在のセッションに使用するロード済みモデルを選択します。

環境変数を使用すれば、/login を使わずに同じ値を設定できます:

bash
export LLAMA_BASE_URL=http://127.0.0.1:8080
export LLAMA_API_KEY=optional-secret
pi

サーバーが API キーを使用する場合は、対応する --api-key の値を指定して llama-server を起動します。ローカルからのみアクセスできるようにするには、--host 127.0.0.1 を維持してください。

モデルを管理する#

次を実行します:

text
/llama
  • 未ロードのモデルを選択すると、そのモデルがロードされます。
  • ロード済みのモデルを選択すると、そのモデルがアンロードされます。
  • **モデルをダウンロード…**を選択し、Hugging Face を検索してから、リポジトリと量子化方式を選択します。正確な owner/repository[:quant] 値を指定することもできます。
  • ロード中またはダウンロード中に Escape キーを押すと、キャンセルの確認が表示されます。

Hugging Face の検索では、HF_TOKEN が設定されている場合はそれを使用し、次に $HF_TOKEN_PATH、$HF_HOME/token、$XDG_CACHE_HOME/huggingface/token、~/.cache/huggingface/token の順に確認します。認証なしでも検索できますが、レート制限は低くなります。Pi は、アクセス制限付きリポジトリをダウンロードする前に警告し、そのアクセスページへのリンクを表示します。ダウンロードは llama.cpp サーバーが実行するため、選択したリポジトリへのアクセスに必要な場合は、そのプロセスにも HF_TOKEN を設定する必要があります。

ほかのモデルがロードされている場合、Pi はそれらを先にアンロードするか、ロードしたままにするかを確認します。Pi がモデルを暗黙にアンロードすることはなく、モデルファイルを削除することもありません。ルーターはほかのクライアントと共有されている場合があるため、/llama には常にルーターの現在の状態が表示されます。

ロード済みおよびスリープ中のモデルは /model に表示されます。スリープ中のモデルは、選択すると自動的に復帰します。ルーターの自動ロードが有効な場合、未ロードのプリセットモデルも表示され、選択するとロードされます。--no-models-autoload を使用している場合は、モデルを選択する前に /llama からロードしてください。

ルーターとの接続が切れると、/llama に 再試行と閉じるが表示されます。再試行すると、接続を再確立してモデルの状態を更新しますが、中断された操作は再実行しません。

分類#

チャット用として一覧表示されるすべてのモデルは、同じ ID と llama-cpp-classify API を持つ分類器モデルとしても一覧表示されます。分類器モデルは、TypeSafe の Jev モデルと同様に、JSON の状態に関する型付きの choice、bool、score の質問に回答します。モデルは codemode スクリプトから、拡張機能は ctx.modelRegistry.classify() を介してこれらを利用できます。詳細は分類器モデルを参照してください。

モデルは回答文を生成しません。各質問は、状態、リクエスト内のすべての質問、再度の状態、そして単一トークンのラベルの下に回答を並べた質問からなる、1 つのチャットプロンプトになります。ラベルには、選択肢では文字(最大 62 個)、真偽値では Yes/No、スコアでは数字(最大 10 段階)を使用します。2 回目の状態は質問を参照できる状態で読み取られ、この方法により小規模モデルを使用した JevBench で精度が向上しました。Pi は次のトークンとして各ラベルが生成される確率を読み取り、正規化します。選択肢では各オプションの確率と (n * peak - 1) / (n - 1) の信頼度を返し、スコアでは期待されるレベルを返します。

  • 生のラベル確率は通常、過度に確信的です。リクエストごとの temperature オプションは、正規化前にラベルのロジットを除算します。1 より大きい値にすると分布が平滑化されます。回答自体は変わりません。
  • 質問は順番に実行されます。最後の質問より前の内容は、リクエスト内のすべての質問で同じであるため、サーバーのプロンプトキャッシュによる評価は 1 回だけです。状態は 2 回出現するため、コンテキストには状態のサイズの 2 倍が必要です。
  • 小規模モデルは、状態内に記述された指示に従う場合があります。プロンプトはモデルに状態をデータとして判定するよう指示しますが、それを保証するものではありません。
  • Qwen3.5 などのハイブリッドモデルは、コンテキストチェックポイントがないと、部分的にキャッシュされたプロンプトを巻き戻せません。各質問で状態全体が再処理される場合は、--ctx-checkpoints 32 --checkpoint-min-step 0 を指定してルーターを起動してください。

トラブルシューティング#

ルーターに接続できることを確認します:

bash
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/models
  • /llama にモデルが表示されない: --models-dir とディレクトリ構成を確認し、ルーターを再起動してください。
  • --no-models-autoload の使用時に /model にモデルが表示されない: 先に /llama でロードしてください。
  • ロードに失敗する、またはメモリを使いすぎる: -c を小さくするか、別のモデルをアンロードしてください。
  • サーバーがルーターモードではない: --model、-m、-hf のいずれも指定せずに起動してください。

llama.cpp プロバイダーと /llama を削除するには、pi config の Built-in で llama.cpp を無効にするか、設定で "extensions": ["-builtin:llama.cpp"] を指定します。

日本語やコマンド名で検索できます。