アーキテクチャについて
このアーキテクチャには、Google CloudとOCIを備えたマルチクラウド・ソリューションが含まれます。GKEは、計算集約的な部分をオンデマンドでOCI AIインフラストラクチャにオフロードしながら、トレーニングおよび推論プロセス全体を調整します。データは2つのクラウド間で転送され、さらに処理するために結果がGKEに戻されます。
次の図は、参照アーキテクチャを示しています。
アーキテクチャ・コンポーネント
このアーキテクチャには、次のコンポーネントが含まれています。
- GKEクラスタ(Google Kubernetes Engine)
GKEクラスタは、コンテナ化されたモデル・トレーニング・ジョブを管理し、トレーニング・ジョブをKubernetesクラスタに送信します。
- モデル・トレーニング・ジョブ定義
モデル・トレーニング・ジョブ定義では、トレーニング・スクリプト、データ・ロケーション(クラウド・ストレージ)、モデル・パラメータおよび必要な数のワーカー・ノードを指定します。
- コンテナ化されたトレーニング・スクリプト
コンテナ化されたトレーニング・スクリプトはワーカー・ノードで実行され、OCI AIインフラストラクチャで実行されているモデルを使用して実際のモデル・トレーニングを実行します。
- Kubernetesオペレータ(オプション)
Kubernetes Operatorは、GKEでのトレーニング・ジョブのデプロイメントおよび管理を自動化するオプションのパラメータです。
- クラウド・ストレージ
クラウド・ストレージには、トレーニング・データおよびモデル・アーティファクトが格納されます。
- クラウド・モニタリング(オプション)
クラウド・モニタリングは、ジョブ・ステータス、リソース使用率およびトレーニング・メトリックを監視するオプションのコンポーネントです。
- モデル結果
モデル結果は、評価、ストレージまたはデプロイメントのためにGKEに戻されます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインには影響しません。
- FastConnect
Oracle Cloud Infrastructure FastConnectは、データ・センターとOracle Cloud Infrastructureの間に専用のプライベート接続を簡単に作成する方法を提供します。FastConnectは、インターネットベースの接続と比較して、高帯域幅のオプションと、より信頼性の高いネットワーキング・エクスペリエンスを提供します。
- リージョン
Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、長距離の場合は(複数の国または大陸にまたがって)分離できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用するとネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- コンピュート
Oracle Cloud Infrastructure Computeサービスを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスを作成した後は、セキュアにアクセスし、再起動、ボリュームのアタッチおよびデタッチを行い、不要になったらそれを終了します。
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)は、完全に管理されたスケーラブルで可用性の高いサービスであり、コンテナ化されたアプリケーションをクラウドにデプロイするために使用されます。アプリケーションで必要なコンピュート・リソースを指定すると、Container Engine for KubernetesがそれらをOracle Cloud Infrastructureの既存のテナンシにプロビジョニングします。Container Engine for KubernetesはKubernetesを使用して、ホストのクラスタ間でコンテナ化されたアプリケーションのデプロイメント、スケーリングおよび管理を自動化します。
- Oracle Interconnect for Google Cloud
Oracle Interconnect for Google Cloudは、OCI FastConnectパートナ接続とGoogle Cloud Partner Interconnectを組み合わせた専用のプライベート相互接続サービスです。マルチクラウドのお客様は、2つのクラウド間でイノベーションを行い、既存の使い慣れたツールを適用してワークロードをサポートできます。
通信フロー
このアーキテクチャでは、データ・トラフィックは次のように流れます。
- お客様は、GKEを使用してモデル・トレーニング・ジョブ定義を送信します。
- ジョブ定義では、コンテナ化されたトレーニング・スクリプト、データの場所および目的のワーカー・ノードを指定します。
- ワーカー・ノードは、トレーニング・スクリプトとデータをクラウド・ストレージからプルします。トレーニング・スクリプトは、OCI AIインフラストラクチャで実行されているGPUを使用してモデルをトレーニングします。
- トレーニング結果がクラウド・ストレージにアップロードされるか、さらに処理するためにGKEに返送されます。
- オプションのCloud Monitoringは、パフォーマンス分析のためにトレーニング・ジョブからメトリックを収集します。
追加の推論のユースケース
このアーキテクチャでは、前述の使用事例に加えて、次の2つの推論ユースケースもサポートしています。
- 低レイテンシ要件のリアルタイム推論。
- 大規模なデータセットのバッチ推論。
低レイテンシ要件のリアルタイム推論
このユースケースでは、チャットボット、バーチャル・アシスタント、リアルタイム翻訳などのアプリケーションについて、LLMモデルから即座に回答する必要があります。このソリューションは、次のデータ・フローを設計します。
- ユーザー入力は、GCPで実行されているGKE環境に送信されます。
- GKEは、OCI AIインフラストラクチャへのリクエストをオーケストレーションします。
- OCI AIインフラストラクチャは、デプロイされたLLMモデルを使用して入力を処理します。
- 推論結果はGKEに返されます。
- GKEは、レスポンスをフォーマットしてユーザーに送信します。
- Oracle Interconnect for Google Cloudによる低レイテンシの推論を提供するため、推論インフラストラクチャからアプリケーションへの近接性が低下します。
- OCI AIインフラストラクチャの柔軟な機能により、さまざまな推論負荷を処理するのに十分なスケーラビリティを備えています。
- 推論ハードウェアとソフトウェアを最適化することで、潜在的なコスト削減を実現します。
大規模データセットのバッチ推論
この場合、大規模なデータセットに対するセンチメント分析や大量のドキュメント・コーパスのサマリーの生成など、LLMモデルを介して大量のデータをバッチ・モードで処理する必要があります。このケースに対処するには、次のデータ・フローを実装します。
- データは準備され、Google Cloudストレージ・バケットに格納されます。
- バッチ・ジョブはGKEで開始され、クラウド・スケジューラまたはクラウド関数によってトリガーされます。
- GKEは、OCI AIインフラストラクチャへのデータの転送を調整します。
- OCI AIインフラストラクチャは、LLMモデルを使用してデータをバッチ処理します。
- 推論結果はGoogle Cloudストレージ・バケットに格納されます。
- 後処理は、必要に応じてGKEで実行されます。
- OCI AIインフラストラクチャのコンピューティング能力を活用することで、大規模なデータセットのコスト効率の高い処理を提供します。
- GKE単独での推論の実行と比較してパフォーマンスが向上します。
- 多様なデータ形式とサイズを処理する機能があります。