llama-cpp
NVIDIA不要でCPU・Apple Silicon・一般向けGPU上でLLM推論を実行します。エッジ環境やM1/M2/M3 Mac、AMD/Intel GPU、CUDAが利用できない場面での活用に最適です。GGUFによる量子化(1.5〜8ビット)に対応し、メモリ削減とCPU上でのPyTorchと比較した4〜10倍の高速化を実現します。
description の原文を見る
Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.
SKILL.md 本文
llama.cpp
最小限の依存関係を備えた純粋なC/C++ LLM推論で、CPUと非NVIDIAハードウェアに最適化されています。
llama.cpuを使用する場合
以下の場合にllama.cpuを使用してください:
- CPUのみのマシンで実行する場合
- Apple Silicon(M1/M2/M3/M4)にデプロイする場合
- AMD または Intel GPU を使用する場合(CUDA なし)
- エッジデプロイメント(Raspberry Pi、組み込みシステム)
- Docker/Python なしでシンプルなデプロイが必要な場合
代わりに TensorRT-LLM を使用する場合:
- NVIDIA GPU(A100/H100)がある場合
- 最大スループット(100K+ トークン/秒)が必要な場合
- CUDA を使用したデータセンター環境で実行する場合
代わりに vLLM を使用する場合:
- NVIDIA GPU がある場合
- Python ファーストの API が必要な場合
- PagedAttention が必要な場合
クイックスタート
インストール
# macOS/Linux
brew install llama.cpp
# または、ソースからビルド
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
# Metal対応(Apple Silicon)
make LLAMA_METAL=1
# CUDA対応(NVIDIA)
make LLAMA_CUDA=1
# ROCm対応(AMD)
make LLAMA_HIP=1
モデルのダウンロード
# HuggingFace からダウンロード(GGUF 形式)
huggingface-cli download \
TheBloke/Llama-2-7B-Chat-GGUF \
llama-2-7b-chat.Q4_K_M.gguf \
--local-dir models/
# または HuggingFace から変換
python convert_hf_to_gguf.py models/llama-2-7b-chat/
推論を実行
# シンプルなチャット
./llama-cli \
-m models/llama-2-7b-chat.Q4_K_M.gguf \
-p "Explain quantum computing" \
-n 256 # Max tokens
# インタラクティブチャット
./llama-cli \
-m models/llama-2-7b-chat.Q4_K_M.gguf \
--interactive
サーバーモード
# OpenAI 互換サーバーを起動
./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
# クライアントリクエスト
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_M | 4.5 | 4.1 GB | 高速 | 良好 | 推奨デフォルト |
| Q4_K_S | 4.3 | 3.9 GB | より高速 | 低い | 速度優先 |
| Q5_K_M | 5.5 | 4.8 GB | 中程度 | より良い | 品質優先 |
| Q6_K | 6.5 | 5.5 GB | 低速 | 最高 | 最大品質 |
| Q8_0 | 8.0 | 7.0 GB | 低速 | 優秀 | 最小限の劣化 |
| Q2_K | 2.5 | 2.7 GB | 最高速 | 低い | テストのみ |
量子化の選択
# 一般的な使用(バランス型)
Q4_K_M # 4ビット、中程度の品質
# 最高速(品質低下あり)
Q2_K or Q3_K_M
# 最高品質(低速)
Q6_K or Q8_0
# 超大規模モデル(70B、405B)
Q3_K_M or Q4_K_S # メモリに収まるように低いビット数
ハードウェアアクセラレーション
Apple Silicon(Metal)
# Metal でビルド
make LLAMA_METAL=1
# GPU アクセラレーション で実行(自動)
./llama-cli -m model.gguf -ngl 999 # すべてのレイヤーをオフロード
# パフォーマンス: M3 Max 40-60 トークン/秒(Llama 2-7B Q4_K_M)
NVIDIA GPU(CUDA)
# CUDA でビルド
make LLAMA_CUDA=1
# レイヤーを GPU にオフロード
./llama-cli -m model.gguf -ngl 35 # 35/40 レイヤーをオフロード
# 大規模モデルの場合は CPU+GPU ハイブリッド
./llama-cli -m llama-70b.Q4_K_M.gguf -ngl 20 # GPU: 20 レイヤー、CPU: 残り
AMD GPU(ROCm)
# ROCm でビルド
make LLAMA_HIP=1
# AMD GPU で実行
./llama-cli -m model.gguf -ngl 999
一般的なパターン
バッチ処理
# ファイルから複数のプロンプトを処理
cat prompts.txt | ./llama-cli \
-m model.gguf \
--batch-size 512 \
-n 100
制約付き生成
# JSON 出力(文法付き)
./llama-cli \
-m model.gguf \
-p "Generate a person: " \
--grammar-file grammars/json.gbnf
# 有効な JSON のみを出力
コンテキストサイズ
# コンテキストを増加(デフォルト 512)
./llama-cli \
-m model.gguf \
-c 4096 # 4K コンテキストウィンドウ
# 非常に長いコンテキスト(モデルがサポートしている場合)
./llama-cli -m model.gguf -c 32768 # 32K コンテキスト
パフォーマンスベンチマーク
CPU パフォーマンス(Llama 2-7B Q4_K_M)
| CPU | スレッド数 | 速度 | コスト |
|---|---|---|---|
| Apple M3 Max | 16 | 50 トークン/秒 | $0(ローカル) |
| AMD Ryzen 9 7950X | 32 | 35 トークン/秒 | $0.50/時間 |
| Intel i9-13900K | 32 | 30 トークン/秒 | $0.40/時間 |
| AWS c7i.16xlarge | 64 | 40 トークン/秒 | $2.88/時間 |
GPU アクセラレーション(Llama 2-7B Q4_K_M)
| GPU | 速度 | CPU 比 | コスト |
|---|---|---|---|
| NVIDIA RTX 4090 | 120 トークン/秒 | 3-4× | $0(ローカル) |
| NVIDIA A10 | 80 トークン/秒 | 2-3× | $1.00/時間 |
| AMD MI250 | 70 トークン/秒 | 2× | $2.00/時間 |
| Apple M3 Max(Metal) | 50 トークン/秒 | ~同等 | $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
参考資料
量子化ガイド- GGUF フォーマット、変換、品質比較サーバーデプロイメント- API エンドポイント、Docker、監視最適化- パフォーマンスチューニング、CPU+GPU ハイブリッド
リソース
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。