コンテンツにスキップ

Llama.cpp

提供: ArchWiki
2026年5月4日 (月) 18:35時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (訳出)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)


C/C++ による LLM 推論。

インストール

llama.cpp は AUR で利用できます:

ノート
  • llama.cpp-vulkanAUR をインストールする場合は、適切な Vulkan ドライバーがインストールされていることを確認してください。
  • パッケージ llama.cpp-cudaAUR は 2025-12-22 以降 out-of-date としてフラグされています。

使用方法

主な実行プログラムは llama-clillama-server です。

llama-cli

llama-cli はコマンドライン実行プログラムです:

$ llama-cli -m model.gguf

llama-server

llama-server は組み込み WebUI 付きの API サーバーを起動します:

$ llama-server --host address --port port -m model.gguf

モデルの入手

llama.cpp は GGUF 形式のモデルを使用します。

Hugging Face からダウンロード

-hf フラグを使用して、Hugging Face からモデルをダウンロードします:

$ llama-cli -hf org/model
警告 これは既存のモデルファイルを確認なしで上書きする可能性があります。

手動ダウンロード

wget または curl を使用してモデルを手動でダウンロードします:

$ wget -c model.gguf

ヒントとテクニック

モデルの量子化

量子化はモデルの精度を下げることで、メモリ使用量を削減します。

GGUF モデルでは、量子化レベルを示すために接尾辞が使用されます。一般的に、低い数値、例えば Q4 はメモリ使用量が少なくなりますが、高い数値、例えば Q8 と比べて品質が低下する可能性があります。

知識蒸留

知識蒸留は、大きなモデルの振る舞いに従うよう小さなモデルを訓練することで、大きなモデルを小さなモデルに圧縮します。

通常、GGUF モデルでは student-teacher-distill 表記を使用して知識蒸留を示します。ここで:

  • student は小さいモデルを表します。
  • teacher は大きいモデルを表します。

コンテキストサイズの指定

llama.cpp はデフォルトでモデルからコンテキストサイズを読み込み、コンテキストウィンドウ全体に対してメモリを割り当てます。

メモリ不足になる場合は、低いコンテキストサイズを指定してください。

$ llama-cli -c 32000 -m model.gguf

Key-value キャッシュの量子化

さらにメモリ効率を高めるには、key-value キャッシュを量子化できます。

$ llama-cli -ctk q8_0 -ctv q8_0 -m model.gguf

これは、低いコンテキストサイズと組み合わせることで、メモリ使用量を大幅に削減できます。

ノート
  • keys に対する強い量子化は、品質を目に見えて低下させます。
  • values に対する強い量子化は通常は比較的許容されますが、それでも劣化のリスクがあります。

エージェントシステム

llama-server は WebUI を実行しますが、同じエンドポイントは OpenAI 互換サーバーとしても動作します。opencodeqwen-code のようなコーディングエージェントで使用するよう設定できます。

また、最近の更新により、組み込みのエージェント機能が導入されています。

組み込みツール

ファイルシステム操作とシェルアクセス用の組み込みツールを有効にするには、次のように llama-server を起動します:

$ llama-server --tools all -m model.gguf

これは、十分に強力な推論モデルと組み合わせることで、ブラウザで動作する最小限のコーディングエージェントと見なすことができます。

警告

すべてのやり取りは、llama-server を実行しているユーザーの権限でオペレーティングシステムに送信されることを十分に注意してください。組み込みツールを有効にした状態で、llama-server をネットワークに公開したり、root として実行したりしては絶対にいけません!

Model Context Protocol サーバー

その他のツール、例えば search や fetch は、それらのツールが MCP エンドポイントとして提供されている場合、WebUI に追加できます。

GPU 使用率の監視

Graphics processing unit#Monitoring を参照してください。

トラブルシューティング

MCP リクエストが CORS ポリシーによって拒否される

オンラインでホストされている MCP エンドポイントを WebUI で使用するには、MCP CORS プロキシを有効にします:

$ llama-server --webui-mcp-proxy -m model.gguf

参照