このドキュメントでは、オンプレミスまたはサードパーティや などのプロバイダによってホストされている 複数の AI モデルの統合フロントエンドを作成するためのリファレンス アーキテクチャについて説明します。 Google Cloudすべての推論サーバーが Google Kubernetes Engine(GKE)でホストされている場合は、GKE での AI 推論 モデル提供の ネットワーキングをご覧ください。
このアーキテクチャは、デベロッパーがモデルごとに個別の IP アドレスを指定しなくてもモデルを選択できるように設計されています。代わりに、デベロッパーは OpenAI API リクエストをフロントエンド エンドポイントに送信します。アーキテクチャ内のシステムは、指定されたモデルをホストするバックエンドにリクエストをルーティングします。このアーキテクチャのフロントエンド ロードバランサは、次のような集中管理機能を提供します。
- モデルのホスト方法に関係なく、すべてのモデル呼び出しに対して単一のフロントエンド エンドポイントを使用できます。
- API 管理機能。
- AI ガードレールのチェックポイント。
- Service Extensions の挿入 ポイント(将来の拡張性を考慮)。
このドキュメントは、新規または既存の生成 AI モデルを単一の推論エンドポイントの背後に配置したいネットワーク管理者と生成 AI アプリケーションの管理者を対象としています。このドキュメントでは、アプリケーションの設計方法や個々の生成 AI モデルのデプロイ方法については説明しません。モデルのデプロイ方法については、企業で生成 AI モデルと機械学習モデルを構築してデプロイするをご覧ください。このアーキテクチャは、分散型アプリケーション用のクロスクラウド ネットワークなどのアプリケーション ネットワーキング アーキテクチャや、その他の設計と連携します。
アーキテクチャ
次の図は、コンシューマー ネットワーク内のエンドポイントがリージョン内部アプリケーション ロードバランサのフロントエンドを指すアーキテクチャを示しています。このロードバランサは、指定されたモデルの名前を使用して、オンプレミスまたは任意のプロバイダによってホストされているモデル レプリカセットにリクエストをルーティングします。フロントエンド ロードバランサは、ホストされているすべてのモデルに対して統合サービスを提供します。
この図のアーキテクチャには、次のコンポーネントが含まれています。
- Private Service Connect 推論エンドポイント: ホストされているすべてのモデルの統合エンドポイント 。エンドユーザーは、エンドポイント IP アドレスに推論リクエストを送信します。この図は、単一のコンシューマー Virtual Private Cloud(VPC)ネットワーク内の Private Service Connect エンドポイントを示しています。エンドポイントは、複数の VPC ネットワークまたは共有サービス VPC ネットワークでホストできます。
- リージョン内部アプリケーション ロードバランサ: このアーキテクチャでは、フロントエンド ロード バランサはリージョン内部アプリケーション ロードバランサです。フロントエンド ロードバランサは、リクエストで指定されたモデル名に基づいてトラフィックをレプリカプールにルーティングします。このアーキテクチャでは、顧客アプリケーションがロードバランサに対して OpenAI API呼び出しを行います。バックエンド推論サーバーが OpenAI API と互換性がある場合、処理は透過的に行われます。推論サーバーが OpenAI API と互換性がない場合は、Service Extensions を使用して API トランスレータを実装する必要があります。このリファレンス アーキテクチャには、API トランスレータの実装は含まれていません。
- Service Extensions コールアウト: コールアウトを使用して、アプリケーション ロードバランサに追加の処理を追加できます。この設計のアーキテクチャでは、次のコールアウトを使用します。
- 本文ベースの
ルーター:
本文ベースのルーターは Cloud Run にデプロイされます。OpenAI API リクエストの本文からモデル名を読み取り、ヘッダーの
X-Gateway-Model-Nameフィールドに書き込みます。ロードバランサの URL マップは、このフィールドを使用して、リクエストを適切なバックエンド サービスに転送します。このリファレンス アーキテクチャに付属の Terraform デプロイには、本文ベースのルーター構成が含まれています。 - Apigee: API 認証、セキュリティ、レート制限、 割り当てトラッキングなどの API 管理サービスを提供する API マネージャー。このアーキテクチャでは Apigee を使用しますが、他のオプションもサポートしています。ロードバランサから Apigee を呼び出すために、このアーキテクチャと Terraform デプロイでは、Service Extensions トラフィック 拡張機能を使用して the Apigee Extension Processorを呼び出します。
- Model Armor: 推論プロンプトが推論サーバーに到達する前に安全性チェックを行う AI ガードレール システム。その後、送信レスポンスに対して安全性チェックを行います。 このアーキテクチャでは、AI ガードレールに Model Armor を使用しますが、 NVIDIA NeMo Guardrailsなどの他のオプションも サポートしています。 このリファレンス アーキテクチャに付属の Terraform デプロイには、基本的な Model Armor 構成が含まれています。
- 本文ベースの
ルーター:
本文ベースのルーターは Cloud Run にデプロイされます。OpenAI API リクエストの本文からモデル名を読み取り、ヘッダーの
- バックエンド サービス: ロードバランサは、リクエスト内のモデル名に基づいてリクエストをバックエンド サービス にルーティングします。バックエンド サービスには、 ネットワーク エンドポイント グループ(NEG)が含まれています。
- モデル レプリカセット: モデル レプリカは、1 つ以上の GPU または TPU にデプロイされる推論サーバーの コピーです。モデル レプリカは、単一ノードまたはマルチノードにできます。レプリカセット は、ロードバランサによってフロントエンド処理されるモデル レプリカの均一なグループです。このアーキテクチャでは、モデル レプリカは、GKE Inference Gateway の背後にある Google Kubernetes Engine(GKE)クラスタ、Gemini Enterprise Agent Platform、Cloud Run、オンプレミスまたは他のクラウドのデータセンター、インターネット上のエンドポイントの背後に含まれています。
モデル レプリカセットの構成
このアーキテクチャでは、フロントエンド ロードバランサはモデル名に基づいて特定のバックエンド サービスにトラフィックを転送します。指定されたモデルの推論サーバーは、次の表に示す構成のいずれかでホストできます。
| レプリカセットのタイプ | 説明 | レプリカのロード バランシング |
|---|---|---|
| Agent Platform | モデル レプリカは Agent Platform で実行されます。Agent Platform エンドポイントを Private Service Connect ネットワーク エンドポイント グループ(NEG)として公開します。フロントエンド ロードバランサは、Private Service Connect NEG を個別のモデルのバックエンドとして使用します。各モデルはバックエンド サービスとして構造化されます。 | Agent Platform は内部的にスケーリングとロード バランシングを行います。 Agent Platform は、指標ベースの加重ロード バランシングと接頭辞キャッシュ ベースのルーティングを実行し、リソース使用率を最適化して推論を高速化します。詳細については、 エンドポイントにモデルをデプロイするをご覧ください。 |
| GKE | 推論サーバーは、GKE レプリカセット VPC ネットワーク内の GKE クラスタで Pod として実行されます。GKE 内の複数のモデル レプリカは、Inference Gateway の背後にある単一のバックエンドを形成します。Inference Gateway は、フロントエンド ロードバランサが Private Service Connect NEG を使用してアクセスする Private Service Connect エンドポイントを公開します。 | Inference Gateway は、 GKE クラスタ内の推論バックエンドに対してモデル対応のロード バランシングを提供します。Inference Gateway は、該当する場合は接頭辞一致を使用します。接頭辞が一致しない場合、Inference Gateway は GPU または TPU の指標に基づいてリクエストを分散します。この構成は、水平 Pod 自動スケーリングをサポートしています。 |
| Cloud Run | 推論サーバーは Cloud Run で実行されます。 Cloud Run は、フロントエンド ロード バランサが サーバーレス NEG を使用してアクセスするエンドポイントを公開します。 | Cloud Run トラフィックに基づいてレプリカ数を自動的にスケーリングします 。単一ノード レプリカのみに制限されます。 |
| 混合型 | 推論サーバーはオンプレミスまたは別のクラウドで実行されます。ルーティング VPC ネットワークに リージョン内部プロキシ ネットワーク ロードバランサ を構成します。このロードバランサは、フロントエンド ロードバランサが Private Service Connect NEG を使用してアクセスする Private Service Connect エンドポイントを公開します。ルーティング VPC ネットワーク内の内部ロードバランサには、オンプレミスの推論サーバーの前面にあるオンプレミスまたは他のクラウドのロードバランサの IP アドレスを指すハイブリッド NEG バックエンドがあります。 | 外部ロードバランサのロード バランシング メカニズムは、外部施設の管理者によって構成されます。 |
| インターネット | パブリック インターネット IP アドレスからアクセスできる推論サーバー。 フロントエンド ロードバランサには、インターネットでホストされているモデルの IP アドレスを指す インターネット NEG バックエンドがあります。 | マネージド サービス提供者がスケーリングを処理します。 |
リクエスト フロー
システムは、推論リクエストを次のようにルーティングします。
- エンドユーザーが OpenAI API リクエストを Private Service Connect エンドポイントに送信します。このリクエストには次のものが含まれます。
- プロンプト。
- モデル名。ホストされている推論サーバーのいずれかのモデル名と一致する必要があります。
- Private Service Connect エンドポイントは、リクエストをフロントエンド内部アプリケーション ロードバランサに転送します。
- ロードバランサは、リクエストを Service Extensions に転送します。
- Service Extensions 本文ベースのルーティング
コード
は、リクエスト本文からモデル名を読み取り、
X-Gateway-Model-Nameヘッダーに書き込みます。 - ロードバランサは、Service Extensions トラフィック拡張機能のコールアウトを使用して、必要な API 管理サービスについて API 管理システムにリクエストを送信します。
- ロードバランサは、Service Extensions トラフィック拡張機能のコールアウトを使用して、スクリーニングのためにプロンプトを Model Armor に送信します。
- プロンプトに編集できない機密情報が含まれている場合、プロンプトはブロックされ、Model Armor はポリシー違反が検出されたことを示すレスポンスを返します。
- プロンプトに編集可能な機密情報が含まれている場合、またはプロンプトに問題がない場合、Model Armor は機密情報を編集してプロンプトを転送します。
- リクエストが Model Armor で許可されている場合、ロードバランサは URL マップを参照し、モデル名カスタム ヘッダーに基づいてリクエストをバックエンド サービスに転送します。必要に応じて、URL マップはリクエストの URL とパスを書き換えて、バックエンドの要件に合わせます。
- バックエンド サービスは、リクエストを関連付けられたレプリカセット ロードバランサに転送します。
- 特定の推論サービスのロードバランサは、リクエストをレプリカの 1 つに割り当てます。
- レプリカはリクエストを処理し、レスポンスを返します。
- フロントエンドのリージョン内部アプリケーション ロードバランサは、スクリーニングのためにレスポンスを Model Armor に送信します。
- アプリケーション ロードバランサは、レスポンスを Private Service Connect エンドポイントに返送し、エンドユーザーに転送します。
次の図は、デプロイ例のルーティング ビューを示しています。
この例では、プロンプトはユーザーが選択したモデルに応じて処理されます。
- Gemma: すべてのプロンプトは、 Gemma モデルをホストするレプリカセットにルーティングされます。
- Llama: システムは、Llama モデルをホストする 2 つのレプリカ セット間でこれらのプロンプトを均等にロード バランシングします。これらの 2 つのレプリカセットは、同じ方法でホストする必要はありません。たとえば、一方のレプリカセットは Agent Platform でホストされ、もう一方のレプリカセットは GKE でホストされる可能性があります。
- LoRA-1-gemma または LoRA-2-gemma: システムは、両方のモデルを処理できる 同じレプリカセットにすべてのプロンプトを送信します。
使用するプロダクト
このドキュメントのリファレンス アーキテクチャでは、次の Google Cloud プロダクトを使用します。
- Cloud Load Balancing: 高パフォーマンスでスケーラブルなグローバル ロードバランサと リージョン ロードバランサのポートフォリオ。
- Virtual Private Cloud(VPC): Google Cloud ワークロードにグローバルでスケーラブルなネットワーキング機能を提供する仮想システム。VPC には、VPC ネットワーク ピアリング、Private Service Connect、プライベート サービス アクセス、共有 VPC が含まれます。
- Private Service Connect: コンシューマーが VPC ネットワーク内から マネージド サービスにプライベート接続でアクセスできるようにする機能。
- Cloud Run: Google のスケーラブルなインフラストラクチャ上で コンテナを直接実行できるマネージド コンピューティング プラットフォーム。
- Apigee: API へのアクセス方法と使用方法を詳細に制御できる API 管理ツール。セキュリティ、レート制限、割り当ての適用、分析を提供します。
- Model Armor: プロンプト インジェクション、センシティブ データ漏洩、有害なコンテンツから生成 AI リソースとエージェント型 AI リソースを保護するサービス。
代替案を設計する
このセクションでは、このアーキテクチャの基本前提の一部に代わる方法について説明します。
AI ガードレール
AI ガードレールには Model Armor を使用することをおすすめします。管理を一元化するには、このアーキテクチャのように、ロードバランサから直接呼び出すことをおすすめします。Model Armor は、次の代替方法で実装することもできます。
- API 管理ポリシーを使用して Model Armor を呼び出す。
- レプリカにのみ Model Armor をデプロイする。
モデル エンドポイント以外に AI ガードレールを実装する場合は、必要に応じてフロントエンド ロードバランサで Model Armor を無効にできます。Model Armor を使用しない場合は、 トラフィック拡張機能を使用して、 NVIDIA NeMo Guardrailsなどの他のガードレール オファリングを デプロイできます。
API 管理
このドキュメントのアーキテクチャでは、API 管理に Apigee を使用します。これは、ロードバランサの Service Extensions を使用してデプロイされます。Apigee がニーズを満たさない場合は、Service Extensions を使用して別の API 管理サービスをデプロイできます。
Service Extensions を使用して API 管理をデプロイしてもニーズを満たせない場合は、クライアント向けネットワークと API 向けネットワークをデプロイする必要があるかもしれません。このシナリオでは、API 管理サービスは 2 つのネットワーク間のブリッジとして機能します。Apigee にこれをデプロイする方法については、Apigee ネットワーキング オプションをご覧ください。
他のネットワークに接続する
このドキュメントのアーキテクチャでは、単一のコンシューマー VPC ネットワークを使用します。ただし、 Cross-Cloud Network デプロイでサービス アクセス VPC ネットワークを使用すると、Private Service Connect エンドポイントを他の多くの ネットワークと共有できます。
設計上の考慮事項
ワークロードのアーキテクチャを構築する際は、ベスト プラクティスと 推奨事項を Google Cloud Well-Architected Frameworkで検討してください。
セキュリティ、プライバシー、コンプライアンス
- 分散型サービス拒否攻撃(DDoS)からの保護、ウェブ アプリケーション ファイアウォール(WAF)機能、IP アドレス検査をデプロイに追加するには、 Cloud Armorをフロントエンドの リージョン内部アプリケーション ロードバランサに追加します。
- すべてのバックエンドに共通の認証レイヤを追加するには、 Identity-Aware Proxy(IAP)を実装して ID を確認し、認可ポリシーを適用します。
- ウェブ アプリケーションから Agent Platform
モデルにトラフィックをルーティングする場合は、認証用の
ID モデルを選択する必要があります:
- サービス アカウント ID(一般的なウェブアプリにおすすめ): アプリケーションは IAP を介してエンドユーザーを認証しますが、サービス ワークロード ID(Cloud Run、GKE、または サードパーティ ID の使用など)を使用して Agent Platform を呼び出します。この実装では、Identity and Access Management(IAM)がエンドユーザーから抽象化されますが、どのユーザーがどのプロンプトを生成したかを追跡するには、アプリケーション レベルのロギングが必要です。
- エンドユーザー ID のパススルー(厳格な監査可能性におすすめ): アプリケーションはエンドユーザーの Google OAuth アクセス トークンを取得し、
Authorization: Bearerヘッダーで Agent Platform に直接渡します。 この実装では、ユーザー アクションの Cloud Audit Logs ロギングが組み込まれていますが、すべての エンドユーザーに IAM 権限(roles/aiplatform.userなど)がプロビジョニングされている必要があります。 with Google Cloud
信頼性
リージョンの障害を防ぐため、マルチリージョン デプロイ アーキタイプを使用して、デプロイを別のリージョンにレプリケートします。Google Cloud
運用効率
- トラフィック フローをモニタリングして問題を迅速に特定して修正するには、リージョン内部アプリケーション ロードバランサの Cloud Logging ログを使用します。
- 組織がサポートするモデルを簡単に検出できるようにするには、クエリを実行して使用可能なモデルを返すリストを実装します。たとえば、 list models API 呼び出しに応答するサーバーにリストを作成できます。
パフォーマンスの最適化
- Cloud Run: インスタンスの起動を高速化するには、 コンテナ イメージにモデルの重みを保存します。
- GKE: GKE での推論のベスト プラクティスの 概要の推奨事項に従ってください。
デプロイ
このアーキテクチャのサンプル実装をデプロイするには、GitHub で入手できる Networking for AI Inference Model Serving のコードサンプルを使用します。
AI モデルのデプロイ方法については、次のリソースをご覧ください。
次のステップ
- デプロイに検索拡張生成を追加する方法については、 RAG 対応生成 AI アプリケーションのプライベート接続をご覧ください。
- Cloud アーキテクチャ センターで、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。
寄稿者
作成者: Victor Moreno | プロダクト マネージャー、クラウド ネットワーキング
その他の寄稿者:
- Mark Schlagenhauf | テクニカル ライター、ネットワーキング
- James Duncan | ソリューション プロダクト マネージャー
- Ammett Williams | デベロッパー リレーションズ エンジニア