TL;DR(手短に言うと)
ローカルAIは、手元のハードウェアで動作し、リクエストあたりの費用はかからず、データをプライベートに保ちます。APIベースのAIは、開始が速く、より高性能で、インフラなしでスケーラブルです。ほとんどのチームは両方を必要とします。このガイドでは、それぞれの方法が優れるケースを具体的な数値で解説します。
はじめに
iPhoneでネイティブに動作するGemma 4。APIキーなしで言語モデル全体を組み込むブラウザ拡張機能。これらは18ヶ月前には不可能でした。今日では、HackerNewsで話題になっています。
以前の決定は単純でした。フロンティアモデルはAPI専用であり、それ以外は弱すぎて問題になりませんでした。しかし、それは変わりました。Qwen2.5-72B、Gemma 4、DeepSeek-V3のようなローカルモデルが、実際のベンチマークで競合するようになりました。以前はOpenAIのAPIをデフォルトで使用していた開発者も、特にプライバシーに敏感なアプリケーションや、トークンあたりのコストが急速に累積する大量のタスクでは、再考しています。
この記事は、マーケティングを排除し、費用、レイテンシ、機能に関する具体的な数値を提供し、あなたのユースケースに合った適切な判断を下せるようにします。
💡 モデルがローカルであるかクラウドであるかにかかわらず、AI API連携をテストする場合、Apidogのテストシナリオは両方で機能します。ローカルのllama-serverエンドポイントやOpenAIの
/v1/chat/completionsを指し、同じアサーションを実行できます。詳細については後述します。基本的なテストアプローチについては、[internal: api-testing-tutorial]を参照してください。
「AIをローカルで実行する」が実際に意味すること
ローカルAIには、以下の3つの実装パターンがあります。
1. オンデバイス推論
- モデルがデバイス上で直接動作。例:ブラウザ上のGemma Gem、iPhoneのGemma 4、MacBookのOllamaモデル等。
- ダウンロード後はネット接続不要。
2. セルフホスト型サーバー
- 自前のハードウェアやクラウドVMでモデルをAPIとして提供。例:llama-server, Ollama, vLLM。
- モデルはエンドユーザーのデバイスではなく、管理下のサーバーで動作。
3. プライベートクラウド
- AWS Bedrock、Azureプライベートエンドポイント、GCP Vertex AIカスタムモデルなどに独自デプロイ。
- パブリックAPIより制御性高いが、完全セルフホストより導入・運用が容易。
本記事では、開発者が最も直面する「セルフホスト型」と「パブリックAPI」に焦点をあてます。
コスト比較
大量の処理ではローカルAIがコスト面で有利です。
パブリックAPIの料金(2026年4月時点)
| モデル | 入力 (100万トークン) | 出力 (100万トークン) |
|---|---|---|
| GPT-4o | $2.50 | $10.00 |
| Claude 3.5 Sonnet | $3.00 | $15.00 |
| Gemini 1.5 Pro | $1.25 | $5.00 |
| GPT-4o mini | $0.15 | $0.60 |
| Claude 3 Haiku | $0.25 | $1.25 |
セルフホスト型のコスト例
- Lambda LabsのA100 80GB: $1.99/時(オンデマンド)
- INT4量子化Qwen2.5-72B: 1台のA100で約200トークン/秒
- 1時間で約720Kトークン、1Kトークンあたり約$0.0028
損益分岐点:
1日に7万出力トークン以上を処理するならセルフホスト型の方が安価。
それ未満はAPI利用の方が効率的。
レイテンシ比較
-
最初のトークンまでの時間(TTFT)
- 専用A100+72Bモデル: 800ms~1.5秒
- OpenAI API: 300~800ms
- オンデバイス(iPhone等): 200~400ms(ネットワーク遅延ゼロ)
-
スループット
- 72Bモデル×A100: 単一ユーザーには十分。多数同時・バッチ処理ではvLLM等が有効。
- パブリックAPI: 並列性を自動処理。
-
ストリーミング
- 両者対応。オンデバイスはネットワークジッターなし。
まとめ:
- 最低レイテンシはオンデバイス
- セルフホストは大量処理/バッチで有利
- パブリックAPIはバースト対応と導入の容易さで優位
機能比較
- 推論・複雑タスク: GPT-4o/Claude 3.5 Sonnetが依然優位。Qwen2.5-72B/DeepSeek-V3で差は縮小中。
- コード生成: DeepSeek-Coder-V2やQwen2.5-Coder-32BはGPT-4oに匹敵。用途に応じて専用モデルを使い分け。
- コンテキスト長: フロンティアAPIモデルは128K~1M。セルフホストは32K~128Kが現実的。
- マルチモーダル: GPT-4o、Gemini 1.5 Proが先行。LLaVA、Qwen-VLなどのオープンモデルも進化中。
- 関数呼び出し/ツール利用: OpenAI/Anthropicが最も安定。オープンモデルは複雑チェーンで安定性低。
プライバシーとデータ管理
-
パブリックAPI
- プロンプトが外部送信される
- データ保持ポリシー(例: OpenAIは標準で30日保持)
- コンプライアンス観点で制約
-
セルフホスト型
- データは自社インフラ内のみ
- サードパーティ保持なし
- GDPR/HIPAA対応が容易
個人健康データや法的文書、自社コードなどを扱う場合はセルフホスト型が必須。
モデルがどこで実行されるかにかかわらず、AI連携をテストする方法
OpenAI API (https://api.openai.com/v1/chat/completions) も、Ollama (http://localhost:11434/api/chat)、llama-server (http://localhost:8080/v1/chat/completions) もOpenAI互換APIを提供しています。
Apidogのテストシナリオは、すべてのHTTPエンドポイントで同様に機能します。
例:1つのシナリオでローカル/クラウド双方をテスト
{
"scenario": "Chat completion smoke test",
"environments": {
"local": {"base_url": "http://localhost:11434"},
"production": {"base_url": "https://api.openai.com"}
},
"steps": [
{
"name": "Basic completion",
"method": "POST",
"url": "{{base_url}}/v1/chat/completions",
"body": {
"model": "{{model_name}}",
"messages": [{"role": "user", "content": "Say 'test passed' and nothing else"}],
"max_tokens": 20
},
"assertions": [
{"field": "status", "operator": "equals", "value": 200},
{"field": "response.choices[0].message.content", "operator": "contains", "value": "test passed"},
{"field": "response.usage.total_tokens", "operator": "less_than", "value": 50}
]
}
]
}
- 開発中はローカルのOllamaに対して、CIではOpenAI APIに対して実行可能
- モデル名や関数呼び出し応答構造、ストリーミング形式の違いに注意
ApidogのSmart Mock機能を使えば、GPUなしでもOpenAI互換の応答を返すモックテストが可能です。
モデルごとの細かな応答構造の違いについては[internal: how-to-build-tiny-llm-from-scratch]参照。
10分でローカルモデルサーバーをセットアップする方法
セルフホストをすぐ試したい場合はOllamaが最速。
# Ollamaをインストール
curl -fsSL https://ollama.com/install.sh | sh
# モデルをプル(Gemma 4 12Bは10GB VRAMでOK)
ollama pull gemma4:12b
# サーバー起動(OpenAI互換API/ポート11434)
ollama serve
# テストリクエスト
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gemma4:12b",
"messages": [{"role": "user", "content": "Hello"}]
}'
より高い同時リクエストや本番用途には、vLLMを使用:
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-72B-Instruct-AWQ \
--quantization awq \
--max-model-len 32768
これでポート8000でOpenAI互換APIが起動します。Apidogでhttp://your-server:8000を指定しテスト可能です。
どちらのアプローチを選択すべきか
| シナリオ | ローカル | API |
|---|---|---|
| 大量バッチ処理(10万トークン/日~) | 安価 | 高価 |
| プライバシーに敏感なデータ | 必須 | リスクあり |
| オンデバイス最低レイテンシ | 最適 | 不可能 |
| フロンティアモデルの機能 | 不十分 | 必須 |
| バースト的なトラフィック | スケール難 | 自動処理 |
| GPUが利用できない | 困難 | 容易 |
| 開発/テスト環境 | 優秀 (Ollama) | コスト高 |
| マルチモーダルタスク | 限定的 | 完全対応 |
| 規制業界コンプライアンス | 容易 | DPA必要 |
実践的な選択肢:
- 本番は高性能API(GPT-4o, Claude等)
- 開発・テストはローカル(Ollama等)
- コスト/品質/運用性のバランスを両立
オープンソースコーディングアシスタントとローカルAIの活用例は、[internal: open-source-coding-assistants-2026]を参照。
結論
ローカルAIとAPIは二者択一ではありません。
- ボリュームやプライバシー要件、レイテンシや機能水準に応じてハイブリッド構成が最適解です。
- まずはAPIで始め、月額200~300ドル規模になればセルフホストへ移行を検討しましょう。
- 開発・テスト環境はOllama等ローカルを利用し、OpenAI互換APIを使うことでプラグインしやすい設計を。
Apidogを活用し、ローカル/クラウド両環境で常にテストを回し、挙動の違いによる本番バグを事前に潰しましょう。
よくある質問
Q: 有用なローカルモデルを動かす最小GPUは?
A: RTX 3060(12GB VRAM)はQwen2.5-7BやGemma 4 4Bをフル品質で処理。RTX 4090(24GB)はINT4で14B-20B、INT2で34Bモデル。72Bモデルは2x 24GB GPUまたはA100/H100が必要。
Q: Apple SiliconでローカルAIは動く?
A: はい。OllamaはApple Siliconをネイティブサポートし、ニューラルエンジンを活用。M3 Pro(18GBメモリ)は14Bモデル、M4 Max(128GB)は70Bモデルも可。
Q: ローカルモデルの出力品質は本番で十分?
A: コード生成・要約・データ抽出は32B+で十分。ただし複雑な推論や知識系はAPIモデルが優位。
Q: ローカルモデルで関数呼び出しは使える?
A: 可能だが一貫性に乏しい。Llama 3.1、Qwen2.5、Mistralなどは対応。複雑なツールチェーンはAPI型に軍配。Apidogで事前に徹底テストを推奨。[internal: claude-code]参照。
Q: AWSで70Bモデルをセルフホストするコストは?
A: p4d.24xlarge(8x A100 40GB)は$32.77/時でINT8 70Bを高速動作。g5.2xlarge(1x A10G 24GB)は$1.21/時で14B INT4。リザーブドで30~40%削減可能。
Q: Ollamaとllama.cppの違いは?
A: llama.cppは推論エンジン本体。OllamaはREST API、モデル管理、CLIを追加したラッパー。開発にはOllamaが推奨。高度な制御や量子化はllama.cpp(llama-server)を直接利用。
Q: コードを変更せずローカル⇔APIを切り替え可能?
A: 可能。OpenAI互換クライアント利用時、base_urlとapi_keyを切り替えればコード修正不要。Python例:
openai.OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')
# クラウド利用時
openai.OpenAI(base_url='https://api.openai.com/v1', api_key='sk-...')
環境変数で管理推奨。
ApidogでAPIテストを始める:https://apidog.com/?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation
Top comments (0)