mcpField
L
llama-cpp

llama-cpp

github.com/kalarislabsその他7344 回インストール4 日前に更新
リポジトリ

llama-cpp について

llama-cppは、llama.cppでLLM推論を行うためのスキルです。CPUのみの環境、Apple Silicon、AMD/Intel GPU、エッジ環境での利用を想定し、CLIやサーバーモード、ハードウェアアクセラレーション、GGUF量子化を扱います。

主な機能

  1. 01CPUと各種GPUでの推論
  2. 02コマンドラインとサーバーモード
  3. 03GGUF量子化フォーマット
  4. 04バッチ処理と制約付き生成
  5. 05コンテキスト長の設定

活用シーン

  1. 01CPUのみのマシンでモデルを実行
  2. 02Apple Siliconへのデプロイ
  3. 03AMDまたはIntel GPUでの推論
  4. 04エッジデバイス向け推論の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill llama-cpp

インストール後、Claude Code で/llama-cppを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
optimization.md
quantization.md
server.md

詳細

llama.cpp

依存関係を最小限に抑え、CPU および NVIDIA 以外のハードウェア向けに最適化された、純粋な C/C++ LLM 推論です。

llama.cpp を使用する場合

次の場合は llama.cpp を使用してください:

  • CPU のみのマシンで実行する場合
  • Apple Silicon(M1/M2/M3/M4)にデプロイする場合
  • AMD または Intel GPU(CUDA なし)を使用する場合
  • エッジ環境にデプロイする場合(Raspberry Pi、組み込みシステム)
  • Docker/Python を使わずにシンプルにデプロイする必要がある場合

次の場合は代わりに TensorRT-LLM を使用してください:

  • NVIDIA GPU(A100/H100)を使用している場合
  • 最大スループット(100K+ tok/s)が必要な場合
  • CUDA を使用するデータセンターで実行する場合

次の場合は代わりに vLLM を使用してください:

  • NVIDIA GPU を使用している場合
  • Python を優先した API が必要な場合
  • PagedAttention を使用する場合

クイックスタート

インストール
# macOS/Linux
brew install llama.cpp

# Or build from source
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

# With Metal (Apple Silicon)
make LLAMA_METAL=1

# With CUDA (NVIDIA)
make LLAMA_CUDA=1

# With ROCm (AMD)
make LLAMA_HIP=1
モデルをダウンロード
# Download from HuggingFace (GGUF format)
huggingface-cli download \
    TheBloke/Llama-2-7B-Chat-GGUF \
    llama-2-7b-chat.Q4_K_M.gguf \
    --local-dir models/

# Or convert from HuggingFace
python convert_hf_to_gguf.py models/llama-2-7b-chat/
推論を実行
# Simple chat
./llama-cli \
    -m models/llama-2-7b-chat.Q4_K_M.gguf \
    -p "Explain quantum computing" \
    -n 256  # Max tokens

# Interactive chat
./llama-cli \
    -m models/llama-2-7b-chat.Q4_K_M.gguf \
    --interactive
サーバーモード
# Start OpenAI-compatible server
./llama-server \
    -m models/llama-2-7b-chat.Q4_K_M.gguf \
    --host 0.0.0.0 \
    --port 8080 \
    -ngl 32  # Offload 32 layers to GPU

# Client request
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-2-7b-chat",
    "messages": [{"role": "user", "content": "Hello!"}],
    "temperature": 0.7,
    "max_tokens": 100
  }'

量子化形式

GGUF 形式の概要
形式ビット数サイズ(7B)速度品質用途
Q4_K_M4.54.1 GB高速良好推奨されるデフォルト
Q4_K_S4.33.9 GBより高速低め速度が重要な場合
Q5_K_M5.54.8 GB中程度より良好品質が重要な場合
Q6_K6.55.5 GB低速最高最高品質
Q8_08.07.0 GB低速非常に良好劣化を最小限に抑える場合
Q2_K2.52.7 GB最速低いテストのみ
量子化方式の選択
# General use (balanced)
Q4_K_M  # 4-bit, medium quality

# Maximum speed (more degradation)
Q2_K or Q3_K_M

# Maximum quality (slower)
Q6_K or Q8_0

# Very large models (70B, 405B)
Q3_K_M or Q4_K_S  # Lower bits to fit in memory

ハードウェアアクセラレーション

Apple Silicon(Metal)
# Build with Metal
make LLAMA_METAL=1

# Run with GPU acceleration (automatic)
./llama-cli -m model.gguf -ngl 999  # Offload all layers

# Performance: M3 Max 40-60 tokens/sec (Llama 2-7B Q4_K_M)
NVIDIA GPU(CUDA)
# Build with CUDA
make LLAMA_CUDA=1

# Offload layers to GPU
./llama-cli -m model.gguf -ngl 35  # Offload 35/40 layers

# Hybrid CPU+GPU for large models
./llama-cli -m llama-70b.Q4_K_M.gguf -ngl 20  # GPU: 20 layers, CPU: rest
AMD GPU(ROCm)
# Build with ROCm
make LLAMA_HIP=1

# Run with AMD GPU
./llama-cli -m model.gguf -ngl 999

よくあるパターン

バッチ処理
# Process multiple prompts from file
cat prompts.txt | ./llama-cli \
    -m model.gguf \
    --batch-size 512 \
    -n 100
制約付き生成
# JSON output with grammar
./llama-cli \
    -m model.gguf \
    -p "Generate a person: " \
    --grammar-file grammars/json.gbnf

# Outputs valid JSON only
コンテキストサイズ
# Increase context (default 512)
./llama-cli \
    -m model.gguf \
    -c 4096  # 4K context window

# Very long context (if model supports)
./llama-cli -m model.gguf -c 32768  # 32K context

パフォーマンスベンチマーク

CPU パフォーマンス(Llama 2-7B Q4_K_M)
CPUスレッド数速度コスト
Apple M3 Max1650 tok/s$0(ローカル)
AMD Ryzen 9 7950X3235 tok/s$0.50/時間
Intel i9-13900K3230 tok/s$0.40/時間
AWS c7i.16xlarge6440 tok/s$2.88/時間
GPU アクセラレーション(Llama 2-7B Q4_K_M)
GPU速度CPU 比コスト
NVIDIA RTX 4090120 tok/s3-4×$0(ローカル)
NVIDIA A1080 tok/s2-3×$1.00/時間
AMD MI25070 tok/s2×$2.00/時間
Apple M3 Max(Metal)50 tok/s~同等$0(ローカル)

対応モデル

LLaMA ファミリー:

  • Llama 2(7B、13B、70B)
  • Llama 3(8B、70B、405B)
  • Code Llama

Mistral ファミリー:

  • Mistral 7B
  • Mixtral 8x7B、8x22B

その他:

  • Falcon、BLOOM、GPT-J
  • Phi-3、Gemma、Qwen
  • LLaVA(画像)、Whisper(音声)

モデルを探す:https://huggingface.co/models?library=gguf

参考資料

リソース

エージェントの運用手順

  1. 環境を確認します。 ハードウェア、フレームワークとサーバーのバージョン、モデル形式、想定負荷を確認します。
  2. 入力を明確にします。 データまたはユーザーから、形式、識別子、パラメーターを確認します。結果に影響する値は推測せず、質問してください。
  3. まず小規模に実行します。 スケールアップする前に、単一のリクエストを処理または記録するか、エンドツーエンドで実行します。
  4. 上記の手順と参考資料に従って、タスク全体を実行します。
  5. 結果を検証します。 レイテンシー、スループット、出力の正確性を参照データと比較して測定し、リソース使用量とコストを確認します。
  6. 報告します。 実行した内容(バージョン、コマンド、パラメーター)、確認した内容、未解決の点を伝えます。
こうなった場合対応方法
サーバーの起動に失敗するか、OOM が発生するモデルサイズとメモリーの関係、量子化と並列処理の設定を確認します。
インストール済みバージョンに、これらの手順にある関数、フラグ、エンドポイントがないインストール済みバージョンのドキュメント(help()、--help、公式ドキュメント)を確認して適宜対応し、ユーザーに伝えます。API を決して捏造しないでください。
必須の入力、識別子、パラメーターが曖昧であるユーザーに質問するか、実行前に前提を明示します。

誠実性に関するルール

  • 結果、パラメーター、識別子、引用、統計を決して捏造しないでください。実行または検証できないことがある場合は、率直に伝えます。
  • サービスや認証情報を公開しないでください。プロビジョニングの前にクラウドのコストを確認します。
  • ここに記載されているバージョン固有の詳細は古くなっている可能性があるため、インストール済みバージョンの公式ドキュメントで確認します。
  • 費用が発生する操作、共有 GPU やクラウドのクォータを消費する操作、個人データや患者データを扱う操作、取り消せない操作の前には、ユーザーに確認します。

関連スキル

  • gguf-quantization:効率的な CPU/GPU 推論のための GGUF 形式と llama.cpp の量子化。
  • tensorrt-llm:NVIDIA TensorRT を使用して LLM 推論を最適化し、スループットを最大化してレイテンシーを最小化します。
  • gptq:AutoGPTQ と transformers を使用し、グループ単位の量子化(デフォルトのグループサイズは 128)で LLM を 4 ビット(3 ビットにも)に量子化します。

コメント