llama.cpp と llama.app: ローカルLLM推論とエコシステム

llama.cpp は汎用性の高い、高性能なローカルLLM推論を提供します

llama.cpp は、コンシューマー向けノートPCからエンタープライズ向けクラスターまで、幅広いハードウェアで大規模言語モデル (LLM) を実行できるように設計された、ハードウェアに依存しない推論エンジンです。Apple Silicon (M Pro, M Max, M Ultra)、NVIDIA GPU (RTX 3090, 4090, 5090, A100, H100, B200)、AMD GPU (Radeon RX, MI300)、Intel Arc、および標準的な CPU を含む多様なアーキテクチャ全体でパフォーマンスを最適化するために、手動で調整されたカーネルを利用しています。

llama.app と 'llama serve' によるデプロイの簡素化

llama.app は llama.cpp の公式な拠点として機能し、ローカルモデルをデプロイするためのより合理化されたユーザー体験を提供します。重要な追加要素として llama serve コマンドがあり、モデルをローカルでホストするプロセスを簡素化します。

エージェント的なコーディングワークフローを求めるユーザーは、llama.cpp を Pi コーディングエージェントと組み合わせることができます。セットアッププロセスは主に3つのステップで構成されます:

  1. llama serve を実行してモデルをホストする。
  2. pi install git:github.com/huggingface/pi-llama を介して pi-llama プラグインをインストールする。
  3. pi を起動してエージェントの使用を開始する。エージェントは API キーや外部設定を必要とせずに、ローカルモデルを自動的に検出します。

技術的能力と最適化

マルチモデルのサポートと設定

llama-server はマルチモデルのデプロイをサポートしています。ユーザーは、テストを通じて最適化されたハードウェア固有のパラメータとともに、複数のモデルを指し示す .ini ファイルを定義できます。これにより、API クライアントは特定のモデルを選択でき、システムがルーティングと最適化を自動的に処理します。

パフォーマンスの向上

「実質的に無料」のパフォーマンス向上を得るために、ngram-mod (または spec-default) を使用することが推奨されています。カスタムハーネスを構築する開発者には、頻繁なモデルの切り替えを必要とするマルチモデル設定の場合、llama-server よりも llama-cpp-python が推奨されます。

コミュニティの洞察とエコシステムの比較

Ollama やその他のランナーとの比較

コミュニティの議論では、llama.cpp と Ollama のような高レベルのラッパーとの違いが強調されています。一部のユーザーは、Ollama のようなツールは llama.cpp のコア機能のブランド名を変更したラッパーとして機能することが多いため、llama.cpp を「AI界の ffmpeg」と表現しています。

他のユーザーは、特に古い NVIDIA ハードウェア (例: RTX 3070) において、vLLM では CUDA ドライバーの再インストールが必要になる場合があるのに対し、llama.cpp はよりスムーズなインストール体験が得られると報告しています。

ハードウェア固有の課題

llama.cpp は汎用的な互換性を目指していますが、一部のユーザーから特定の問題が報告されています:

  • AMD/ROCm サポート: Framework 13 ノートPCを使用している一部のユーザーにおいて、内蔵 AMD GPU のネイティブ ROCm サポートにデグレードが発生し、回避策として Vulkan デバイスへの切り替えが必要になった事例があります。
  • Intel Arc: 一部のユーザーから、Intel Arc A770 GPU に対して OpenVINO サポートを有効にして llama.cpp をコンパイルする際に困難が生じるとの報告があります。

デプロイの代替案

シェルスクリプト (curl | sh) を避けたい場合は、リポジトリをクローンして CMake を使用してソースからビルドすることがコミュニティによって推奨されています:

git clone https://github.com/ggml-org/llama.cpp
cmake -B build
cmake --build build --config Release

"Git clone llama.cpp and build it, it's not hard... literally just a few steps for the basics."

Hugging Face との統合

llama.cpp は最近 Hugging Face の一部となり、エコシステムがさらに統合されました。macOS ユーザーの場合、llama.app をインストールする前に Homebrew を介して llama.cpp をインストールしておくと、llama.app のリリースサイクルが遅い場合でも、より簡単にアップデートを行うことができます。さらに、Hugging Face CLI (hf) を介してインストールされたモデルは、llama.app によって自動的に検出されます。

Sources

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト