Pi Agent: Multi-Platform Deployment & llama.cpp
最終更新:2026-08-31
--- title: "マルチプラットフォームデプロイとllama.cpp" description: "Pi Agentのマルチプラットフォームデプロイとllama.cppによるローカルモデル実行をマスターします。" order: 18 lang: ja
クラウドAPIは便利だが高コスト、ローカルモデルは無料だが設定が必要——このレッスンでは両方をカバーする。
1. マルチプラットフォームデプロイ概要
| プラットフォーム | 方法 | 最適な用途 |
|---|---|---|
| ローカル開発 | 直接実行 | 開発・デバッグ |
| Docker | コンテナ化 | CI/CD、チーム共有 |
| クラウドサーバー | systemd/supervisor | 本番環境 |
| サーバーレス | クラウド関数 | 低頻度呼び出し |
| ローカルモデル | llama.cpp/Ollama | プライバシー、オフライン |
2. ローカル開発デプロイ
(1) 仮想環境
BASH
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install pi-agent
(2) プロジェクト統合
PYTHON
from pi_agent import Agent
agent = Agent(name="app_agent", config_file=".pi-agent.yaml")
def process_request(user_input: str) -> str:
return agent.chat(user_input)
3. Dockerデプロイ
(1) Dockerfile
DOCKERFILE
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV PI_DEEPSEEK_API_KEY=""
ENV PI_DEFAULT_PROVIDER=deepseek
CMD ["python", "agent_service.py"]
(2) docker-compose.yaml
YAML
version: "3.8"
services:
pi-agent:
build: .
ports:
- "8000:8000"
environment:
- PI_DEEPSEEK_API_KEY=${PI_DEEPSEEK_API_KEY}
volumes:
- ./sessions:/app/sessions
restart: unless-stopped
4. クラウドサーバーデプロイ
INI
# /etc/systemd/system/pi-agent.service
[Unit]
Description=Pi Agent Service
After=network.target
[Service]
Type=simple
User=piagent
WorkingDirectory=/opt/pi-agent
Environment=PI_DEEPSEEK_API_KEY=sk-xxxxxxxx
ExecStart=/opt/pi-agent/.venv/bin/python agent_service.py
Restart=always
[Install]
WantedBy=multi-user.target
5. llama.cppローカルモデル
(1) インストール
BASH
# macOS
brew install llama.cpp
# Linux
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make
(2) モデルのダウンロード
BASH
# Hugging FaceからGGUF形式モデルをダウンロード
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q4_k_m.gguf
(3) Pi Agent設定
YAML
providers:
local:
type: llama_cpp
model_path: "./models/qwen2.5-7b-instruct-q4_k_m.gguf"
n_gpu_layers: -1
n_ctx: 4096
temperature: 0.7
default_provider: local
6. Ollama統合
(1) インストール
BASH
curl -fsSL https://ollama.com/install.sh | sh
(2) モデルの取得
BASH
ollama pull qwen2.5:7b
ollama pull llama3:8b
(3) Pi Agent設定
YAML
providers:
ollama:
type: ollama
base_url: "http://localhost:11434"
model: "qwen2.5:7b"
例:ローカルモデルの比較(難易度:⭐⭐)
PYTHON
from pi_agent import Agent
models = {
"qwen2.5-7b": Agent(provider="ollama", model="qwen2.5:7b"),
"llama3-8b": Agent(provider="ollama", model="llama3:8b"),
}
question = "Implement quicksort in Python"
for name, agent in models.items():
print(f"=== {name} ===")
result = agent.chat(question)
print(result[:200])
❓ よくある質問
Q ローカルモデルのハードウェア要件は?
A 7Bモデルは約8GB RAM/VRAM、13Bは約16GB、70Bは約40GB以上が必要です。Apple Mシリーズチップは好調です。
Q llama.cppとOllama、どちらがよい?
A Ollamaの方がシンプル(1コマンドで実行)。llama.cppはより柔軟(きめ細かいパラメータ調整)。初心者にはOllamaを推奨。
Q ローカルモデルとAPIモデルの品質差は?
A 7BローカルモデルはAPIモデルの約70〜80%の能力です。コード生成の差は小さく、創作的な文章では差が大きくなります。
📖 まとめ
- 5つのデプロイ方法:ローカル、Docker、クラウド、サーバーレス、ローカルモデル
- Dockerはチーム共有とCI/CDに最適
- llama.cppは各種GGUFモデルをGPUアクセラレーションでサポート
- Ollamaはよりシンプル;初心者に推奨
- プライバシー重視ならローカルモデル、品質重視ならAPIモデル
📝 練習問題
- 基礎(難易度:⭐): DockerでPi Agentをデプロイし、正常にチャットできることを確認してください。
- 中級(難易度:⭐⭐): Ollamaをインストールし、モデルを取得し、Pi Agentでローカル推論を設定してください。
- 上級(難易度:⭐⭐⭐): ハイブリッドデプロイを構築してください——簡単な質問はローカルモデル、複雑なものは自動的にAPIに切り替え。