1. はじめに
エージェントの推論には、難しいものと易しいものが混在します。意図分類・要約・PII 除去のような軽い処理までクラウドの大型モデルに流すと、トークン課金が積み上がります。そこで、軽い処理はローカルの小規模モデルへ、重い推論だけをクラウドへ振り分けるハイブリッド構成が有効です。本記事では Phi-4 と Foundry Local を使った具体的な組み方を示します。
2. Phi-4 と Foundry Local とは
Phi-4 は Microsoft が公開する小規模言語モデル(SLM)で、約 14B パラメータながら推論・数理タスクに強く、MIT ライセンスで提供されます。phi-4-mini など軽量版もあり、エッジ実行に向きます。
Foundry Local は、Microsoft のオンデバイス推論ランタイムです。ONNX Runtime を基盤に、GPU/NPU/CPU から最適な実行環境を自動選択し、OpenAI 互換 API でモデルを呼び出せます。SDK(foundry-local-sdk)と CLI(foundry)が提供され、初回利用時にカタログからモデルを取得してローカルにキャッシュします。単一ユーザー向けのため、本格的な多人数同時推論には別途サーバー基盤を使い分けます。
3. ハイブリッド構成の全体像
入力をまずルーターが評価し、タスクの種類に応じてローカルとクラウドへ振り分けます。両者とも OpenAI 互換 API なので、エージェント側はほぼ同じコードで扱えます。
4. どのタスクをローカルに寄せるか
| 判断軸 | ローカル(Phi-4) | クラウド(GPT-4o) |
|---|---|---|
| タスク | 分類・意図判定・要約・PII 除去 | 多段推論・ツール統括・高品質生成 |
| 文脈長 | 短〜中 | 長文脈が必要 |
| データ機密 | 端末内で完結させたい | クラウド処理が許容される |
| コスト | 固定費(従量課金なし) | トークン従量課金 |
迷ったら「失敗してもやり直しが効く軽い処理」をローカルへ、「品質が最終成果を左右する処理」をクラウドへ寄せるのが基本です。
5. OpenAI 互換 API で切り替える(Python 最小例)
Foundry Local は起動時にモデルをロードし、OpenAI SDK から接続できます。クラウド側は Azure OpenAI の v1 互換エンドポイントを使います。
import openai
from foundry_local import FoundryLocalManager
# ローカル: Foundry Local を起動しモデルをロード(初回はダウンロード)
alias = "phi-4-mini" # 実在エイリアスは `foundry model list` で確認
manager = FoundryLocalManager(alias)
local = openai.OpenAI(base_url=manager.endpoint, api_key=manager.api_key)
local_model = manager.get_model_info(alias).id
# クラウド: Azure OpenAI(実運用は Entra ID トークンを推奨)
cloud = openai.OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key="<key>",
)
def run(task: str, text: str):
if task in ("classify", "summarize", "redact"):
client, model = local, local_model
else:
client, model = cloud, "gpt-4o"
return client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
ルーターを差し替えるだけで、振り分け先を柔軟に調整できます。
6. コストの考え方:固定費 vs 従量課金
ローカル実行は、GPU/NPU を備えた端末の調達費と電力という固定費で、推論回数が増えても追加課金はありません。一方クラウドはトークン従量課金で、利用量に比例します。したがって「軽い処理を高頻度で大量に回す」ワークロードほど、ローカルへ寄せる効果が大きくなります。月間の処理件数を見積もり、固定費と従量課金が交わる損益分岐点を把握しておくと判断しやすくなります。
7. 運用上の注意
- 品質: 小規模モデルは複雑な推論で劣ります。ローカル出力には簡易な検証を入れ、低信頼ならクラウドへフォールバックします。
- モデル管理: モデルはバージョン管理し、端末ごとの差異を避けます。
- 可用性: ローカル端末の故障に備え、クラウド側へ切り替える経路を用意します。
8. まとめ
- Phi-4 × Foundry Local で軽い推論をローカル化し、重い推論だけ Azure OpenAI に流すとコストを抑えられます。
- 両者とも OpenAI 互換 API なので、ルーターの差し替えだけで振り分けられます。
- 固定費と従量課金の損益分岐点を見極め、フォールバック経路を必ず用意しましょう。
- 次のアクション: ローカル出力の安全性をモデレーションで担保していきます。
9. 参考リンク
- Foundry Local とは — Phi など SLM をオンデバイス実行するランタイムの概要
- Foundry Local をはじめる — モデルの取得・ロード・推論までのクイックスタート
- Foundry Local アーキテクチャ概要 — ONNX Runtime と実行プロバイダー自動選択の仕組み
- 推論 SDK と Foundry Local の連携 — OpenAI 互換 SDK でローカルモデルを呼び出す方法
この記事の執筆にあたり、AI の支援を受けています。






