TL;DR(手短に言うと)
ローカルAIは、手元のハードウェアで動作し、リクエストあたりの費用はかからず、データをプライベートに保ちます。APIベースのAIは、開始が速く、より高性能で、インフラなしでスケーラブルです。ほとんどのチームは両方を必要とします。このガイドでは、それぞれの方法が優れるケースを具体的な数値で解説します。
はじめに
iPhoneでネイティブに動作するGemma 4。APIキーなしで言語モデル全体を組み込むブラウザ拡張機能。これらは18ヶ月前には不可能でした。今日では、HackerNewsで話題になっています。
以前の決定は単純でした。フロンティアモデルはAPI専用であり、それ以外は弱すぎて問題になりませんでした。しかし、それは変わりました。Qwen2.5-72B、Gemma 4、DeepSeek-V3のようなローカルモデルが、実際のベンチマークで競合するようになりました。以前はOpenAIのAPIをデフォルトで使用していた開発者も、特にプライバシーに敏感なアプリケーションや、トークンあたりのコストが急速に累積する大量のタスクでは、再考しています。
この記事は、マーケティングを排除し、費用、レイテンシ、機能に関する具体的な数値を提供し、あなたのユースケースに合った適切な判断を下せるようにします。
/v1/chat/completionsを指し、同じアサーションを実行できます。詳細については後述します。基本的なテストアプローチについては、[internal: api-testing-tutorial]を参照してください。「AIをローカルで実行する」が実際に意味すること
ローカルAIは一つのものではありません。3つの異なるセットアップがあります。
オンデバイス推論: モデルがサーバーなしでデバイス上で完全に実行されます。ブラウザタブのGemma Gem、iPhoneのニューラルエンジン上のGemma 4、またはMacBook上のOllamaモデルなどです。ダウンロード後はインターネット接続は不要です。
セルフホスト型サーバー: 自身のハードウェア(ワークステーション、制御下のクラウドVM、オンプレミスサーバー)でモデルを実行し、APIを公開します。モデルはエンドユーザーのデバイスでは実行されませんが、OpenAIにあるわけでもありません。llama-server、Ollama、vLLMなどのツールがこれを処理します。
プライベートクラウド: 自身のクラウドインフラ(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 |
セルフホスト型コストの見積もり(単一のA100 80GBでQwen2.5-72Bを使用):
Lambda LabsのA100 80GBは、オンデマンドで約1.99ドル/時間かかります。INT4量子化されたQwen2.5-72Bは、1つのA100に収まり、おおよそ200トークン/秒を提供します。
100%の稼働率で200トークン/秒の場合、720Kトークン/時間、または総計(入力+出力)で1Kトークンあたり約0.0028ドルとなります。比較として、GPT-4oは出力のみで1Kトークンあたり0.01ドルを請求します。
損益分岐点: 毎日約7万出力トークン以上を継続的に処理する場合、セルフホスト型はコスト面でGPT-4oを上回ります。それ以下の場合、アイドルGPU時間に費用がかからないため、APIが有利です。
レイテンシ比較
ここからがより微妙な点です。
最初のトークンまでの時間 (TTFT): 専用のA100では、1Kトークンのプロンプトと72Bモデルの場合、TTFTは約800ms〜1.5秒です。OpenAIのAPIは通常、通常の負荷の下で同様の入力に対し、300〜800msで最初のトークンを返します。
オンデバイス推論(iPhoneのニューラルエンジン、Apple Silicon)の場合、Gemma 4のTTFTは200〜400msです。これはネットワークオーバーヘッドがゼロであるためであり、オンデバイスが明らかに優位に立つ点です。
スループット: 72BモデルをINT4で実行する単一のA100は、1人のユーザーには十分ですが、バッチ処理なしでは同時負荷の下で性能が低下します。パブリックAPIは、並行処理を透過的に処理します。
ストリーミング: 両方のアプローチがストリーミングをサポートしています。オンデバイスモデルの場合、生成全体がローカルで行われるため、ネットワークのジッターはありません。APIモデルの場合、ネットワークの状態に左右されます。
要約: オンデバイスは最低のレイテンシ(ネットワークなし)で優位に立ちます。セルフホスト型はスケールでのスループット(vLLMによる適切なバッチ処理)で優位に立ちます。パブリックAPIは、バースト容量とシンプルさで優位に立ちます。
機能比較
ほとんどの要求の厳しいタスクでは、パブリックAPIが依然として優位性を持っています。
推論と複雑なタスク: GPT-4oとClaude 3.5 Sonnetは、MMLU、HumanEval、および複雑な多段階推論において、オープンウェイトモデルよりも優位に立っています。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が最も信頼性の高いツール利用サポートを提供しています。ツール利用が可能なオープンウェイトモデルも機能しますが、複雑なツールチェーンでは一貫性が低いです。これがエージェントアーキテクチャにどのように影響するかについては、[internal: how-ai-agent-memory-works]を参照してください。
プライバシーとデータ管理
ここでは、ローカルが圧倒的に優位に立ちます。
パブリックAPIの場合: - プロンプトがネットワーク外に送信される - プロバイダーのデータ保持ポリシーが適用される(OpenAIはAPI経由でオプトアウトしない限り、デフォルトで入力データを30日間保持する) - 機密性の高いコンテンツに関してプロバイダーのサービス利用規約に従う必要がある - 規制の厳しい業界(医療、金融、法律)では、コンプライアンス上の障害となる可能性がある
セルフホスト型モデルの場合: - プロンプトは自身のインフラストラクチャ内に留まる - 第三者によるデータ保持がない - モデルが処理できる内容とできない内容を完全に制御できる - GDPR/HIPAA準拠を維持しやすい
個人の健康データ、法的文書、または独自のコードを扱うアプリケーションの場合、セルフホスト型はしばしば必須となります。
モデルがどこで実行されるかにかかわらず、AI連携をテストする方法
`https://api.openai.com/v1/chat/completions` を叩く場合でも、`http://localhost:11434/api/chat` (Ollama) を叩く場合でも、`http://localhost:8080/v1/chat/completions` (llama-server) を叩く場合でも、APIインターフェースはOpenAI互換です。これは、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に対して実行します。コードがローカルモデルで動作する場合、APIでも動作するはずです。動作しない場合、違いは通常次の点にあります。 - モデル名の形式(Ollamaは `qwen2.5:72b`、OpenAIは `gpt-4o` を使用) - 関数呼び出しの応答構造(プロバイダー間で微妙な違いがある) - ストリーミングイベントの形式(`data` vs `delta` vs 完全な応答オブジェクト)
ApidogのSmart Mockは、CIで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に収まる)
ollama pull gemma4:12b
# サーバーを起動する(ポート11434でOpenAI互換API)
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 |
|---|---|---|
| 大量バッチ処理(1日あたり10万トークン以上) | 安価 | 高価 |
| プライバシーに敏感なデータ(医療、法律、金融) | 必須 | リスクあり |
| オンデバイスでの最低レイテンシ | 最適 | 不可能 |
| フロンティアモデルの機能が必要 | 不十分 | 必須 |
| トラフィックが変動するバーストワークロード | スケールが複雑 | 自動的に処理 |
| GPUが利用できない | 困難 | 容易 |
| 開発/テスト環境 | 優れている (Ollama) | 費用がかかる |
| マルチモーダルタスク | 限定的 | 完全サポート |
| 規制業界のコンプライアンス | 容易 | DPAが必要 |
ほとんどのチームにとっての正直な答え: 本番環境ではパブリックAPI(高品質タスクにはClaudeまたはGPT-4o、大量かつ安価なタスクにはHaikuまたは4o-mini)を使用し、開発およびテストにはOllamaをローカルで利用することです。これにより、本番環境でのフロンティア品質、開発環境でのコストゼロ、そして一貫したOpenAI互換APIインターフェースという両方の利点が得られます。
オープンソースのコーディングアシスタントがローカルAIの状況にどのように適合するかについては、[internal: open-source-coding-assistants-2026]を参照してください。
結論
ローカルAIとAPIの決定は二者択一ではありません。正しい答えは、ボリューム、プライバシー要件、レイテンシのニーズ、そして必要な機能レベルによって異なります。
AIを活用したアプリケーションを構築するほとんどの開発者にとって、まずはパブリックAPIから始め、月額料金が200〜300ドルを超えるようになったらセルフホスト型に移行し、初日からローカル環境でOllamaを使用することをお勧めします。OpenAI互換のAPIインターフェースをどこでも使用することで、コードをプロバイダーに依存しない状態に保ちましょう。
Apidogを使用して両方の環境を常にテストし、ローカルモデルとクラウドモデルの動作における微妙な違いが本番環境のバグになる前に捕捉しましょう。
よくある質問
有用なローカルモデルを実行するための最小GPUは何ですか?RTX 3060(12GB VRAM)はQwen2.5-7BまたはGemma 4 4Bをフル品質で実行します。RTX 4090(24GB VRAM)は、INT4量子化でほとんどの14B-20Bモデル、INT2で34Bモデルを処理します。72Bモデルには、2x 24GB GPUまたは単一のA100/H100が必要です。
Apple SiliconでローカルAIを実行できますか?はい。OllamaはネイティブのApple Siliconサポートがあり、アクセラレーションにニューラルエンジンを使用します。M3 Pro(18GBユニファイドメモリ)はQwen2.5-14Bを快適に実行します。M4 Max(128GB)は70Bモデルを処理できます。
ローカルモデルの出力品質は本番環境で十分ですか?タスクによります。コード生成、要約、構造化データ抽出については、32B+モデルであれば十分です。複雑な推論、微妙なニュアンスの文章作成、深い世界知識が必要なタスクについては、フロンティアAPIモデルが依然として明確に優位です。
ローカルモデルは関数呼び出しをサポートしていますか?はい、しかし一貫性はありません。Llama 3.1、Qwen2.5、Mistralはすべてツール利用をサポートしています。複雑なツールチェーンでは、GPT-4oやClaude 3.5 Sonnetよりも信頼性が低いです。本番環境でローカルモデルのツール利用に頼る前に、Apidogテストシナリオで徹底的にテストしてください。フロンティアモデルがコーディングのコンテキストでツール利用をどのように処理するかについては、[internal: claude-code]を参照してください。
AWSで70Bモデルをセルフホストするのにどれくらい費用がかかりますか?p4d.24xlarge(8x A100 40GB)はオンデマンドで32.77ドル/時間かかります。高スループットで70B INT8モデルを実行します。g5.2xlarge(1x A10G 24GB)は1.21ドル/時間で、より軽量なワークロード向けに14B INT4モデルを実行します。リザーブドインスタンスはこれらを30〜40%削減します。
Ollamaとllama.cppの違いは何ですか?llama.cppは基盤となる推論エンジンです。Ollamaはllama.cppをREST API、モデル管理(プル、リスト、削除)、シンプルなCLIでラップしています。開発にはOllamaを使用してください。量子化形式やハードウェア構成をより詳細に制御したい場合は、llama.cppを直接(llama-server経由で)使用してください。
コードを変更せずにローカルモデルとAPIモデルを切り替えることはできますか?はい、OpenAI互換のクライアントを使用する場合です。Pythonでは、`openai.OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')` でOllamaに接続します。`base_url` を `https://api.openai.com/v1` に変更し、`api_key` を更新することでクラウドに切り替えることができます。これらを環境変数で設定すれば、コードは一切変更されません。
