このドキュメント(Google Cloud Well-Architected Framework: AI と ML の視点)では、 Google Cloudで堅牢な AI システムと ML システムを構築して運用するための原則と推奨事項の概要について説明します。これらの推奨事項は、オブザーバビリティ、自動化、スケーラビリティなどの基本的な要素を設定するのに役立ちます。このドキュメントの推奨事項は、Well-Architected Framework のオペレーショナル エクセレンスの柱に沿っています。
AI と ML のドメインにおけるオペレーショナル エクセレンスとは、組織の戦略目標の達成に役立つ AI と ML のシステムとパイプラインをシームレスにデプロイ、管理、統制する能力のことです。優れた運用により、変化に効率的に対応し、運用の複雑さを軽減して、運用がビジネスの目標に沿った状態を維持できます。
このドキュメントの推奨事項は、次の基本原則にマッピングされています。
モデル開発のための堅牢な基盤を構築する
ビジネス目標の達成に役立つ、スケーラブルで信頼性の高い AI システムを開発してデプロイするには、堅牢なモデル開発基盤が不可欠です。このような基盤により、一貫したワークフローが実現し、重要なステップが自動化されてエラーが削減され、需要に応じてモデルをスケーリングできるようになります。強固なモデル開発基盤により、ML システムをシームレスに更新、改善、再トレーニングできます。また、この基盤は、モデルのパフォーマンスをビジネスニーズに合わせ、効果的な AI ソリューションを迅速にデプロイし、変化する要件に適応するのにも役立ちます。
AI モデルを開発するための堅牢な基盤を構築するには、次の推奨事項を検討してください。
問題と必要な結果を定義する
AI または ML プロジェクトを開始する前に、解決すべきビジネス上の問題と必要な成果を明確に理解しておく必要があります。ビジネスの目標の概要から始めて、目標を測定可能な重要業績評価指標(KPI)に分解します。Jupyter ノートブック環境で問題の定義と仮説を整理して文書化するには、Gemini Enterprise Agent Platform Workbench などのツールを使用します。コードとドキュメントのバージョニングを実装し、プロジェクト、目標、前提条件をドキュメント化するには、Git などのツールを使用します。生成 AI アプリケーションのプロンプトを開発して管理するには、Gemini Enterprise Agent Platform の Agent Studio を使用します。
必要なデータを収集して前処理する
データの前処理と変換を実装するには、Dataflow(Apache Beam 用)、Managed Service for Apache Spark(Apache Spark 用)、または BigQuery(SQL ベースのプロセスが適切な場合)を使用できます。スキーマを検証して異常を検出するには、TensorFlow Data Validation(TFDV)を使用し、必要に応じて BigQuery の自動データ品質スキャンを活用します。
生成 AI の場合、データ品質には、精度、関連性、多様性、必要な出力特性との整合性が含まれます。実世界のデータが不十分または不均衡な場合は、合成データを生成して、モデルの堅牢性と一般化を改善できます。既存のパターンに基づいて合成データセットを作成する場合や、モデルのパフォーマンスを向上させるためにトレーニング データを拡張する場合は、BigQuery DataFrames を使用します。合成データは、プロンプトの多様性とモデル全体の堅牢性の向上に役立つため、生成 AI にとって特に価値があります。生成 AI モデルのファインチューニング用のデータセットを構築する場合は、Gemini Enterprise Agent Platform の合成データ生成機能の使用を検討してください。
ファインチューニングや人間からのフィードバックを用いた強化学習(RLHF)などの生成 AI タスクでは、生成された出力の品質、関連性、安全性がラベルに正確に反映されていることを確認します。
適切な ML アプローチを選択する
モデルとパラメータを設計する際は、モデルの複雑さと計算ニーズを考慮してください。タスク(分類、回帰、生成など)に応じて、カスタムモデルの構築には Agent Platform カスタム トレーニング、よりシンプルな ML タスクには AutoML の使用を検討してください。一般的なアプリケーションの場合は、Model Garden から事前トレーニング済みモデルにアクセスすることもできます。テキスト、画像、コードの生成など、さまざまなユースケースに対応するさまざまな最先端の基盤モデルを試すことができます。
特定のユースケースで最適なパフォーマンスを実現するために、事前トレーニング済みの基盤モデルをファインチューニングすることをおすすめします。カスタム トレーニングで高パフォーマンスの要件がある場合は、Cloud TPU または GPU リソースを構成して、大規模言語モデル(LLM)や拡散モデルなどのディープ ラーニング モデルのトレーニングと推論を高速化します。
コード、モデル、データのバージョン管理を設定する
コード バージョンを効果的に管理してデプロイするには、GitHub や GitLab などのツールを使用します。これらのツールは、堅牢なコラボレーション機能、ブランチ戦略、CI / CD パイプラインとの統合を提供し、開発プロセスを効率化します。
次の例のように、適切なソリューションを使用して ML システムの各アーティファクトを管理します。
- コンテナ イメージやパイプライン コンポーネントなどのコード アーティファクトの場合、Artifact Registry は、セキュリティの向上に役立つスケーラブルなストレージ ソリューションを提供します。Artifact Registry にはバージョニングも含まれており、Cloud Build や Cloud Deploy と統合できます。
- トレーニングや評価に使用されるデータセットなどのデータ アーティファクトを管理するには、BigQuery や Cloud Storage などのソリューションを使用して、ストレージとバージョニングを行います。
- メタデータとデータ ロケーションへのポインタを保存するには、バージョン管理システムまたは別の Data Catalog を使用します。
特徴データの整合性とバージョニングを維持するには、Agent Platform Feature Store を使用します。バイナリやメタデータなどのモデル アーティファクトを追跡して管理するには、Gemini Enterprise Agent Platform の Model Registry を使用します。これにより、モデル バージョンをシームレスに保存、整理、デプロイできます。
モデルの信頼性を確保するには、Gemini Enterprise Agent Platform の Model Monitoring を実装します。本番環境でデータドリフトを検出し、パフォーマンスを追跡して、異常を特定します。生成 AI システムの場合は、出力品質と安全コンプライアンスの変化をモニタリングします。
モデル開発ライフサイクルを自動化する
自動化は、AI と ML のライフサイクルのあらゆる段階を効率化するのに役立ちます。自動化により、手作業が減り、プロセスが標準化されるため、運用効率が向上し、エラーのリスクが軽減されます。自動化されたワークフローにより、イテレーションの高速化、環境間での一貫したデプロイ、より信頼性の高い結果が実現されるため、システムをシームレスにスケーリングして適応させることができます。
AI システムと ML システムの開発ライフサイクルを自動化するには、次の推奨事項を検討してください。
マネージド パイプライン オーケストレーション システムを使用する
Gemini Enterprise Agent Platform Pipelines を使用して、データの準備からモデルのトレーニング、評価、デプロイまで、ML ライフサイクルのすべてのステップを自動化します。デプロイを加速し、プロジェクト間の一貫性を促進するには、スケジュール設定されたパイプライン実行で繰り返すタスクを自動化し、実行指標でワークフローをモニタリングし、標準化されたワークフロー用に再利用可能なパイプライン テンプレートを開発します。これらの機能は生成 AI モデルにも拡張されます。生成 AI モデルでは、プロンプト エンジニアリング、レスポンス フィルタリング、human-in-the-loop評価などの特別なステップが必要になることがよくあります。生成 AI の場合、Agent Platform Pipelines は、品質指標と安全に関するガイドラインに照らした生成された出力の評価など、これらのステップを自動化できます。プロンプトの多様性とモデルの堅牢性を向上させるために、自動ワークフローにデータ拡張手法を組み込むこともできます。
CI / CD パイプラインを実装する
ML モデルのビルド、テスト、デプロイを自動化するには、Cloud Build を使用します。このサービスは、アプリケーション コードのテストスイートを実行する場合に特に効果的です。これにより、インフラストラクチャ、依存関係、モデル パッケージがデプロイ要件を満たしていることを確認できます。
ML システムでは、多くの場合、コードテスト以外の追加の手順が必要です。たとえば、さまざまな負荷の下でモデルのストレステストを行い、一括評価を実行してさまざまなデータセットでモデルのパフォーマンスを評価し、再トレーニングの前にデータの完全性を検証する必要があります。ストレステストで現実的なワークロードをシミュレートするには、Locust、Grafana k6、Apache JMeter などのツールを使用します。ボトルネックを特定するには、Cloud Monitoring でレイテンシ、エラー率、リソース使用率などの主要な指標をモニタリングします。生成 AI の場合、テストには、テキストの品質、画像の忠実度、コードの機能など、生成されたコンテンツの種類に固有の評価も含まれている必要があります。これらの評価には、言語モデルのパープレキシティなどの自動指標や、創造性や安全性などのより微妙な側面に関する人間参加型の評価が含まれます。
テストタスクと評価タスクを実装するには、Cloud Build を他の Google Cloud サービスと統合します。たとえば、自動モデル評価には Agent Platform Pipelines、大規模なデータ分析には BigQuery、特徴検証には Dataflow パイプライン検証を使用できます。
継続的トレーニングに Agent Platform を使用して、新しいデータでモデルの自動再トレーニングを有効にすることで、CI / CD パイプラインをさらに強化できます。特に生成 AI の場合、生成された出力の関連性と多様性を維持するために、再トレーニングでは、新しいトレーニング データやプロンプトを使用してモデルを自動的に更新することがあります。Agent Platform Model Garden を使用して、チューニングに使用できる最新のベースモデルを選択できます。この方法により、モデルが最新の状態に保たれ、変化するビジネスニーズに合わせて最適化されます。
安全で制御されたモデルリリースを実装する
リスクを最小限に抑え、信頼性の高いデプロイを実現するには、問題を早期に検出し、パフォーマンスを検証して、必要に応じて迅速にロールバックできるモデル リリース アプローチを実装します。
ML モデルとアプリケーションをコンテナ イメージにパッケージ化してデプロイするには、Cloud Deploy を使用します。モデルは Agent Platform エンドポイントにデプロイできます。
カナリア リリースなどの戦略を使用して、AI アプリケーションとシステムの制御されたリリースを実装します。Gemini などのマネージド モデルを使用するアプリケーションの場合は、完全なデプロイの前に、新しいアプリケーション バージョンを一部のユーザーに段階的にリリースすることをおすすめします。このアプローチにより、特に、出力が異なる可能性がある生成 AI モデルを使用する場合に、潜在的な問題を早期に検出できます。
ファインチューニングされたモデルをリリースするには、Cloud Deploy を使用してモデル バージョンのデプロイを管理し、カナリア リリース戦略を使用してリスクを最小限に抑えます。マネージド モデルとファインチューニングされたモデルの場合、制御されたリリースの目的は、アプリケーションとモデルをすべてのユーザーにリリースする前に、限定されたユーザーで変更をテストすることです。
堅牢な検証を行うには、Gemini Enterprise Agent Platform のテストを使用して新しいモデルを既存のモデルと比較し、Agent Platform モデル評価を使用してモデルのパフォーマンスを評価します。生成 AI の場合は、想定されるユースケースと潜在的なリスクに沿った評価指標を定義します。Agent Platform の Gen AI Evaluation Service を使用して、有害性、一貫性、事実の正確性、安全に関するガイドラインの遵守などの指標を評価できます。
デプロイの信頼性を確保するには、堅牢なロールバック計画が必要です。従来の ML システムの場合は、Agent Platform の Model Monitoring を使用して、データドリフトとパフォーマンスの低下を検出します。生成 AI モデルの場合、Agent Platform のモデル評価を Cloud Logging および Monitoring と組み合わせて使用することで、関連する指標を追跡し、出力品質の変化や有害なコンテンツの出現に関するアラートを設定できます。生成 AI 固有の指標に基づいてアラートを構成し、必要に応じてロールバック手順をトリガーします。モデルのリネージを追跡して最新の安定版に戻すには、Model Registry の分析情報を使用します。
オブザーバビリティを実装する
AI システムと ML システムの動作は、データや環境の変化、モデルの更新により、時間の経過とともに変化する可能性があります。この動的な性質により、パフォーマンスの問題、バイアス、予期しない動作を検出するには、オブザーバビリティが不可欠です。これは、出力が大きく変動し、主観的になる可能性がある生成 AI モデルに特に当てはまります。オブザーバビリティにより、予期しない動作にプロアクティブに対処し、AI システムと ML システムの信頼性、精度、公平性を維持できます。
AI / ML システムのオブザーバビリティを実装するには、次の推奨事項を検討してください。
パフォーマンスを継続的にモニタリングする
デプロイ後のモデルの継続的な評価には、指標と成功基準を使用します。
Agent Platform の Model Monitoring を使用すると、モデルのパフォーマンスをプロアクティブに追跡し、トレーニング / サービング スキューと予測ドリフトを特定して、必要なモデルの再トレーニングやその他の介入をトリガーするアラートを受け取ることができます。トレーニング / サービング スキューを効果的にモニタリングするには、理想的なデータ分布を表すゴールデン データセットを構築し、TFDV を使用してトレーニング データを分析し、ベースライン スキーマを確立します。
Agent Platform で Model Monitoring を構成して、入力データの分布をゴールデン データセットと比較し、スキューを自動的に検出する。従来の ML モデルの場合は、精度、適合率、再現率、F1 スコア、AUC-ROC、ログ損失などの指標に重点を置きます。Agent Platform の Model Monitoring でアラートのカスタムしきい値を定義します。生成 AI の場合は、Gen AI Evaluation Service を使用して、本番環境でモデル出力を継続的にモニタリングします。また、回答の品質、安全性、指示の遵守、グラウンディング、記述スタイル、詳細度に関する自動評価指標を有効にすることもできます。生成された出力の品質、関連性、安全性、ガイドラインへの準拠を評価するには、human-in-the-loopの評価を組み込みます。
Agent Platform で Model Monitoring がアラートをトリガーしたときに、Agent Platform Pipelines でモデルを自動的に再トレーニングするフィードバック ループを作成します。これらの分析情報を使用して、モデルを継続的に改善します。
開発中にモデルを評価する
LLM やその他の生成 AI モデルをデプロイする前に、開発フェーズで徹底的に評価します。Agent Platform のモデル評価を使用して、最適なパフォーマンスを達成し、リスクを軽減します。Agent Platform の迅速な評価を使用して、指定したデータセットとプロンプトに基づいて Google Cloud が自動的に評価を実行するようにします。
ユースケースに固有のカスタム指標を定義して統合することもできます。生成されたコンテンツに関するフィードバックについては、Agent Platform のモデル評価を使用して、人間参加型のワークフローを統合します。
敵対的テストを使用して、脆弱性と潜在的な障害モードを特定します。潜在的なバイアスを特定して軽減するには、サブグループ分析や反事実生成などの手法を使用します。開発フェーズで完了した評価から得られた分析情報を使用して、本番環境でのモデル モニタリング戦略を定義します。このドキュメントのパフォーマンスを継続的にモニタリングするセクションで説明されているように、継続的なモニタリングのためにソリューションを準備します。
可用性をモニタリングする
デプロイされたエンドポイントとインフラストラクチャの健全性とパフォーマンスを可視化するには、Monitoring を使用します。Agent Platform エンドポイントでは、リクエスト率、エラー率、レイテンシ、リソース使用率などの主要な指標を追跡し、異常に対するアラートを設定します。詳細については、Agent Platform のモニタリング指標をご覧ください。
基盤となるインフラストラクチャ(Compute Engine インスタンス、Google Kubernetes Engine(GKE)クラスタ、Cloud TPU、GPU など)の健全性をモニタリングします。Active Assist から自動最適化の推奨事項を取得します。自動スケーリングを使用する場合は、スケーリング動作をモニタリングして、自動スケーリングがトラフィック パターンの変化に適切に対応していることを確認します。
Cloud Deploy を Monitoring と統合することで、カナリア リリースやロールバックなど、モデルのデプロイのステータスを追跡します。また、Security Command Center を使用して、潜在的なセキュリティ上の脅威と脆弱性をモニタリングします。
ビジネス固有のしきい値のカスタム アラートを設定する
異常や問題をタイムリーに特定して修正するには、ビジネス目標に固有のしきい値に基づいてカスタム アラートを設定します。カスタム アラート システムの実装に使用できる Google Cloud プロダクトの例を次に示します。
- ロギング: AI システムと ML システムのすべてのコンポーネントからログを収集、保存、分析します。
- Monitoring: カスタム ダッシュボードを作成して、主要な指標と傾向を可視化し、ニーズに基づいてカスタム指標を定義します。重大な問題に関する通知を受け取るようにアラートを構成し、PagerDuty や Slack などのインシデント管理ツールとアラートを統合します。
- Error Reporting: エラーと例外を自動的にキャプチャして分析します。
- Cloud Trace: 分散システムのパフォーマンスを分析し、ボトルネックを特定します。トレースは、AI と ML のパイプラインのさまざまなコンポーネント間のレイテンシを把握するのに特に役立ちます。
- Cloud Profiler: 本番環境のコードのパフォーマンスを継続的に分析し、CPU またはメモリ使用量のパフォーマンス ボトルネックを特定します。
効果的な運用の文化を構築する
モデルの構築だけでなく、持続可能で信頼性が高く、効果的な AI ソリューションの構築に重点を移します。チームが継続的に学習、イノベーション、改善を行えるようにすることで、開発サイクルの短縮、エラーの削減、効率の向上を実現します。自動化、標準化、倫理的な考慮事項を優先することで、AI と ML のイニシアチブが継続的に価値を提供し、リスクを軽減し、責任ある AI 開発を促進できます。
AI / ML システムのオペレーショナル エクセレンスの文化を構築するには、次の推奨事項を検討してください。
自動化と標準化を推進する
効率性と一貫性を重視するには、AI と ML のライフサイクルのすべてのステージに自動化と標準化されたプラクティスを組み込みます。自動化により、手動エラーが減り、チームはイノベーションに集中できるようになります。標準化により、チームやプロジェクト間でプロセスを繰り返し、拡張できるようになります。
継続的な学習と改善を優先する
継続的な教育と実験が基本原則となる環境を育みます。チームが AI と ML の進歩を常に把握できるようにし、過去のプロジェクトから学ぶ機会を提供します。好奇心と適応の文化はイノベーションを促進し、チームが新しい課題に対応できるようにします。
説明責任とオーナーシップを育む
役割、責任、成功の指標を明確に定義して、信頼関係を構築し、足並みを揃えます。チームがこれらの境界内で十分な情報に基づいた意思決定を行えるようにし、進捗状況を測定する透明性の高い方法を確立します。オーナーシップの意識はチームのモチベーションを高め、成果に対する共同責任を確実にします。
AI の倫理と安全性の考慮事項を組み込む
開発のあらゆる段階で倫理に関する考慮事項を優先します。チームに AI ソリューションの影響について批判的に考えるよう促し、公平性、バイアス、社会的影響に関する議論を促進します。明確な原則と説明責任メカニズムにより、AI システムが組織の価値観に沿い、信頼を促進します。
スケーラビリティを考慮した設計
増大するデータ量とユーザーの需要に対応し、AI 投資の価値を最大化するには、AI システムと ML システムにスケーラビリティが必要です。システムは、有効性を妨げるパフォーマンスのボトルネックを回避するために、適応して最適なパフォーマンスを発揮する必要があります。スケーラビリティを考慮して設計すると、AI インフラストラクチャが成長に対応し、応答性を維持できます。スケーラブルなインフラストラクチャを使用し、容量を計画して、水平スケーリングやマネージド サービスなどの戦略を採用します。
スケーラビリティを考慮して AI / ML システムを設計するには、次の推奨事項を検討してください。
容量と割り当てを計画する
将来の成長を評価し、それに応じてインフラストラクチャの容量とリソース割り当てを計画します。ビジネス関係者と協力して、予測される成長を把握し、それに応じてインフラストラクチャの要件を定義します。
Monitoring を使用して、過去のリソース使用率を分析し、傾向を特定して、将来のニーズを予測します。定期的に負荷テストを実施して、ワークロードをシミュレートし、ボトルネックを特定します。
Compute Engine、Agent Platform、Cloud Storage など、使用するサービスの Google Cloud 割り当てをよく理解します。 Google Cloud コンソールから割り当ての増加をプロアクティブにリクエストし、予測と負荷テストのデータを使用して増加を正当化します。割り当て使用量をモニタリングし、使用量が割り当て上限に近づいたときに通知を受け取るようにアラートを設定します。
需要に基づいてリソース使用量を最適化するには、リソースのサイズを適正化し、フォールト トレラントなバッチ ワークロードに Spot VM を使用して、自動スケーリングを実装します。
ピークイベントに備える
ピークイベント中にトラフィックやワークロードが急増しても、システムが対応できるようにします。ピーク イベント戦略を文書化し、定期的な訓練を実施して、負荷の増加に対応するシステムの能力をテストします。
需要が急増したときにリソースを積極的にスケールアップするには、Compute Engine と GKE で自動スケーリング ポリシーを構成します。予測可能なピークパターンについては、予測自動スケーリングの使用を検討してください。アプリケーション固有のシグナルに基づいて自動スケーリングをトリガーするには、Monitoring のカスタム指標を使用します。
Cloud Load Balancing を使用して、複数のアプリケーション インスタンスにトラフィックを分散します。アプリケーションのニーズに基づいて、適切なロードバランサの種類を選択します。地理的に分散したユーザーの場合、グローバル ロード バランシングを使用して、最も近い使用可能なインスタンスにトラフィックを転送できます。複雑なマイクロサービス ベースのアーキテクチャの場合は、Cloud Service Mesh の使用を検討してください。
Cloud CDN を使用して、Google ネットワークのエッジで静的コンテンツをキャッシュに保存する。
頻繁にアクセスされるデータをキャッシュに保存するには、次のフルマネージド インメモリ データストア サービスのいずれかを使用します。
リアルタイム メッセージングに Pub/Sub を使用し、非同期タスクの実行に Cloud Tasks を使用して、システムのコンポーネントを分離します。
本番環境用にアプリケーションをスケーリングする
本番環境でスケーラブルなサービングを実現するには、Agent Platform の分散トレーニングや Gemini Enterprise Agent Platform Inference などのマネージド サービスを使用できます。Agent Platform Inference では、モデルをエンドポイントにデプロイするとき、またはバッチ予測をリクエストするときに、予測ノードのマシンタイプを構成できます。一部の構成では、GPU を追加できます。適切なマシンタイプとアクセラレータを選択して、レイテンシ、スループット、費用を最適化します。
複雑な AI アプリケーション、Python アプリケーション、カスタム ワークロードを分散コンピューティング リソース全体でスケーリングするには、Gemini Enterprise Agent Platform の Ray を使用します。この機能は、パフォーマンスの最適化に役立ち、Google Cloud サービスとのシームレスな統合を可能にします。Gemini Enterprise Agent Platform の Ray は、クラスタ管理、タスク スケジューリング、データ転送を処理することで、分散コンピューティングを簡素化します。トレーニング、予測、パイプラインなどの他の Agent Platform サービスと統合されます。Ray は、フォールト トレランスと自動スケーリングを提供し、ワークロードの変化に合わせてインフラストラクチャを調整できるようにします。分散トレーニング、ハイパーパラメータ チューニング、強化学習、モデル提供のための統合フレームワークを提供します。Dataflow または Managed Service for Apache Spark を使用した分散データ前処理、高速化されたモデル トレーニング、スケーラブルなハイパーパラメータ チューニング、強化学習、並列化されたバッチ予測に Ray を使用します。
寄稿者
著者:
- Charlotte Gistelinck 博士 | パートナー エンジニア
- Sannya Dang | AI ソリューション アーキテクト
- Filipe Gracio, PhD | カスタマー エンジニア兼 AI / ML スペシャリスト
その他の寄稿者:
- Gary Harmson | プリンシパル アーキテクト
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Marwan Al Shawi | パートナー カスタマー エンジニア
- Ryan Cox | プリンシパル アーキテクト
- Stef Ruinard | 生成 AI フィールド ソリューション アーキテクト