Well-Architected Framework: AI と ML の視点

Last reviewed 2025-02-14 UTC

Google Cloud Well-Architected Framework のこのドキュメントでは、運用、セキュリティ、信頼性、費用、パフォーマンスの目標を満たす Google Cloud で AI ワークロードと ML ワークロードを設計、構築、管理するうえで役立つ原則と推奨事項について説明します。

このドキュメントの対象読者は、 Google Cloudで AI ワークロードと ML ワークロードの設計、構築、デプロイ、保守を行う意思決定者、アーキテクト、管理者、デベロッパー、オペレーターです。

次のページでは、Well-Architected Framework の各柱について、AI と ML に固有の原則と推奨事項について説明します。

寄稿者

著者:

  • Benjamin Sadik | AI および ML スペシャリスト カスタマー エンジニア
  • Charlotte Gistelinck 博士 | パートナー エンジニア
  • Filipe Gracio 博士 | カスタマー エンジニア、AI/ML スペシャリスト
  • Isaac Lo | AI ビジネス デベロップメント マネージャー
  • Kamilla Kurta | 生成 AI / ML スペシャリスト カスタマー エンジニア
  • Mohamed Fawzi | ベネルクス セキュリティ / コンプライアンス リード
  • Rick(Rugui)Chen | AI インフラストラクチャ フィールド ソリューション アーキテクト
  • Sannya Dang | AI ソリューション アーキテクト

その他の寄稿者:

  • Daniel Lees | クラウド セキュリティ アーキテクト
  • Gary Harmson | プリンシパル アーキテクト
  • Jose Andrade | カスタマー エンジニア、SRE スペシャリスト
  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Marwan Al Shawi | パートナー カスタマー エンジニア
  • Nicolas Pintaux | カスタマー エンジニア、アプリケーション モダナイゼーション スペシャリスト
  • Radhika Kanakam | プログラム リーダー、Google Cloud Well-Architected Framework
  • Ryan Cox | プリンシパル アーキテクト
  • Samantha He | テクニカル ライター
  • Stef Ruinard | 生成 AI フィールド ソリューション アーキテクト
  • Wade Holmes | グローバル ソリューション ディレクター
  • Zach Seils | ネットワーキング スペシャリスト

AI と ML の視点: オペレーショナル エクセレンス

Well-Architected Framework: AI と ML の視点のこのドキュメントでは、 Google Cloudで堅牢な AI システムと ML システムを構築して運用するための原則と推奨事項の概要について説明します。これらの推奨事項は、オブザーバビリティ、自動化、スケーラビリティなどの基本的な要素を設定するのに役立ちます。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework のオペレーショナル エクセレンスの柱に沿っています。

AI と ML の分野におけるオペレーショナル エクセレンスとは、組織の戦略目標の達成に役立つ AI システムと ML システム、パイプラインをシームレスにデプロイ、管理、制御する能力のことです。オペレーショナル エクセレンスにより、変化に効率的に対応し、運用上の複雑さを軽減し、運用がビジネス目標に沿った状態を維持できます。

この記事の推奨事項は、次の基本原則にマッピングされています。

モデル開発のための堅牢な基盤を構築する

ビジネス目標の達成に役立つスケーラブルで信頼性の高い AI システムを開発してデプロイするには、堅牢なモデル開発基盤が不可欠です。このような基盤により、一貫性のあるワークフローが可能になり、エラーを減らすために重要な手順が自動化され、モデルが需要に応じてスケーリングできるようになります。モデル開発の強力な基盤により、ML システムをシームレスに更新、改善、再トレーニングできます。この基盤は、モデルのパフォーマンスをビジネスニーズに合わせ、影響力の大きい AI ソリューションを迅速にデプロイし、変化する要件に適応するうえでも役立ちます。

AI モデルを開発するための堅牢な基盤を構築するには、次の推奨事項を検討してください。

問題と必要な結果を定義する

AI プロジェクトまたは ML プロジェクトを開始する前に、解決すべきビジネス上の問題と必要な成果を明確に理解しておく必要があります。ビジネス目標の概要から始め、目標を測定可能な重要業績評価指標(KPI)に分解します。Jupyter ノートブック環境で問題の定義と仮説を整理して文書化するには、Vertex AI Workbench などのツールを使用します。コードとドキュメントのバージョン管理を実装し、プロジェクト、目標、前提条件を文書化するには、Git などのツールを使用します。生成 AI アプリケーションのプロンプトを開発して管理するには、Vertex AI Studio を使用します。

必要なデータを収集して前処理する

データの前処理と変換を実装するには、SQL ベースのプロセスが適切な場合は、Dataflow(Apache Beam 用)、Dataproc(Apache Spark 用)、または BigQuery を使用できます。スキーマを検証して異常を検出するには、TensorFlow Data Validation(TFDV)を使用し、必要に応じて BigQuery の自動データ品質スキャンを活用します。

生成 AI の場合、データ品質には、精度、関連性、多様性、必要な出力特性との整合性が含まれます。実世界のデータが不十分または不均衡な場合は、合成データを生成して、モデルの堅牢性と一般化を改善できます。既存のパターンに基づいて合成データセットを作成したり、モデルのパフォーマンスを向上させるためにトレーニング データを拡張したりするには、BigQuery DataFrames と Gemini を使用します。合成データは、プロンプトの多様性とモデル全体の堅牢性を高めることができるため、生成 AI に特に役立ちます。生成 AI モデルのファインチューニング用のデータセットを構築する場合は、Vertex AI の合成データ生成機能の使用を検討してください。

ファインチューニングや人間からのフィードバックを用いた強化学習(RLHF)などの生成 AI タスクでは、生成された出力の品質、関連性、安全性をラベルが正確に反映していることを確認します。

適切な ML アプローチを選択する

モデルとパラメータを設計する際は、モデルの複雑さと計算のニーズを考慮してください。タスク(分類、回帰、生成など)に応じて、カスタム モデルの構築には Vertex AI カスタム トレーニング、よりシンプルな ML タスクには AutoML の使用を検討してください。一般的なアプリケーションでは、Vertex AI Model Garden を通じて事前トレーニング済みモデルにアクセスすることもできます。テキスト、画像、コードの生成など、さまざまなユースケースで最先端の基盤モデルを試すことができます。

特定のユースケースで最適なパフォーマンスを実現するために、事前トレーニング済みの基盤モデルをファインチューニングすることがあります。カスタム トレーニングで高いパフォーマンスが求められる場合は、Cloud Tensor Processing Unit(TPU)または GPU リソースを構成して、大規模言語モデル(LLM)や拡散モデルなどのディープ ラーニング モデルのトレーニングと推論を高速化します。

コード、モデル、データのバージョン管理を設定する

コード バージョンを効果的に管理してデプロイするには、GitHub や GitLab などのツールを使用します。これらのツールは、堅牢なコラボレーション機能、ブランチ戦略、CI/CD パイプラインとの統合を提供し、開発プロセスを効率化します。

次の例のように、適切なソリューションを使用して ML システムの各アーティファクトを管理します。

  • コンテナ イメージやパイプライン コンポーネントなどのコード アーティファクトの場合、Artifact Registry は、セキュリティの強化に役立つスケーラブルなストレージ ソリューションを提供します。Artifact Registry にはバージョニングも含まれており、Cloud BuildCloud Deploy と統合できます。
  • トレーニングと評価に使用されるデータセットなどのデータ アーティファクトを管理するには、BigQuery や Cloud Storage などのソリューションを使用して、ストレージとバージョン管理を行います。
  • メタデータとデータロケーションへのポインタを保存するには、バージョン管理システムまたは個別のデータカタログを使用します。

特徴データの整合性とバージョン管理を維持するには、Vertex AI Feature Store を使用します。バイナリやメタデータなどのモデル アーティファクトを追跡して管理するには、Vertex AI Model Registry を使用します。これにより、モデル バージョンをシームレスに保存、整理、デプロイできます。

モデルの信頼性を確保するには、Vertex AI Model Monitoring を実装します。本番環境でデータドリフトを検出し、パフォーマンスを追跡し、異常を特定します。生成 AI システムの場合は、出力の品質と安全性のコンプライアンスの変化をモニタリングします。

モデル開発ライフサイクルを自動化する

自動化により、AI と ML のライフサイクルの各段階を効率化できます。自動化により、手作業が減り、プロセスが標準化されるため、運用効率が向上し、エラーのリスクが軽減されます。自動化されたワークフローにより、イテレーションの高速化、環境全体での一貫したデプロイ、より信頼性の高い結果が得られるため、システムをシームレスにスケーリングして適応させることができます。

AI システムと ML システムの開発ライフサイクルを自動化するには、次の推奨事項を検討してください。

マネージド パイプライン オーケストレーション システムを使用する

Vertex AI Pipelines を使用して、データ準備からモデルのトレーニング、評価、デプロイまで、ML ライフサイクルのあらゆるステップを自動化します。デプロイを加速し、プロジェクト間の一貫性を高めるには、スケジュールされたパイプライン実行で定期的なタスクを自動化し、実行指標でワークフローをモニタリングし、標準化されたワークフロー用の再利用可能なパイプライン テンプレートを開発します。これらの機能は、生成 AI モデルにも拡張されます。生成 AI モデルでは、プロンプト エンジニアリング、レスポンス フィルタリング、human-in-the-loopなどの特別な手順が必要になることがよくあります。生成 AI の場合、Vertex AI Pipelines は、生成された出力の品質指標と安全性ガイドラインに対する評価など、これらの手順を自動化できます。プロンプトの多様性とモデルの堅牢性を向上させるために、自動化されたワークフローにデータ拡張手法を含めることもできます。

CI/CD パイプラインを実装する

ML モデルのビルド、テスト、デプロイを自動化するには、Cloud Build を使用します。このサービスは、アプリケーション コードのテストスイートを実行する場合に特に効果的です。これにより、インフラストラクチャ、依存関係、モデル パッケージがデプロイ要件を満たしていることを確認できます。

ML システムでは、コードテスト以外にも追加の手順が必要になることがよくあります。たとえば、さまざまな負荷でモデルのストレステストを行い、一括評価を実行してさまざまなデータセットでモデルのパフォーマンスを評価し、再トレーニングの前にデータ整合性を検証する必要があります。ストレステストの現実的なワークロードをシミュレートするには、LocustGrafana k6Apache JMeter などのツールを使用できます。ボトルネックを特定するには、Cloud Monitoring を使用して、レイテンシ、エラー率、リソース使用率などの主要な指標をモニタリングします。生成 AI の場合、テストには、テキストの品質、画像の忠実度、コードの機能など、生成されたコンテンツのタイプに固有の評価も含まれている必要があります。これらの評価には、言語モデルのパープレキシティなどの自動指標や、創造性や安全性などのより微妙な側面に関する人間による評価が含まれます。

テストと評価のタスクを実装するには、Cloud Build を他の Google Cloud サービスと統合します。たとえば、Vertex AI Pipelines を使用してモデルの自動評価を行い、BigQuery を使用して大規模なデータ分析を行い、Dataflow パイプライン検証を使用して特徴検証を行うことができます。

継続的トレーニング用の Vertex AI を使用して、新しいデータに対するモデルの自動再トレーニングを有効にすることで、CI/CD パイプラインをさらに強化できます。生成 AI の場合、生成された出力を関連性の高い多様なものにするために、再トレーニングでは新しいトレーニング データやプロンプトを使用してモデルを自動的に更新することがあります。Vertex AI Model Garden を使用して、チューニングに使用できる最新のベースモデルを選択できます。このプラクティスにより、モデルは最新の状態に保たれ、変化するビジネスニーズに合わせて最適化されます。

安全で制御されたモデル リリースを実装する

リスクを最小限に抑え、信頼性の高いデプロイを確保するには、問題を早期に検出し、パフォーマンスを検証し、必要に応じて迅速にロールバックできるモデル リリース アプローチを実装します。

ML モデルとアプリケーションをコンテナ イメージにパッケージ化してデプロイするには、Cloud Deploy を使用します。モデルを Vertex AI エンドポイントにデプロイできます。

カナリア リリースなどの戦略を使用して、AI アプリケーションとシステムの制御されたリリースを実装します。Gemini などのマネージド モデルを使用するアプリケーションの場合は、完全なデプロイの前に、新しいアプリケーション バージョンをユーザーのサブセットに段階的にリリースすることをおすすめします。このアプローチを使用すると、特に生成 AI モデルを使用して出力が変化する可能性がある場合に、潜在的な問題を早期に検出できます。

ファインチューニングされたモデルをリリースするには、Cloud Deploy を使用してモデル バージョンのデプロイを管理し、カナリア リリース戦略を使用してリスクを最小限に抑えます。マネージド モデルとファインチューニングされたモデルでは、制御されたリリースの目的は、アプリケーションとモデルをすべてのユーザーにリリースする前に、限られたユーザーを対象に変更をテストすることです。

堅牢な検証を行うには、Vertex AI Experiments を使用して新しいモデルを既存のモデルと比較し、Vertex AI モデル評価を使用してモデルのパフォーマンスを評価します。生成 AI の場合は、想定されるユースケースと潜在的なリスクに沿った評価指標を定義します。Vertex AI の Gen AI Evaluation Service を使用して、有害性、一貫性、事実の正確性、安全ガイドラインの遵守などの指標を評価できます。

デプロイの信頼性を確保するには、堅牢なロールバック プランが必要です。従来の ML システムでは、Vertex AI Model Monitoring を使用して、データドリフトとパフォーマンスの低下を検出します。生成 AI モデルの場合、Vertex AI モデル評価と Cloud Logging および Cloud Monitoring を使用して、関連する指標を追跡し、出力品質の変化や有害なコンテンツの出現に関するアラートを設定できます。生成 AI 固有の指標に基づいてアラートを構成し、必要に応じてロールバック手順をトリガーします。モデルの系統を追跡し、最新の安定版に戻すには、Vertex AI Model Registry の分析情報を使用します。

オブザーバビリティを実装する

AI システムと ML システムの動作は、データや環境の変化、モデルの更新によって時間の経過とともに変化する可能性があります。この動的な性質により、パフォーマンスの問題、バイアス、予期しない動作を検出するには、オブザーバビリティが不可欠になります。これは、出力が非常に変動しやすく主観的になる可能性がある生成 AI モデルに特に当てはまります。オブザーバビリティにより、予期しない動作に事前に対処し、AI システムと ML システムの信頼性、精度、公平性を維持できます。

AI システムと ML システムのオブザーバビリティを実装するには、次の推奨事項を検討してください。

パフォーマンスを継続的にモニタリングする

指標と成功基準を使用して、デプロイ後のモデルの継続的な評価を行います。

Vertex AI Model Monitoring を使用すると、モデルのパフォーマンスをプロアクティブに追跡し、トレーニング サービング スキューと予測ドリフトを特定して、必要なモデルの再トレーニングやその他の介入をトリガーするアラートを受け取ることができます。トレーニング / サービング スキューを効果的にモニタリングするには、理想的なデータ分布を表すゴールデン データセットを構築し、TFDV を使用してトレーニング データを分析し、ベースライン スキーマを確立します。

入力データの分布をゴールデン データセットと比較してスキューを自動的に検出するように、モデル モニタリングを構成します。従来の ML モデルでは、精度、適合率、再現率、F1 スコア、AUC-ROC、対数損失などの指標に注目します。Model Monitoring でアラートのカスタムしきい値を定義します。生成 AI の場合は、Gen AI Evaluation Service を使用して、本番環境でモデル出力を継続的にモニタリングします。レスポンスの品質、安全性、指示の遵守、グラウンディング、文体、冗長さに関する自動評価指標を有効にすることもできます。生成された出力の品質、関連性、安全性、ガイドラインへの準拠を評価するには、human-in-the-loop評価を組み込むことができます。

モデル モニタリングでアラートがトリガーされたときに、Vertex AI Pipelines でモデルを自動的に再トレーニングするフィードバック ループを作成します。これらの分析情報を使用して、モデルを継続的に改善します。

開発中にモデルを評価する

LLM やその他の生成 AI モデルをデプロイする前に、開発フェーズで徹底的に評価します。Vertex AI モデル評価を使用して、最適なパフォーマンスを実現し、リスクを軽減します。Vertex AI の迅速な評価を使用すると、指定したデータセットとプロンプトに基づいて評価が自動的に実行されます。 Google Cloud

ユースケースに固有のカスタム指標を定義して統合することもできます。生成されたコンテンツに関するフィードバックについては、Vertex AI Model Evaluation を使用して人間参加型ワークフローを統合します。

敵対的テストを使用して、脆弱性と潜在的な障害モードを特定します。潜在的なバイアスを特定して軽減するには、サブグループ分析や反事実生成などの手法を使用します。開発フェーズで完了した評価から得られた分析情報を使用して、本番環境でのモデル モニタリング戦略を定義します。このドキュメントのパフォーマンスを継続的にモニタリングするセクションの説明に従って、継続的なモニタリング用にソリューションを準備します。

可用性をモニタリングする

デプロイされたエンドポイントとインフラストラクチャの健全性とパフォーマンスを可視化するには、Cloud Monitoring を使用します。Vertex AI エンドポイントについては、リクエスト率、エラー率、レイテンシ、リソース使用率などの主要な指標を追跡し、異常のアラートを設定します。詳細については、Vertex AI の Cloud Monitoring 指標をご覧ください。

基盤となるインフラストラクチャの健全性をモニタリングします。これには、Compute Engine インスタンス、Google Kubernetes Engine(GKE)クラスタ、TPU、GPU などがあります。Active Assist から自動最適化の推奨事項を取得します。自動スケーリングを使用する場合は、スケーリングの動作をモニタリングして、自動スケーリングがトラフィック パターンの変化に適切に対応していることを確認します。

Cloud Deploy を Cloud Monitoring と統合して、カナリア リリースやロールバックなどのモデル デプロイのステータスを追跡します。また、Security Command Center を使用して、潜在的なセキュリティ上の脅威と脆弱性をモニタリングします。

ビジネス固有のしきい値のカスタム アラートを設定する

異常や問題をタイムリーに特定して修正するには、ビジネス目標に固有のしきい値に基づいてカスタム アラートを設定します。カスタム アラート システムの実装に使用できる Google Cloud プロダクトの例を次に示します。

  • Cloud Logging: AI システムと ML システムのすべてのコンポーネントからログを収集、保存、分析します。
  • Cloud 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 システムを設計するには、次の推奨事項を検討してください。

容量と割り当てを計画する

将来の成長を評価し、それに応じてインフラストラクチャの容量とリソース割り当てを計画します。ビジネス ステークホルダーと協力して、予測される成長を把握し、それに応じてインフラストラクチャ要件を定義します。

Cloud Monitoring を使用して、過去のリソース使用率を分析し、傾向を特定して、将来のニーズを予測します。ワークロードをシミュレートしてボトルネックを特定するために、定期的に負荷テストを実施します。

Compute Engine、Vertex AI、Cloud Storage など、使用するサービスのGoogle Cloud 割り当てについて理解します。 Google Cloud コンソールから割り当ての増加を事前にリクエストし、予測とロードテストのデータに基づいて増加を正当化します。割り当て使用量をモニタリングし、使用量が割り当て上限に近づいたときに通知を受け取るようにアラートを設定します。

需要に基づいてリソース使用量を最適化するには、リソースのサイズを適正化し、フォールト トレラントなバッチ ワークロードに Spot VM を使用し、自動スケーリングを実装します。

ピークイベントに備える

ピーク イベント中にトラフィックやワークロードが急増しても、システムが対応できるようにします。ピーク イベント戦略を文書化し、定期的にドリルを実施して、負荷の増加に対応するシステムの能力をテストします。

需要が急増したときにリソースを積極的にスケールアップするには、Compute EngineGKE で自動スケーリング ポリシーを構成します。予測可能なピーク パターンには、予測自動スケーリングの使用を検討してください。アプリケーション固有のシグナルに基づいて自動スケーリングをトリガーするには、Cloud Monitoring でカスタム指標を使用します。

Cloud Load Balancing を使用して、複数のアプリケーション インスタンスにトラフィックを分散します。アプリケーションのニーズに基づいて、適切なロードバランサ タイプを選択します。地理的に分散したユーザーに対しては、グローバル ロード バランシングを使用して、最も近い使用可能なインスタンスにトラフィックを転送できます。複雑なマイクロサービス ベースのアーキテクチャの場合は、Cloud Service Mesh の使用を検討してください。

Cloud CDN を使用して、Google のネットワークのエッジで静的コンテンツをキャッシュに保存します。頻繁にアクセスされるデータをキャッシュに保存するには、Memorystore を使用します。これは、Redis、Valkey、Memcached 向けのフルマネージド インメモリ サービスを提供します。

リアルタイム メッセージングに Pub/Sub を使用し、非同期タスクの実行に Cloud Tasks を使用して、システムのコンポーネントを分離する

本番環境用にアプリケーションをスケーリングする

本番環境でスケーラブルなサービングを確保するには、Vertex AI 分散トレーニングVertex AI 推論などのマネージド サービスを使用します。Vertex AI Inference を使用すると、モデルをエンドポイントにデプロイするときやバッチ予測をリクエストするときに、予測ノードのマシンタイプを構成できます。一部の構成では、GPU を追加できます。適切なマシンタイプとアクセラレータを選択して、レイテンシ、スループット、費用を最適化します。

分散コンピューティング リソース全体で複雑な AI アプリケーションと Python アプリケーション、カスタム ワークロードをスケーリングするには、Ray on Vertex AI を使用します。この機能は、パフォーマンスの最適化に役立ち、Google Cloud サービスとのシームレスな統合を可能にします。Vertex AI の Ray は、クラスタ管理、タスク スケジューリング、データ転送を処理することで、分散コンピューティングを簡素化します。トレーニング、予測、パイプラインなどの他の Vertex AI サービスと統合されます。Ray は、フォールト トレランスと自動スケーリングを提供し、インフラストラクチャを変化するワークロードに適応させるのに役立ちます。分散トレーニング、ハイパーパラメータ チューニング、強化学習、モデル サービングのための統合フレームワークを提供します。Ray を使用して、Dataflow または Dataproc による分散データ前処理、高速化されたモデル トレーニング、スケーラブルなハイパーパラメータ チューニング、強化学習、並列化されたバッチ予測を行います。

寄稿者

著者:

その他の寄稿者:

  • Gary Harmson | プリンシパル アーキテクト
  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Marwan Al Shawi | パートナー カスタマー エンジニア
  • Ryan Cox | プリンシパル アーキテクト
  • Stef Ruinard | 生成 AI フィールド ソリューション アーキテクト

AI と ML の視点: セキュリティ

このドキュメント(Well-Architected Framework: AI と ML の視点)では、AI と ML のデプロイが組織のセキュリティとコンプライアンスの要件を満たすようにするための原則と推奨事項の概要について説明します。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework のセキュリティの柱に沿っています。

AI ワークロードと ML ワークロードの安全なデプロイは、特に企業環境において重要な要件です。この要件を満たすには、AI と ML ソリューションの初期コンセプトから、開発、デプロイ、継続的な運用に至るまで、包括的なセキュリティ アプローチを採用する必要があります。 Google Cloud には、AI ワークロードと ML ワークロードの保護を目的とした堅牢なツールとサービスが用意されています。

明確な目標と要件を定義する

必要なセキュリティとコンプライアンスのコントロールは、開発後に追加するよりも、設計と開発プロセスの早い段階で統合するほうが簡単です。設計と開発のプロセスの開始から、特定のリスク環境と特定のビジネスの優先事項に適した決定を行います。

以下の推奨事項を参考にしてください。

  • 潜在的な攻撃ベクトルを特定し、最初からセキュリティとコンプライアンスの視点を取り入れます。AI システムを設計して進化させる際は、攻撃対象領域、潜在的なリスク、直面する可能性のある義務を把握してください。
  • AI と ML のセキュリティ対策をビジネス目標と整合させ、セキュリティが全体的な戦略の不可欠な部分であることを確認します。セキュリティの選択が主なビジネス目標に与える影響を把握します。

データを安全に保ち、損失や不正使用を防止する

データは貴重で機密性の高い資産であり、安全に保つ必要があります。データ セキュリティは、ユーザーの信頼を維持して、ビジネス目標をサポートし、コンプライアンス要件を満たすのに役立ちます。

以下の推奨事項を参考にしてください。

  • ビジネス目標に厳密に必要でないデータは収集、保持、使用しないでください。可能であれば、合成データまたは完全に匿名化されたデータを使用してください。
  • データの収集、保存、変換をモニタリングします。すべてのデータアクセスと操作アクティビティのログを保持します。ログは、データアクセスの監査、不正アクセスの試みの検出、不要なアクセスの防止に役立ちます
  • ユーザーロールに基づいて、さまざまなレベルのアクセス(アクセスなし、読み取り専用、書き込みなど)を実装します。最小権限の原則に基づいて権限が割り当てられていることを確認します。ユーザーには、ロール アクティビティの実行に必要な最小限の権限のみを付与する必要があります。
  • 暗号化、安全な境界、データ移動の制限などの対策を実装します。これらの対策は、データの引き出しとデータ損失の防止に役立ちます。
  • ML トレーニング システムのデータ汚染を防ぎます。

AI パイプラインの安全性を確保し、改ざんに対して堅牢性を維持する

AI コードと ML コード、コード定義パイプラインは重要なアセットです。保護されていないコードは改ざんされる可能性があり、データ漏洩、コンプライアンス違反、重要なビジネス アクティビティの中断につながる可能性があります。AI コードと ML コードを安全に保つことは、モデルとモデル出力の完全性と価値を確保するのに役立ちます。

以下の推奨事項を参考にしてください。

  • モデルの開発中に、依存関係管理、入力検証、サニタイズなどの安全なコーディング手法を使用して、脆弱性を防ぎます。
  • パイプライン コードとモデル アーティファクト(ファイル、モデル重み、デプロイ仕様など)を不正アクセスから保護します。ユーザーのロールとニーズに基づいて、アーティファクトごとに異なるアクセスレベルを実装します。
  • アセットとパイプラインの実行のリネージとトラッキングを適用します。この適用により、コンプライアンス要件を満たし、本番環境システムへの侵害を回避できます。

安全なツールとアーティファクトを使用して安全なシステムにデプロイする

コードとモデルが、環境にデプロイされたツールとアーティファクトの保護が保証された堅牢なアクセス制御システムが実装されている安全な環境で実行されるようにします。

以下の推奨事項を参考にしてください。

  • 適切なアクセス制御が適用され、不正使用や不正操作から保護されている安全な環境でモデルをトレーニングしてデプロイします。
  • モデルやソフトウェア パッケージなどの AI 固有のアーティファクトについては、標準のソフトウェア アーティファクトのためのサプライチェーン レベル(SLSA)ガイドラインに従います。
  • AI ワークロード用に特別に設計された、検証済みのビルド済みコンテナ イメージを使用することをおすすめします。

入力を保護してモニタリングする

AI システムは、予測、コンテンツの生成、アクションの自動化を行うために入力を必要とします。一部の入力はリスクをもたらす可能性があり、攻撃ベクトルとして使用される可能性があります。こうした入力を検出し、サニタイズする必要があります。悪意のある入力を早期に検出すると、AI システムの安全性を確保し、意図したとおりに動作させることができます。

以下の推奨事項を参考にしてください。

  • 生成 AI システムのプロンプトを開発、管理するための安全な手法を導入し、悪意のあるプロンプトが使用されないようにします。
  • 予測システムまたは生成システムへの入力をモニタリングして、エンドポイントの過負荷や、システムが処理するように設計されていないプロンプトなどの問題を防ぎます。
  • デプロイされたシステムを、意図したユーザーのみが使用できるようにします。

出力のモニタリング、評価、対応の準備

AI システムは、人間の意思決定を補完、最適化、自動化する出力を生成するため、その価値があります。AI システムとアプリケーションの完全性と信頼性を維持するには、出力が安全で、想定されるパラメータ内にあることを確認する必要があります。また、インシデントに対応するための計画も必要です。

以下の推奨事項を参考にしてください。

  • 本番環境で AI モデルと ML モデルの出力をモニタリングし、パフォーマンス、セキュリティ、コンプライアンスに関する問題を特定します。
  • 予測モデルで範囲外の生成レスポンスを特定したり、極端な出力を特定するなど、堅牢な指標とセキュリティ対策を実装し、モデルのパフォーマンスを評価します。モデルのパフォーマンスに関するユーザー フィードバックを収集します。
  • 潜在的な問題に対処するために、堅牢なアラートおよびインシデント対応手順を実装します。

寄稿者

著者:

  • Kamilla Kurta | 生成 AI / ML スペシャリスト カスタマー エンジニア
  • Filipe Gracio 博士 | カスタマー エンジニア、AI/ML スペシャリスト
  • Mohamed Fawzi | ベネルクス セキュリティ / コンプライアンス リード

その他の寄稿者:

  • Daniel Lees | クラウド セキュリティ アーキテクト
  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Marwan Al Shawi | パートナー カスタマー エンジニア
  • Wade Holmes | グローバル ソリューション ディレクター

AI と ML の視点: 信頼性

Google Cloud Well-Architected Framework: AI と ML の視点のこのドキュメントでは、 Google Cloudで信頼性の高い AI システムと ML システムを設計して運用するための原則と推奨事項の概要について説明します。高度な信頼性プラクティスとオブザーバビリティをアーキテクチャ ブループリントに統合する方法について説明します。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework の信頼性の柱に沿っています。

AI と ML の状況が急速に変化する中、顧客満足度を確保し、ビジネス目標を達成するには、信頼性の高いシステムが不可欠です。予測 ML と生成 AI の両方の独自のニーズを満たすには、堅牢で信頼性が高く、適応性のある AI システムと ML システムが必要です。開発からデプロイ、継続的な改善まで、MLOps の複雑さを処理するには、信頼性を重視したアプローチを使用する必要があります。 Google Cloud は、サイト信頼性エンジニアリング(SRE)の原則に沿って構築された専用の AI インフラストラクチャを提供し、信頼性の高い AI システムと ML システムの強力な基盤を提供します。

この記事の推奨事項は、次の基本原則にマッピングされています。

ML インフラストラクチャがスケーラブルで可用性が高いことを確認する

クラウドで信頼性の高い AI システムと ML システムを実現するには、スケーラブルで可用性の高いインフラストラクチャが必要です。これらのシステムには、動的な需要、多様なリソースのニーズ、モデルの可用性に対する重要な依存関係があります。スケーラブルなアーキテクチャは、負荷の変動やデータ量または推論リクエストの変動に適応します。高可用性(HA)は、コンポーネント、ゾーン、リージョンのレベルで障害に対する復元力を確保するのに役立ちます。

スケーラブルで可用性の高い ML インフラストラクチャを構築するには、次の推奨事項を検討してください。

自動的かつ動的なスケーリング機能を実装する

AI と ML のワークロードは動的であり、データ到着率、トレーニング頻度、推論トラフィックの量に基づいて需要が変動します。自動的かつ動的なスケーリングにより、インフラストラクチャ リソースを需要の変動にシームレスに適応させることができます。ワークロードを効果的にスケーリングすると、ダウンタイムの防止、パフォーマンスの維持、費用の最適化に役立ちます。

AI / ML ワークロードを自動スケーリングするには、 Google Cloudで次のプロダクトと機能を使用します。

  • データ処理パイプライン: Dataflow でデータ パイプラインを作成します。Dataflow の水平自動スケーリング機能を使用するようにパイプラインを構成します。この機能は、CPU 使用率、パイプラインの並列処理、保留中のデータに基づいてワーカー インスタンスの数を動的に調整します。ジョブの起動時に、パイプライン オプションを使用して自動スケーリング パラメータを構成できます。
  • トレーニング ジョブ: Vertex AI カスタム トレーニングを使用して、トレーニング ジョブのスケーリングを自動化します。マシンタイプ、アクセラレータのタイプと数、ワーカープールの数などのワーカープールの仕様を定義できます。中断を許容できるジョブや、トレーニング コードでチェックポイントが実装されているジョブでは、Spot VM を使用してコストを削減できます。
  • オンライン推論: オンライン推論には、Vertex AI エンドポイントを使用します。自動スケーリングを有効にするには、最小レプリカ数と最大レプリカ数を構成します。HA 用に 2 つ以上のレプリカを指定します。Vertex AI は、トラフィックと構成された自動スケーリング指標(CPU 使用率やレプリカ使用率など)に基づいて、レプリカの数を自動的に調整します。
  • Google Kubernetes Engine のコンテナ化されたワークロード: ノードレベルと Pod レベルで自動スケーリングを構成します。クラスタ オートスケーラーノード自動プロビジョニングを構成して、CPU、メモリ、GPU、TPU などの保留中の Pod リソース リクエストに基づいてノード数を調整します。デプロイに HorizontalPodAutoscaler(HPA)を使用して、CPU やメモリ使用率などの指標に基づいてスケーリング ポリシーを定義します。また、GPU や TPU の使用率、1 秒あたりの予測リクエスト数など、AI と ML のカスタム指標に基づいてスケーリングすることもできます。
  • サーバーレス コンテナ化サービス: Cloud Run にサービスをデプロイし、コンテナ インスタンスの最小数と最大数を指定して自動スケーリングを構成します。ベスト プラクティスを使用して、アクセラレータ タイプを指定して GPU 対応インスタンスを自動スケーリングします。Cloud Run は、構成された最小値と最大値の間で、受信リクエストに基づいてインスタンスを自動的にスケーリングします。リクエストがない場合は、インスタンス数をゼロに効率的にスケーリングします。Cloud Run の自動リクエスト駆動型スケーリングを活用して、Vertex AI エージェントをデプロイし、Ollama を使用した量子化モデルvLLM を使用した LLM モデル推論Huggingface Text Generation Inference(TGI)などのサードパーティ ワークロードをデプロイできます。

HA とフォールト トレランスを考慮した設計

本番環境グレードの AI ワークロードと ML ワークロードでは、継続的な運用と障害に対する復元力を確保することが重要です。HA とフォールト トレランスを実装するには、 Google Cloudのアーキテクチャに冗長性とレプリケーションを組み込む必要があります。このアプローチにより、個々のコンポーネントの障害がシステム全体の障害を引き起こさないようにすることができます。

Google Cloudで重要な AI コンポーネントと ML コンポーネントの冗長性を実装します。リソースの冗長性を実装できるプロダクトと機能の例を次に示します。

  • 複数のゾーンに GKE リージョン クラスタをデプロイします。
  • Cloud Storage のマルチリージョン バケットまたはデュアルリージョン バケットを使用して、データセットとチェックポイントのデータ冗長性を確保します。
  • メタデータのグローバルに一貫性のある高可用性ストレージには、Spanner を使用します。
  • 運用データベース用に Cloud SQL リードレプリカを構成します。
  • 検索拡張生成(RAG)用のベクトル データベースが高可用性で、マルチゾーンまたはマルチリージョンであることを確認します。

リソースを事前に管理し、要件を予測する

リソースを効果的に管理することは、費用、パフォーマンス、信頼性を最適化するうえで重要です。AI と ML のワークロードは動的であり、GPU や TPU などの特殊なハードウェアに対する需要が高くなっています。そのため、事前対応型のリソース管理を適用し、リソースの可用性を確保することが重要です。

Cloud Monitoring の GPU や TPU の使用率とスループット率などの過去のモニタリング データと、Cloud Logging のログに基づいて容量を計画します。BigQuery または Looker Studio を使用してこのテレメトリー データを分析し、成長または新しいモデルに基づいて GPU の将来の需要を予測します。リソース使用パターンの分析と傾向の分析により、重要な専用アクセラレータが必要になるタイミングと場所を予測できます。

  • 厳格な負荷テストを実施して、容量の見積もりを検証します。Apache JMeterLoadView などのツールを使用して、サービングやパイプラインなどの AI サービスと ML サービスのトラフィックをシミュレートします。
  • ストレス下でのシステムの動作を分析します。
    • 本番環境でワークロードの需要が増加することを予測して対応するには、リソース要件を事前に特定します。レイテンシ、スループット、エラー、リソース使用率(特に GPU と TPU の使用率)をモニタリングします。必要に応じてリソース割り当てを増やします。
    • 生成 AI サービングの場合は、同時実行負荷が高い状態でテストし、アクセラレータの可用性がパフォーマンスを制限するレベルを特定します。
  • モデルクエリの継続的モニタリングを実施し、エージェントのプロアクティブなアラートを設定します。

リソースの可用性と取得可能性を最適化する

ワークロードの要件に基づいて適切なコンピューティング リソースを戦略的に選択することで、コストを最適化し、リソースの可用性を確保します。

  • 安定した 24 時間 365 日の推論や、容量要件が固定または予測可能なトレーニング ワークロードには、VM とアクセラレータに確約利用割引(CUD)を使用します。
  • GKE ノードと Compute Engine VM の場合は、スポット VM と Dynamic Workload Scheduler(DWS)機能を使用します。

    • 評価や試験運用などのフォールト トレラントなタスクには、Spot VM を使用します。Spot VM はプリエンプトされる可能性がありますが、全体的なコストの削減に役立ちます。
    • 需要の高いアクセラレータのプリエンプション リスクを管理するには、DWS を使用して入手可能性を高めることができます。
      • 最大 7 日間の実行にハイエンド GPU が必要な複雑なバッチ トレーニングには、DWS Flex-Start モードを使用します。
      • 最大 3 か月間実行される長時間実行ワークロードの場合は、カレンダー モードを使用して特定の GPU(H100 と H200)と TPU(Trillium)を予約します。
  • GKE で AI 推論を最適化するには、TPU と GPU を動的に使用して、容量とパフォーマンスのニーズの変動に対応する vLLM エンジンを実行します。詳細については、vLLM GPU/TPU の代替性をご覧ください。

  • アクセラレータを含む複雑なリソースとトポロジのニーズがある高度なシナリオでは、ツールを使用してリソース管理を抽象化します。

    • Cluster Director を使用すると、マルチ GPU トレーニング(A3 Ultra H200 と A4 B200)のコロケーションとスケジューリングを使用してアクセラレータ グループをデプロイして管理できます。Cluster Director は GKE クラスタと Slurm クラスタをサポートしています。
    • Ray on Vertex AI は、分散コンピューティング インフラストラクチャを抽象化します。これにより、アプリケーションは VM とコンテナを直接管理することなく、トレーニングとサービングのリソースをリクエストできます。

受信トラフィックを複数のインスタンスに分散する

需要が変動する AI アプリケーションでは、効果的なロード バランシングが不可欠です。ロード バランシングは、トラフィックを分散し、リソース使用率を最適化し、HA と低レイテンシを実現して、シームレスなユーザー エクスペリエンスを確保します。

  • リソースのニーズが変化する推論: モデル指標に基づいてロード バランシングを実装します。GKE Inference Gateway を使用すると、モデル対応のルーティングを使用して、ロードバランサの背後にモデルをデプロイできます。ゲートウェイは、生成 AI や LLM 推論などのコンピューティング負荷の高いタスクに対して、GPU と TPU アクセラレータを備えたインスタンスを優先します。詳細なヘルスチェックを構成して、モデルのステータスを評価します。LLM 指標には vLLM や Triton などのサービング フレームワークを使用し、Google Cloud Managed Service for Prometheus を使用して、指標を Cloud Monitoring に統合します。
  • GPU または TPU を必要とする推論ワークロード: GPU と TPU の可用性が制限されている場合など、重要な AI と ML の推論ワークロードがワークロードの要件に適したマシンで一貫して実行されるようにするには、GKE カスタム コンピューティング クラスを使用します。自動スケーリングのフォールバック ポリシーを使用して、特定のコンピューティング プロファイルを定義できます。たとえば、予約済みの GPU インスタンスまたは TPU インスタンスの優先度を高めるプロファイルを定義できます。プロファイルには、予約済みリソースが一時的に使用できない場合に費用対効果の高い Spot VM を使用するフォールバックを含めることができます。
  • 多様なオーケストレーション プラットフォームでの生成 AI: 一元化されたロードバランサを使用します。たとえば、費用と管理の効率性を高めるために、GPU のニーズが低いリクエストを Cloud Run に転送し、より複雑で GPU を多用するタスクを GKE に転送できます。サービス間の通信とポリシー管理には、Cloud Service Mesh を使用してサービス メッシュを実装します。Cloud Logging と Cloud Monitoring を使用して、一貫したロギングとモニタリングを確保します。
  • グローバル ロード分散: レイテンシの低いグローバル ユーザーからのトラフィックをロードバランスするには、グローバル外部アプリケーション ロードバランサを使用します。最も近いリージョンに位置情報ルーティングを構成し、フェイルオーバーを実装します。Vertex AI または GKE でリージョン エンドポイントのレプリケーションを確立します。静的アセット用に Cloud CDN を構成します。Cloud Monitoring を使用して、グローバル トラフィックとレイテンシをモニタリングします。
  • きめ細かいトラフィック管理: さまざまなデータ型や複雑さを持つリクエスト、長時間実行されるリクエストについては、きめ細かいトラフィック管理を実装します。
    • コンテンツ ベースのルーティングを構成して、URL パスやヘッダーなどの属性に基づいて、リクエストを専用のバックエンドに転送します。たとえば、画像モデルまたは動画モデルのリクエストを GPU 対応のバックエンドに転送し、テキストベースのモデルのリクエストを CPU 最適化バックエンドに転送します。
    • 長時間実行される生成 AI リクエストまたはバッチ ワークロードには、WebSocket または gRPC を使用します。トラフィック管理を実装して、タイムアウトとバッファリングを処理します。API Gateway または Apigee を使用して、リクエストのタイムアウトと再試行を構成し、レート制限と割り当てを実装します。

モジュール型で疎結合のアーキテクチャを使用する

モジュール式の疎結合 AI / ML アーキテクチャでは、複雑なシステムが、明確に定義されたインターフェースを介して相互作用する、より小さな自己完結型のコンポーネントに分割されます。このアーキテクチャでは、モジュールの依存関係が最小限に抑えられ、開発とテストが簡素化され、再現性が向上し、障害を封じ込めることでフォールト トレランスが向上します。モジュール式のアプローチは、複雑さを管理し、イノベーションを加速し、長期的な保守性を確保するために不可欠です。

AI ワークロードと ML ワークロードのモジュラーで疎結合のアーキテクチャを設計するには、次の推奨事項を検討してください。

自己完結型の小さなモジュールまたはコンポーネントを実装する

エンドツーエンドの AI および ML システムを、小さく自己完結型のモジュールまたはコンポーネントに分割します。各モジュールまたはコンポーネントは、データの取り込み、特徴変換、モデル トレーニング、推論サービング、評価などの特定の機能を担当します。モジュール設計には、AI システムと ML システムの保守性の向上、スケーラビリティの向上、再利用性、柔軟性とアジリティの向上など、いくつかの重要なメリットがあります。

以降のセクションでは、AI システムと ML システムのモジュラー アーキテクチャの設計に使用できる Google Cloud プロダクト、機能、ツールについて説明します。

GKE 上のコンテナ化されたマイクロサービス

複雑な AI システムや ML システム、またはきめ細かいオーケストレーションが必要な複雑な生成 AI パイプラインの場合は、GKE を使用してオーケストレートされるマイクロサービスとしてモジュールを実装します。個別のステージを Docker コンテナ内の個々のマイクロサービスとしてパッケージ化します。これらの個別のステージには、さまざまな形式に合わせて調整されたデータ取り込み、特殊なデータ前処理または特徴エンジニアリング、大規模な基盤モデルの分散モデル トレーニングまたはファインチューニング、評価、サービングなどがあります。

コンテナ化されたマイクロサービスを GKE にデプロイし、CPU とメモリの使用率または GPU 使用率などのカスタム指標に基づく自動スケーリング、ローリング アップデート、YAML マニフェストの再現可能な構成を活用します。GKE サービス ディスカバリを使用して、マイクロサービス間の効率的な通信を確保します。非同期パターンには、Pub/Sub などのメッセージ キューを使用します。

GKE 上のマイクロサービス アプローチは、ステージを個別のサービスとして設計できる複雑な RAG アプリケーションなどのタスク向けに、スケーラブルで復元力のあるプラットフォームを構築するのに役立ちます。

サーバーレス イベント ドリブン サービス

サーバーレスの自動スケーリングのメリットを活かせるイベント ドリブン タスクには、Cloud Run または Cloud Run 関数を使用します。これらのサービスは、前処理などの非同期タスクや、小規模な推論ジョブに最適です。Cloud Storage で作成された新しいデータファイルや、Artifact Registry でのモデルの更新などのイベントで Cloud Run functions をトリガーします。コンテナ環境を必要とするウェブフック タスクまたはサービスには、Cloud Run を使用します。

Cloud Run サービスと Cloud Run functions は、迅速にスケールアップし、ゼロにスケールダウンできるため、変動するワークロードの費用対効果を確保できます。これらのサービスは、Vertex AI Agents ワークフローのモジュラー コンポーネントに適しています。コンポーネント シーケンスは、Workflows または Application Integration でオーケストレートできます。

Vertex AI マネージド サービス

Vertex AI サービスはモジュール性をサポートしており、AI システムと ML システムの開発とデプロイを簡素化できます。これらのサービスはインフラストラクチャの複雑さを抽象化するため、デベロッパーはアプリケーション ロジックに集中できます。

  • モジュール式のステップから構築されたワークフローをオーケストレートするには、Vertex AI Pipelines を使用します。
  • カスタム AI コードと ML コードを実行するには、Vertex AI カスタム トレーニングや Vertex AI 予測などのマネージド サービスで実行できる Docker コンテナにコードをパッケージ化します。
  • モジュラー特徴量エンジニアリング パイプラインには、Vertex AI Feature Store を使用します。
  • モジュール式の探索とプロトタイピングには、Vertex AI WorkbenchColab Enterprise などのノートブック環境を使用します。コードを再利用可能な関数、クラス、スクリプトに整理します。

エージェント アプリケーション

AI エージェントの場合、エージェント開発キット(ADK)は、ツール状態などのモジュラー機能を提供します。LangChainLangGraphLlamaIndex、Vertex AI などのフレームワーク間の相互運用性を実現するには、ADK を Agent2Agent(A2A)プロトコルModel Context Protocol(MCP)と組み合わせます。この相互運用性により、さまざまなコンポーネントを使用してエージェント ワークフローを作成できます。

エージェントは、スケーラブルなエージェントのデプロイ用に最適化されたマネージド ランタイムである Vertex AI Agent Engine にデプロイできます。コンテナ化されたエージェントを実行するには、Cloud Run の自動スケーリング機能を利用できます。

明確に定義されたインターフェースを設計する

堅牢で保守可能なソフトウェア システムを構築するには、システムのコンポーネントが疎結合でモジュール化されていることを確認することが重要です。このアプローチは、システムのさまざまな部分間の依存関係を最小限に抑えるため、大きなメリットがあります。モジュール間の結合度が低い場合、1 つのモジュールの変更が他のモジュールに与える影響は最小限に抑えられます。この分離により、個々のモジュールで独立した更新と開発ワークフローが可能になります。

以降のセクションでは、AI システムと ML システムのモジュール間のシームレスな通信と統合を確保するためのガイダンスを提供します。

プロトコルの選択

  • ユニバーサル アクセスを実現するには、HTTP API を使用し、RESTful の原則に準拠し、言語に依存しないデータ交換に JSON を使用します。リソースに対するアクションを表すように API エンドポイントを設計します。
  • マイクロサービス間の高性能な内部通信には、効率的なシリアル化と厳密な型指定のために、 Protocol Buffers(ProtoBuf)gRPC を使用します。.proto ファイルを使用して ModelInput、PredictionResult、ADK Tool データなどのデータ構造を定義し、言語バインディングを生成します。
  • パフォーマンスが重要なユースケースでは、大規模なデータセットや、ライブのテキスト読み上げや動画アプリケーションなどの継続的なフローに gRPC ストリーミングを活用します。GKE に gRPC サービスをデプロイします。

標準化された包括的なドキュメント

選択するインターフェース プロトコルに関係なく、標準化されたドキュメントが重要です。OpenAPI 仕様では、RESTful API について説明します。OpenAPI を使用して、AI API と ML API のパス、メソッド、パラメータ、JSON スキーマにリンクされたリクエストとレスポンスの形式、セキュリティを文書化します。包括的な API ドキュメントは、検出可能性とクライアント統合の向上に役立ちます。API の作成と可視化には、Swagger Editor などの UI ツールを使用します。開発を加速し、一貫性を確保するには、Gemini Code Assist などの AI を活用したコーディング ツールを使用して、クライアント SDK とサーバー スタブを生成します。OpenAPI ドキュメントを CI/CD フローに統合します。

Vertex AI などの Google Cloud マネージド サービスとのやり取り

開発の生産性を高めるために推奨される Vertex AI SDK の高い抽象化と、REST API が提供するきめ細かい制御のどちらかを選択します。

  • Vertex AI SDK は、タスクと認証を簡素化します。Vertex AI とのやり取りが必要な場合は、SDK を使用します。
  • REST API は、特にシステムのレイヤ間で相互運用性が必要な場合に、強力な代替手段となります。これは、SDK がない言語のツールや、きめ細かい制御が必要な場合に便利です。

API を使用してモジュールを分離し、実装の詳細を抽象化する

セキュリティ、スケーラビリティ、可視性を確保するには、AI サービスと ML サービスに堅牢な API 管理を実装することが重要です。定義したインターフェースに API 管理を実装するには、次のプロダクトを使用します。

  • API Gateway: 外部に公開され、管理されている API の場合、API Gateway は一元化された安全なエントリ ポイントを提供します。予測、トレーニング、データ API などのサーバーレス バックエンド サービスへのアクセスが簡素化されます。API Gateway は、アクセス ポイントの統合、API コントラクトの適用、API キーや OAuth 2.0 などのセキュリティ機能の管理に役立ちます。バックエンドを過負荷から保護し、信頼性を確保するには、API Gateway でレート制限と使用割り当てを実装します。
  • Cloud Endpoints: GKE と Cloud Run での API の開発とデプロイを効率化するには、Cloud Endpoints を使用します。Cloud Endpoints は、API キーを生成するための開発者向けのソリューションを提供します。また、API 呼び出しの統合モニタリングとトレースも提供し、OpenAPI 仕様の生成を自動化することで、ドキュメントとクライアント統合を簡素化します。Cloud Endpoints を使用すると、内部または制御された AI API や ML API へのアクセスを管理できます。たとえば、トレーニングをトリガーしたり、特徴ストアを管理したりできます。
  • Apigee: エンタープライズ規模の AI と ML(特に高度な生成 AI API)の場合、Apigee は高度で包括的な API 管理を提供します。Apigee は、脅威保護や OAuth 2.0 などの高度なセキュリティ、キャッシュ保存、割り当て、メディエーションなどのトラフィック管理、分析に使用します。Apigee は、生成 AI API の使用状況を把握するうえで重要な、API の使用パターン、パフォーマンス、エンゲージメントに関する詳細な分析情報を取得するのに役立ちます。

グレースフル デグラデーションを計画する

本番環境の AI システムと ML システムでは、他のシステムと同様に、コンポーネントの障害は避けられません。グレースフル デグラデーションにより、パフォーマンスが低下する可能性はありますが、重要な機能は引き続き動作します。このアプローチにより、完全な停止を防ぎ、全体的な可用性を向上させることができます。グレースフル デグラデーションは、レイテンシの影響を受けやすい推論、分散トレーニング、生成 AI に不可欠です。

以降のセクションでは、グレースフル デグラデーションを計画して実装するために使用する手法について説明します。

障害の分離

  • 分散アーキテクチャで障害のあるコンポーネントを分離するには、Java の Resilience4j や Python の CircuitBreaker などの復元ライブラリを使用して、サーキット ブレーカー パターンを実装します。
  • 障害の連鎖を防ぐには、エラー率やレイテンシなどの AI と ML のワークロード指標に基づいてしきい値を構成し、よりシンプルなモデルやキャッシュに保存されたデータなどのフォールバックを定義します。

コンポーネントの冗長性

重要なコンポーネントについては、冗長性と自動フェイルオーバーを実装します。たとえば、GKE マルチゾーン クラスタまたはリージョン クラスタを使用して、Cloud Run サービスを複数のリージョンに冗長的にデプロイします。異常なインスタンスが検出されたときに正常なインスタンスにトラフィックを転送するには、Cloud Load Balancing を使用します。

Cloud Storage マルチリージョン バケットを使用して、データの冗長性を確保します。分散トレーニングでは、非同期チェックポイントを実装して、障害後に再開します。復元力と伸縮性のあるトレーニングには、Pathways を使用します。Pathways

プロアクティブなモニタリング

グレースフル デグラデーションは障害発生時のシステムの可用性を確保するのに役立ちますが、継続的なヘルスチェックと包括的なモニタリングのための事前対応策も実装する必要があります。レイテンシ、スループット、GPU 使用率など、AI と ML に固有の指標を収集します。また、Cloud Monitoring と Vertex AI Model Monitoring を使用して、モデルとデータのドリフトなどのモデル パフォーマンスの低下指標を収集します。

ヘルスチェックにより、障害のあるノードの交換、容量の追加デプロイ、更新されたデータを使用するパイプラインの継続的再トレーニングまたはファインチューニングの自動トリガーが必要になることがあります。この予防的なアプローチは、精度に基づく劣化とシステムレベルのグレースフル デグラデーションの両方を防ぎ、全体的な信頼性を高めるのに役立ちます。

SRE プラクティス

システムの健全性をモニタリングするには、SRE プラクティスを採用してサービスレベル目標(SLO)を実装することを検討してください。エラー バジェットの損失とバーンレートに関するアラートは、システムの信頼性の問題の早期の兆候となる可能性があります。SRE プラクティスの詳細については、Google SRE ブックをご覧ください。

自動化されたエンドツーエンドの MLOps プラットフォームを構築する

Google Cloudの堅牢でスケーラブルかつ信頼性の高い AI / ML システムには、モデル開発ライフサイクルの自動化されたエンドツーエンドの MLOps プラットフォームが必要です。開発ライフサイクルには、初期のデータ処理、継続的なモデルのトレーニング、デプロイ、本番環境でのモニタリングが含まれます。 Google Cloudでこれらのステージを自動化すると、再現可能なプロセスが確立され、手作業による負担が軽減され、エラーが最小限に抑えられ、イノベーションのペースが加速します。

自動化された MLOps プラットフォームは、アプリケーションの信頼性を本番環境レベルで確立するために不可欠です。自動化は、モデルの品質を確保し、再現性を保証し、AI と ML のアーティファクトの継続的インテグレーションとデリバリーを可能にするのに役立ちます。

自動化されたエンドツーエンドの MLOps プラットフォームを構築するには、次の推奨事項を検討してください。

モデル開発ライフサイクルを自動化する

自動化された MLOps プラットフォームの重要な要素は、AI と ML のワークフロー全体を、データ準備と検証からモデルのトレーニング、評価、デプロイ、モニタリングまで、一連の接続された自動化されたステップとしてオーケストレートすることです。

  • Vertex AI Pipelines を中央オーケストレーターとして使用します。
    • データ処理、トレーニング、評価、デプロイ用のモジュラー コンポーネントを使用して、エンドツーエンドのワークフローを定義します。
    • スケジュールや、新しいデータやコードの変更などのトリガーを使用して、パイプラインの実行を自動化します。
    • 各パイプライン実行の自動パラメータ化とバージョン管理を実装し、バージョン履歴を作成します。
    • 組み込みのロギングとトレースを使用してパイプラインの進行状況とリソース使用率をモニタリングし、Cloud Monitoring アラートと統合します。
  • Kubeflow Pipelines(KFP)SDK または TensorFlow Extended SDK を使用して、ML パイプラインをプログラムで定義します。詳細については、Vertex AI Pipelines のインターフェースをご覧ください。
  • DataflowVertex AI カスタム トレーニングVertex AI Model Registry、Vertex AI エンドポイントなどの Google Cloud サービスを使用してオペレーションをオーケストレートします。
  • 生成 AI ワークフローでは、プロンプト管理、バッチ推論、人間参加型(HITL)評価、ADK コンポーネントの調整の手順をオーケストレートします。

Infrastructure as Code の管理

Infrastructure as Code(IaC)は、AI システムと ML システムのインフラストラクチャを管理し、再現可能でスケーラブルで保守可能なデプロイを実現するために不可欠です。AI システムと ML システムのインフラストラクチャのニーズは動的で複雑です。多くの場合、システムには GPU や TPU などの特殊なハードウェアが必要です。IaC は、一貫性を確保し、ロールバックを可能にし、デプロイを再現可能にすることで、手動のインフラストラクチャ管理のリスクを軽減します。

インフラストラクチャ リソースをコードとして効果的に管理するには、次の手法を使用します。

リソースのプロビジョニングを自動化する

Google Cloudで IaC を効果的に管理するには、Terraform を使用して AI と ML のインフラストラクチャ リソースを定義してプロビジョニングします。インフラストラクチャには、次のようなリソースが含まれる場合があります。

  • ノードプールで構成された GKE クラスタ。ノードプールは、ワークロードの要件に基づいて最適化できます。たとえば、トレーニングに A100、H100、H200、B200 GPU を使用し、推論に L4 GPU を使用できます。
  • モデル サービング用に構成され、マシンタイプとスケーリング ポリシーが定義されている Vertex AI エンドポイント
  • データとアーティファクト用の Cloud Storage バケット

構成テンプレートを使用する

Terraform 構成をモジュラー テンプレートとして整理します。AI リソースと ML リソースのプロビジョニングを高速化するには、Cluster Toolkit を使用します。このツールキットには、ブループリントの例が用意されています。これは、Slurm または GKE で HPC、AI、ML のすぐに使用できるクラスタをデプロイするために使用できる、Google が厳選した Terraform テンプレートです。Terraform コードをカスタマイズして、バージョン管理システムで管理できます。リソースのプロビジョニングと更新のワークフローを自動化するには、Cloud Build を使用して、コードを CI/CD パイプラインに統合します。

構成変更を自動化する

インフラストラクチャをプロビジョニングしたら、継続的な構成変更を宣言的に管理します。

  • Kubernetes 中心の環境では、Config Connector を使用して Google Cloudリソースを Kubernetes オブジェクトとして管理します。
  • YAML マニフェストを使用して、データセット、モデル、エンドポイントなどの Vertex AI リソース、Cloud SQL インスタンス、Pub/Sub トピック、Cloud Storage バケットを定義して管理します。
  • マニフェストを GKE クラスタにデプロイして、アプリケーションとインフラストラクチャの構成を統合します。
  • CI/CD パイプラインを使用して構成の更新を自動化し、テンプレートを使用して環境の違いを処理します。
  • IaC を使用して、Identity and Access Management(IAM)ポリシーとサービス アカウントの構成を実装します。

CI/CD と統合する

  • Cloud BuildInfrastructure Manager などのツールを使用して IaC を CI/CD パイプラインに統合し、 Google Cloud インフラストラクチャ リソースのライフサイクルを自動化します。
  • コード commit の自動更新のトリガーを定義します。
  • パイプライン内に自動テストと検証を実装します。たとえば、Terraform の validate コマンドと plan コマンドを自動的に実行するスクリプトを作成できます。
  • 構成をアーティファクトとして保存し、バージョニングを有効にします。
  • バージョン管理で個別の構成を使用して、開発、ステージング、本番環境などの個別の環境を定義し、環境の昇格を自動化します。

モデルの動作を検証する

モデルの精度と関連性を維持するには、MLOps プラットフォーム内でトレーニングと評価のプロセスを自動化します。この自動化と厳格な検証により、モデルが本番環境にデプロイされる前に、関連データで想定どおりに動作することが保証されます。

  • 新しいデータや、データドリフトなどのモニタリング シグナルによってトリガーされるか、スケジュールで実行される継続的トレーニング パイプラインを設定します。
    • ハイパーパラメータ チューニング トライアルや、大規模モデルの分散トレーニング構成などの自動トレーニング ジョブを管理するには、Vertex AI カスタム トレーニングを使用します。
    • 基盤モデルをファインチューニングする場合は、ファインチューニング プロセスを自動化し、ジョブをパイプラインに統合します。
  • 自動モデル バージョニングを実装し、トレーニングが正常に実行されるたびに、トレーニング済みモデル アーティファクトを安全に保存します。アーティファクトは Cloud Storage に保存するか、モデル登録に登録できます。
  • 評価指標を定義し、最小精度、最大エラー率、最小 F1 スコアなどの明確なしきい値を設定します。
    • モデルが評価に自動的に合格し、デプロイの対象となるしきい値を満たしていることを確認します。
    • Vertex AI のモデル評価などのサービスを使用して、評価を自動化します。
    • 評価には、生成された出力の品質、事実の正確性、安全性の属性、指定されたスタイルや形式への準拠に固有の指標が含まれていることを確認します。
  • 各トレーニングと評価の実行のパラメータ、コード バージョン、データセット バージョン、結果を自動的にロギングして追跡するには、Vertex AI Experiments を使用します。このアプローチでは、比較、デバッグ、再現性に役立つ履歴が提供されます。
  • ハイパーパラメータ チューニングを最適化し、定義した目標に基づいて最適なモデル構成の検索を自動化するには、Vertex AI Vizier を使用します。
  • トレーニング指標を可視化し、開発中にデバッグするには、Vertex AI TensorBoard を使用します。

AI パイプラインと ML パイプラインの入出力を検証する

AI システムと ML システムの信頼性と完全性を確保するには、システムにデータが入力され、パイプラインを通過するときにデータを検証する必要があります。コンポーネント境界で入力と出力も検証する必要があります。すべての入力と出力(未加工データ、処理済みデータ、構成、引数、ファイル)の堅牢な検証は、予期しない動作を防ぎ、MLOps ライフサイクル全体でモデルの品質を維持するのに役立ちます。このプロアクティブなアプローチを MLOps プラットフォームに統合すると、エラーがシステム全体に伝播する前に検出できるため、時間とリソースを節約できます。

AI パイプラインと ML パイプラインの入出力を効果的に検証するには、次の手法を使用します。

データ検証を自動化する

  • TensorFlow Data Validation(TFDV)を使用して、データ取り込みパイプラインと前処理パイプラインで自動データ検証を実装します。
    • 大規模な SQL ベースのデータ品質チェックには、BigQuery などのスケーラブルな処理サービスを活用します。
    • ストリーミング データまたはバッチデータに対して複雑なプログラムによる検証を行う場合は、Dataflow を使用します。
  • TFDV の機能を使用して、データ分布を長期にわたってモニタリングします。
    • Cloud Monitoring と統合されたツールを使用して傾向を可視化し、データドリフトを検出します。データ パターンが大幅に変更されたときに、モデルの再トレーニング パイプラインを自動的にトリガーできます。
  • 検証結果と指標を BigQuery に保存して分析と履歴トラッキングを行い、検証アーティファクトを Cloud Storage にアーカイブします。

パイプライン構成と入力データを検証する

設定の誤りによるパイプラインの失敗や予期しない動作を防ぐには、すべてのパイプライン構成とコマンドライン引数に対して厳密な検証を実装します。

  • Python 用の jsonschema などのスキーマ検証ライブラリを使用して、YAML や JSON などの構成ファイルの明確なスキーマを定義します。パイプラインの実行が開始される前とコンポーネントが実行される前に、これらのスキーマに対して構成オブジェクトを検証します。
  • argparse などの引数解析ライブラリを使用して、すべてのコマンドライン引数とパイプライン パラメータの入力検証を実装します。検証では、正しいデータ型、有効な値、必須の引数を確認する必要があります。
  • Vertex AI Pipelines 内で、組み込みのコンポーネント入力検証機能を使用して、コンポーネント パラメータの想定される型とプロパティを定義します。
  • パイプライン実行の再現性を確保し、監査証跡を維持するには、検証済みのバージョン管理された構成ファイルを Cloud Storage または Artifact Registry に保存します。

入力ファイルと出力ファイルを検証する

データセット、モデル アーティファクト、評価レポートなどの入力ファイルと出力ファイルの整合性と形式の正しさを検証します。

  • ライブラリを使用して、CSV、Parquet、画像タイプなどのファイル形式を検証します。
  • 大きなファイルや重要なアーティファクトの場合は、Cloud Storage のデータ検証と変更検出を使用して、ファイルサイズとチェックサムを検証し、破損や転送の不完全性を検出します。
  • Cloud Run functions(ファイル アップロード イベントに基づくなど)または Dataflow パイプライン内でファイル検証を行います。
  • 検証結果を BigQuery に保存すると、取得と分析が容易になります。

デプロイを自動化し、継続的なモニタリングを実装する

本番環境のモデルの自動デプロイと継続的なモニタリングにより、信頼性を確保し、迅速な更新を実行し、問題を迅速に検出できます。これには、次のセクションで説明するように、モデル バージョンの管理、制御されたデプロイ、CI/CD を使用した自動デプロイ、包括的なモニタリングが含まれます。

モデル バージョンを管理する

バージョン管理ツールを使用して、モデルのイテレーションと関連するアーティファクトを管理します。

  • モデルのバージョンとメタデータを追跡し、基盤となるモデル アーティファクトにリンクするには、Model Registry を使用します。
  • 明確なバージョニング スキーム(セマンティック バージョニングなど)を実装します。モデル バージョンごとに、トレーニング パラメータ、検証パイプラインの評価指標、データセット バージョンなどの包括的なメタデータを関連付けます。
  • モデルファイル、事前トレーニング済みの重み、サービング コンテナ イメージなどのモデル アーティファクトを Artifact Registry に保存し、そのバージョン管理機能とタグ付け機能を使用します。
  • セキュリティとガバナンスの要件を満たすには、Model Registry と Artifact Registry に厳格なアクセス制御ポリシーを定義します。
  • バージョンをプログラムで登録して管理し、バージョンを自動化された CI/CD パイプラインに統合するには、Vertex AI SDK または API を使用します。

制御されたデプロイを実行する

サービング プラットフォームのトラフィック管理機能を使用して、モデル バージョンのエンドポイントへのデプロイを制御します。

  • Vertex AI エンドポイントのトラフィック分割機能を使用して、ローリング デプロイを実装します。
  • モデルを GKE にデプロイする場合は、カナリア デプロイなどの高度なトラフィック管理手法を使用します。
    1. 本番環境トラフィックの小さなサブセットを新しいモデル バージョンにルーティングします。
    2. 指標を使用して、パフォーマンスとエラー率を継続的にモニタリングします。
    3. モデルが信頼できることを確認します。
    4. すべてのトラフィックにバージョンをロールアウトします。
  • AI エージェントの A/B テストを実施します。
    1. 2 つの異なるモデル エージェント バージョンまたはまったく異なるモデルを同じエンドポイントにデプロイします。
    2. デプロイ間でトラフィックを分割します。
    3. ビジネス目標に照らして結果を分析します。
  • モニタリング アラートがトリガーされた場合や、パフォーマンスのしきい値を超えた場合に、エンドポイント トラフィックを以前の安定したモデル バージョンにすばやく戻すことができる自動ロールバック メカニズムを実装します。
  • Vertex AI SDK または API を使用して、トラフィック分割とデプロイ設定をプログラムで構成します。
  • Cloud Monitoring を使用して、バージョン間のパフォーマンスとトラフィックを追跡します。
  • CI/CD パイプラインを使用してデプロイを自動化します。Cloud Build を使用して、コンテナのビルド、アーティファクトのバージョン管理、Vertex AI エンドポイントへのデプロイのトリガーを行うことができます。
  • CI/CD パイプラインがバージョンを管理し、Artifact Registry から pull するようにします。
  • トラフィックを移行する前に、予測の正確性、レイテンシ、スループット、API 関数について自動エンドポイント テストを実施します。
  • すべての構成をバージョン管理に保存します。

継続的にモニタリングする

  • モデル モニタリングを使用して、パフォーマンスの低下、データドリフト(トレーニングと比較した入力分布の変化)、予測ドリフト(モデル出力の変化)を自動的に検出します。
    • しきい値とアラートを使用してドリフト検出ジョブを構成します。
    • リアルタイムのパフォーマンス(予測レイテンシ、スループット、エラー率)をモニタリングします。
  • ビジネス KPI の Cloud Monitoring でカスタム指標を定義します。
  • アラートとダッシュボード用に、モデル モニタリングの結果とカスタム指標を Cloud Monitoring と統合します。
  • メール、Slack、PagerDuty などの通知チャネルを構成し、自動修復を構成します。
  • 予測ログをデバッグするには、Cloud Logging を使用します。
  • モニタリングをインシデント管理と統合します。

生成 AI エンドポイントの場合は、毒性や一貫性などの出力特性をモニタリングします。

  • ドリフトのサービング特徴をモニタリングします。
  • きめ細かい予測検証を実装する: カスタム ロジックを使用して、出力が想定される範囲と形式に準拠していることを検証します。
  • 予測分布の変化をモニタリングします。
  • 出力スキーマを検証します。
  • 予期しない出力とシフトに対するアラートを構成します。
  • Pub/Sub を使用して、リアルタイムの検証イベントを追跡し、対応します。

包括的なモニタリングの出力が継続的なトレーニングにフィードバックされるようにします。

データとモデルのガバナンスを通じて信頼と制御を維持する

AI と ML の信頼性は、技術的な稼働時間だけではありません。これには、信頼性と堅牢なデータとモデルのガバナンスが含まれます。AI の出力は、不正確、偏っている、古い可能性があります。このような問題は信頼を損ない、危害を及ぼす可能性があります。包括的なトレーサビリティ、強力なアクセス制御、自動検証、透明性の高いプラクティスにより、AI の出力が信頼性が高く、信頼でき、倫理基準を満たしていることを確認できます。

データとモデルのガバナンスを通じて信頼と制御を維持するには、次の推奨事項を検討してください。

トレーサビリティのためにデータカタログとモデルカタログを確立する

包括的な追跡、監査、AI アセットと ML アセットのリネージの把握を容易にするため、ライフサイクル全体にわたってデータとモデルのバージョンの堅牢な一元化された記録を維持します。信頼性の高いデータとモデルのカタログは、AI パイプラインと ML パイプラインで使用および生成されるすべてのアーティファクト(未加工のデータソースや処理済みのデータセットから、トレーニング済みのモデル バージョンやデプロイされたエンドポイントまで)の信頼できる唯一の情報源として機能します。

次のプロダクト、ツール、手法を使用して、データアセットのカタログを作成して維持します。

  • Dataplex Universal Catalog を使用して、データアセットの全社的なカタログを構築します。データアセットのインベントリを自動的に検出して作成するには、Dataplex Universal Catalog を BigQueryCloud StoragePub/Sub などのストレージ システムと統合します。
  • Cloud Storage のマルチリージョン バケットまたはデュアルリージョン バケットにデータを保存して、データの高可用性と耐久性を確保します。これらのバケットにアップロードするデータは、少なくとも 2 つの地理的に離れた場所に冗長的に保存されます。この冗長性により、リージョン単位での停止に対する組み込みの復元力が提供され、データの整合性を確保できます。
  • 関連するビジネス メタデータ、所有権情報、機密レベル、リネージの詳細を使用して、データセットにタグ付けとアノテーションを行います。たとえば、処理済みのデータセットをその未加工のソースと、データセットを作成したパイプラインにリンクします。
  • Model Registry を使用して、モデル バージョンの中央リポジトリを作成します。トレーニング済みモデルの各バージョンを登録し、関連するメタデータにリンクします。メタデータには次のものが含まれます。
    • トレーニング パラメータ。
    • 検証パイプラインの評価指標。
    • トレーニングに使用されたデータセットのバージョン。リネージは関連する Dataplex Universal Catalog エントリまで追跡されます。
    • データセットを生成したコードのバージョン。
    • 使用されたフレームワークまたは基盤モデルの詳細。
  • モデルを Model Registry にインポートする前に、モデルファイルや事前トレーニング済みの重みなどのモデル アーティファクトを Cloud Storage などのサービスに保存します。サービングまたはカスタム トレーニング ジョブ用のカスタム コンテナ イメージは、Artifact Registry などの安全なリポジトリに保存します。
  • データアセットとモデルアセットが作成または変更されたときに、それぞれのカタログに自動的に登録され、更新されるようにするには、MLOps パイプライン内に自動化されたプロセスを実装します。この包括的なカタログにより、元データから予測までのエンドツーエンドのトレーサビリティが実現し、特定のモデル バージョンや予測につながった入力とプロセスを監査できます。監査機能は、予期しない動作のデバッグ、データ使用ポリシーの遵守の確保、データやモデルの変更が時間の経過とともに与える影響の把握に不可欠です。
  • 生成 AI と基盤モデルの場合、カタログでは、使用される特定の基盤モデル、ファインチューニング パラメータ、生成された出力の品質と安全性に固有の評価結果に関する詳細も追跡する必要があります。

堅牢なアクセス制御と監査証跡を実装する

AI システムと ML システムの信頼性と制御を維持するには、機密データとモデルを不正アクセスから保護し、すべての変更に対する説明責任を確保することが不可欠です。

  • Google Cloudで、AI システムと ML システムのすべてのコンポーネントに厳格なアクセス制御を実装し、詳細な監査証跡を維持します。
  • AI リソースと ML リソースを操作するユーザー、グループ、サービス アカウントに対して、IAM できめ細かい権限を定義します。
  • 最小権限の原則を厳守します。
  • 特定のタスクに必要な最小限の権限のみを付与します。たとえば、トレーニング サービス アカウントにはトレーニング データに対する読み取りアクセス権とモデル アーティファクトに対する書き込みアクセス権が必要ですが、本番環境のサービング エンドポイントに対する書き込みアクセス権は必要ない場合があります。

AI システムと ML システムの関連するすべてのアセットとリソースに、次のものを含め、IAM ポリシーを一貫して適用します。

  • 機密データまたはモデル アーティファクトを含む Cloud Storage バケット。
  • BigQuery データセット。
  • モデル リポジトリ、エンドポイント、パイプライン、Feature Store リソースなどの Vertex AI リソース。
  • GKE クラスタや Cloud Run サービスなどのコンピューティング リソース。

監査とログを使用して、アクセス アクティビティをキャプチャ、モニタリング、分析します。

  • AI システムと ML システムで使用されるすべての Google Cloud サービスで Cloud Audit Logs を有効にします。
  • 監査ログを構成して、API 呼び出し、データアクセス イベント、リソースに対する構成変更に関する詳細情報をキャプチャします。ログをモニタリングして、不審なアクティビティ、不正なアクセス試行、重要なデータやモデルアセットに対する予期しない変更がないか確認します。
  • リアルタイムの分析、アラート、可視化を行うには、監査ログを Cloud Logging にストリーミングします。
  • 費用対効果の高い長期保存、遡及的なセキュリティ分析、コンプライアンス監査を行うには、ログを BigQuery にエクスポートします。
  • 一元化されたセキュリティ モニタリングを行うには、監査ログをセキュリティ情報およびイベント管理(SIEM)システムと統合します。アクセス ポリシーと監査証跡を定期的に見直して、ガバナンス要件に沿っていることを確認し、ポリシー違反の可能性を検出します。
  • トレーニングや推論用の個人情報(PII)などの機密データを処理するアプリケーションの場合は、パイプライン内またはデータ ストレージで Sensitive Data Protection チェックを使用します。
  • 生成 AI ソリューションとエージェント ソリューションでは、監査証跡を使用して、特定のモデルやツールにアクセスしたユーザー、ファインチューニングやプロンプトに使用されたデータ、本番環境エンドポイントに送信されたクエリを追跡します。監査証跡は説明責任を確保するのに役立ち、データの不正使用やポリシー違反を調査するための重要なデータを提供します。

バイアス、透明性、説明可能性に対処する

信頼できる AI / ML システムを構築するには、データとモデルに固有の潜在的なバイアスに対処し、システム動作の透明性を高め、モデル出力の説明可能性を提供する必要があります。信頼できるシステムを構築することは、機密性の高いドメインや、通常生成 AI アプリケーションで使用されるような複雑なモデルを使用する場合に特に重要です。

  • MLOps ライフサイクル全体でバイアスを特定して軽減するための事前対応型プラクティスを実装します。
  • さまざまなユーザー グループや機密属性にわたる特徴分布のスキューを検出するツールを使用して、トレーニング データのバイアスを分析します。
  • モデルの全体的なパフォーマンスと、事前定義されたデータ スライス全体のパフォーマンスを評価します。このような評価は、特定のサブグループに影響するパフォーマンスやバイアスの不均衡を特定するのに役立ちます。

モデルの透明性と説明可能性については、ユーザーとデベロッパーがモデルが特定の予測を行った理由や特定の出力を生成した理由を理解するのに役立つツールを使用します。

  • Vertex AI エンドポイントにデプロイされた表形式モデルの場合は、Vertex Explainable AI を使用して特徴アトリビューションを生成します。特徴アトリビューションは、予測に最も貢献した入力特徴を示します。
  • TensorBoard と統合された What-If ツールなどのモデルに依存しないツールを使用して、モデルの動作とデータセットの潜在的なバイアスをインタラクティブに探索します。
  • 説明可能性をモニタリング ダッシュボードに統合します。モデルの推論を理解することが信頼や意思決定に重要な状況では、アプリケーション インターフェースを通じてエンドユーザーに説明可能性データを直接提供します。
  • 生成 AI モデルで使用される LLM などの複雑なモデルの場合は、トレースログなどを使用して、エージェントが実行したプロセスを説明します。このようなモデルでは説明可能性を確保するのは比較的困難ですが、それでも重要です。
  • RAG アプリケーションでは、取得した情報の引用を提供します。プロンプト エンジニアリングなどの手法を使用して、モデルが説明を提供したり、推論手順を表示したりするように誘導することもできます。
  • 本番環境で継続的なモニタリングを実装して、バイアスや不公平さの出現を示す可能性があるモデルの動作や出力の変化を検出します。モデル レジストリのモデルのメタデータの一部として、モデルの制限事項、想定されるユースケース、既知の潜在的なバイアスを文書化します。

AI と ML のオブザーバビリティと信頼性の包括的なプラクティスを実装する

本番環境で複雑な AI システムと ML システムを管理するには、包括的なオブザーバビリティが不可欠です。また、複雑な AI システムや ML システム(特に生成 AI)の信頼性を測定するうえでも不可欠です。生成 AI は複雑でリソースを大量に消費し、予測不可能な出力を生成する可能性があるためです。包括的なオブザーバビリティでは、インフラストラクチャ、アプリケーション コード、データ、モデルの動作を観察して、問題の事前検出、診断、対応に関する分析情報を取得します。このオブザーバビリティは、最終的に高パフォーマンスで信頼性の高いシステムにつながります。包括的なオブザーバビリティを実現するには、次の操作を行う必要があります。

  • SRE の原則を採用します。
  • 明確な信頼性の目標を定義します。
  • システム レイヤ全体の指標を追跡します。
  • 可観測性から得られた分析情報を、継続的な改善とプロアクティブな管理に活用します。

Google Cloudで AI ワークロードと ML ワークロードの包括的なオブザーバビリティと信頼性のプラクティスを実装するには、次の推奨事項を検討してください。

信頼性の目標とビジネス指標を確立する

AI システムと ML システムが直接影響する重要業績評価指標(KPI)を特定します。KPI には、AI の推奨事項の影響を受けた収益、AI システムが予測または軽減した顧客の離反、生成 AI 機能によって促進されたユーザー エンゲージメントとコンバージョン率などが含まれます。

KPI ごとに、KPI に影響する対応する技術的な信頼性指標を定義します。たとえば、KPI が「会話型 AI アシスタントに対する顧客満足度」の場合、対応する信頼性指標には次のものがあります。

  • ユーザー リクエストの成功率。
  • レスポンスのレイテンシ: LLM の最初のトークンまでの時間(TTFT)とトークン ストリーミング。
  • 不適切な回答や有害な回答の割合。
  • エージェントがタスクを正常に完了した割合。

AI と ML のトレーニングの場合、信頼性指標には、モデルの FLOPS 使用率(MFU)、1 秒あたりのイテレーション数、1 秒あたりのトークン数、デバイスあたりのトークン数などがあります。

AI と ML の信頼性を効果的に測定して改善するには、まず、包括的なビジネス目標に沿った明確な信頼性目標を設定します。ユーザーの視点から AI サービスと ML サービスの許容可能な信頼性とパフォーマンスのレベルを定量化する SLO を定義して、SRE アプローチを採用します。これらの技術的な信頼性指標を特定の SLO 目標で定量化します。

SLO ターゲットの例を次に示します。

  • API 呼び出しの 99.9% は成功レスポンスを返す必要があります。
  • 95 パーセンタイルの推論レイテンシは 300 ミリ秒未満である必要があります。
  • リクエストの 99% で TTFT が 500 ミリ秒未満であること。
  • 有害な出力の割合は 0.1% 未満である必要があります。

SLO をビジネスニーズに直接合わせることで、信頼性の取り組みが、ユーザーとビジネスに影響する最も重要なシステム動作に集中します。このアプローチにより、信頼性を測定可能で実用的なエンジニアリング プロパティに変換できます。

インフラストラクチャとアプリケーションのパフォーマンスをモニタリングする

AI システムと ML システムで使用されるすべてのリソースのインフラストラクチャ指標を追跡します。指標には、プロセッサ使用率(CPU、GPU、TPU)、メモリ使用率、ネットワーク スループットとレイテンシ、ディスク I/O が含まれます。Vertex AI Training や Vertex AI Serving などのマネージド環境と、GKE ノードや Cloud Run インスタンスなどのセルフマネージド リソースの指標を追跡します。

AI アプリケーションと ML アプリケーションの4 つのゴールデン シグナルをモニタリングします。

  • レイテンシ: リクエストに応答するまでの時間。
  • トラフィック: リクエストまたはワークロードの量。
  • エラー率: 失敗したリクエストまたはオペレーションの割合。
  • 飽和度: CPU、メモリ、GPU、TPU アクセラレータなどの重要なリソースの使用率。システムが容量の上限にどのくらい近づいているかを示します。

次の手法を使用してモニタリングを行います。

  • Cloud Monitoring を使用して、インフラストラクチャとアプリケーションの指標を収集、保存、可視化します。 Google Cloud サービス用の事前構築済みダッシュボードを使用し、ワークロードの特定のパフォーマンス指標とインフラストラクチャの健全性に基づいてカスタマイズされたカスタム ダッシュボードを作成できます。
  • Cloud Logging を使用して、AI アプリケーションと ML アプリケーション、および基盤となるインフラストラクチャから詳細なログを収集します。これらのログは、トラブルシューティングとパフォーマンス分析に不可欠です。イベントとエラーに関するコンテキストを提供します。
  • Cloud Trace を使用して、レイテンシの問題を特定し、分散 AI と ML マイクロサービス全体のリクエスト フローを把握します。この機能は、複雑な Vertex AI エージェントのインタラクションやマルチコンポーネントの推論パイプラインをデバッグするうえで重要です。
  • Cloud Profiler を使用して、アプリケーション コードの関数ブロック内のパフォーマンスのボトルネックを特定します。パフォーマンスのボトルネックを特定すると、リソース使用量と実行時間を最適化できます。
  • NVIDIA Data Center GPU Manager(DCGM)などのツールを使用して、プロセスごとの GPU 使用率、プロセスごとのメモリ使用量、温度などのアクセラレータ関連の特定の指標を収集します。

データとモデルのオブザーバビリティを実装する

信頼性の高い生成 AI システムには、堅牢なデータとモデルのオブザーバビリティが必要です。これは、エンドツーエンドのパイプライン モニタリングから始まります。

  • Dataflow などのサービスを使用して、データ取り込み率、処理量、変換レイテンシを追跡します。
  • Vertex AI Pipelines で管理されているパイプラインなど、MLOps パイプライン内のジョブの成功率と失敗率をモニタリングします。

データ品質の継続的な評価は非常に重要です。

  • Dataplex Universal Catalog を使用してデータを管理、統制する:
    • グラウンド トゥルースに対する検証や外れ値検出率の追跡によって精度を評価します。
    • データの経過時間と更新頻度を SLA と比較して、更新頻度をモニタリングします。
    • null 値の割合と必須フィールドの入力率を追跡して、完全性を評価します。
    • スキーマ準拠と重複のチェックにより、有効性と一貫性を確保します。
  • Cloud Monitoring アラートを使用して異常をプロアクティブに検出し、明確なデータ リネージを通じてトレーサビリティを確保します。
  • RAG システムの場合は、取得したコンテキストの関連性と、回答のグラウンディング(ソースへの帰属)を調べます。
  • ベクトル データベース クエリのスループットをモニタリングします。

モデルのオブザーバビリティの主要な指標には、入出力トークン数や、ハルシネーションやクエリ解決の失敗などのモデル固有のエラー率が含まれます。これらの指標を追跡するには、モデル モニタリングを使用します。

  • 出力の有害性スコアとユーザー フィードバックの評価を継続的にモニタリングします。
  • Gen AI Evaluation Service を使用して、定義された基準に対するモデル出力の評価を自動化します。
  • 包括的なエラー率指標を使用して、データとコンセプトのドリフトを体系的にモニタリングすることで、パフォーマンスを維持します。

モデル指標を追跡するには、TensorBoard または MLflow を使用します。パフォーマンスの問題をトラブルシューティングするための詳細な分析とプロファイリングには、PyTorch XLA プロファイリングまたは NVIDIA Nsight を使用できます。

寄稿者

著者:

  • Rick(Rugui)Chen | AI インフラストラクチャ フィールド ソリューション アーキテクト
  • Stef Ruinard | 生成 AI フィールド ソリューション アーキテクト

その他の寄稿者:

  • Filipe Gracio 博士 | カスタマー エンジニア、AI/ML スペシャリスト
  • Hossein Sarshar | AI インフラストラクチャ フィールド ソリューション アーキテクト
  • Jose Andrade | カスタマー エンジニア、SRE スペシャリスト
  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Laura Hyatt | カスタマー エンジニア、FSI
  • AI インフラストラクチャ担当フィールド ソリューション アーキテクト | Olivier Martin
  • Radhika Kanakam | プログラム リーダー、Google Cloud Well-Architected Framework

AI と ML の視点: 費用の最適化

Well-Architected Framework: AI と ML の視点のこのドキュメントでは、ML ライフサイクル全体で AI システムの費用を最適化するための原則と推奨事項の概要について説明します。事前対応型で情報に基づいた費用管理アプローチを採用することで、組織は AI システムと ML システムの可能性を最大限に引き出し、財務規律を維持できます。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework の費用最適化の柱に沿っています。

AI と ML のシステムは、データから価値ある分析情報と予測機能を活用するのに役立ちます。たとえば、社内プロセスの摩擦を軽減したり、ユーザー エクスペリエンスを改善したり、より深い顧客分析情報を得たりできます。クラウドでは、AI ワークロードと ML ワークロードに多額の初期投資を行うことなく、膨大なリソースを利用し、迅速な費用対効果を実現できます。ビジネス価値を最大化し、支出をビジネス目標に合わせるには、費用の要因を理解して事前に最適化を行い、支出管理を設定して FinOps のベスト プラクティスを採用する必要があります。

この記事の推奨事項は、次の基本原則にマッピングされています。

費用と収益を定義して測定する

Google Cloudで AI と ML の費用を効果的に管理するには、クラウド リソースの費用と AI と ML のイニシアチブのビジネス価値を定義して測定する必要があります。費用を詳細に追跡できるように、 Google Cloud には次のような包括的な課金と費用管理ツールが用意されています。

  • Cloud Billing のレポートとテーブル
  • Looker Studio のダッシュボード、予算、アラート
  • Cloud Monitoring
  • Cloud Logging

リソースの割り当てと最適化について十分な情報に基づいて意思決定を行うには、次の推奨事項を検討してください。

ビジネス目標と KPI を設定する

AI プロジェクトと ML プロジェクトの技術的な選択を、ビジネス目標と重要業績評価指標(KPI)に合わせます。

戦略的目標と ROI 重視の KPI を定義する

AI プロジェクトと ML プロジェクトが、収益の増加、コスト削減、顧客満足度、効率などの戦略目標と一致していることを確認します。ビジネス上の優先事項を把握するために、関係者と連携します。具体的で、測定可能で、達成可能で、関連性が高く、期限がある(SMART)AI と ML の目標を定義します。たとえば、「AI チャットボットを使用して、6 か月以内にカスタマー サポートのチャット処理時間を 15% 短縮する」は SMART 目標です。

ビジネス目標を達成し、費用対効果(ROI)を測定するには、次のカテゴリの指標の KPI を定義します。

  • トレーニング、推論、ストレージ、ネットワーク リソースの費用。これには、特定の単位費用(推論、データポイント、タスクあたりの費用など)が含まれます。これらの指標は、効率と費用最適化の機会に関する分析情報を得るのに役立ちます。これらの費用は、Cloud Billing レポートCloud Monitoring ダッシュボードを使用して追跡できます。
  • 収益の増加、コスト削減、顧客満足度、効率、精度、導入などのビジネス価値指標。これらの指標は、BigQuery 分析Looker ダッシュボードを使用して追跡できます。
  • 次のような業界固有の指標。

    • 小売業界: 収益の伸びと解約を測定する
    • 医療業界: 患者の所要時間と患者のアウトカムを測定する
    • 金融業界: 不正行為の削減を測定する
  • プロジェクト固有の指標。これらの指標は、Vertex AI Experiments評価を使用して追跡できます。

    • 予測 AI: 精度と適合率を測定する
    • 生成 AI: 導入率、満足度、コンテンツの品質を測定する
    • コンピュータ ビジョン AI: 精度を測定する

コスト意識と継続的な最適化の文化を育む

FinOps の原則を採用して、各 AI プロジェクトと ML プロジェクトに推定費用を設定し、ライフサイクル全体で実際の費用を測定して追跡する方法を確保します。プロジェクトの費用とビジネス上のメリットに、明確な説明責任を持つオーナーが割り当てられていることを確認します。

詳細については、 Google Cloud Well-Architected Framework の費用最適化の柱にある費用意識の文化を育むをご覧ください。

イテレーションとフィードバックを通じて価値と継続的な最適化を推進する

AI アプリケーションと ML アプリケーションをビジネス目標に直接マッピングし、ROI を測定します。

費用対効果の仮説を検証するには、まず試験運用プロジェクトから始め、次の反復最適化サイクルを使用します。

  1. 継続的にモニタリングしてデータを分析する: KPI と費用をモニタリングして、偏差と最適化の機会を特定します。
  2. データドリブンな調整を行う: データ分析情報に基づいて、戦略、モデル、インフラストラクチャ、リソース割り当てを最適化します。
  3. 反復的に改善する: 学習したことや変化するビジネスニーズに基づいて、ビジネス目標と KPI を調整します。このイテレーションにより、関連性と戦略的整合性を維持できます。
  4. フィードバック ループを確立する: 関係者とパフォーマンス、費用、価値を確認し、継続的な最適化と将来のプロジェクト計画に役立てます。

Cloud Billing とラベルを使用して課金データを管理する

費用対効果の高い最適化を行うには、各費用要素のソースを把握する必要があります。このセクションの推奨事項は、 Google Cloudツールを使用して AI と ML の費用に関する詳細な分析情報を取得するのに役立ちます。また、費用を特定の AI / ML プロジェクト、チーム、アクティビティに関連付けることもできます。これらの分析情報は、費用最適化の基礎となります。

Google Cloud リソースを整理してラベル付けする

  • 組織構造と AI / ML ワークフローを反映した階層でプロジェクトとリソースを構成します。さまざまなレベルで費用を追跡して分析するには、組織、フォルダ、プロジェクトを使用して Google Cloud リソースを整理します。詳細については、 Google Cloud ランディング ゾーンのリソース階層を決定するをご覧ください。
  • リソースに意味のあるラベルを適用します。プロジェクト、チーム、環境、モデル名、データセット、ユースケース、パフォーマンス要件を示すラベルを使用できます。ラベルは、請求データに貴重なコンテキストを提供し、きめ細かい費用分析を可能にします。
  • すべての AI プロジェクトと ML プロジェクトで、ラベル付け規則の一貫性を維持します。一貫したラベル付け規則を使用すると、課金データが整理され、すぐに分析できるようになります。
  • 詳細な分析とレポート作成を容易にするには、請求データを BigQuery にエクスポートします。BigQuery には、課金データを分析して費用を把握できる強力なクエリ機能があります。
  • ラベル、プロジェクト、特定の期間で費用を集計するには、BigQuery でカスタム SQL クエリを作成します。このようなクエリを使用すると、モデルのトレーニング、ハイパーパラメータのチューニング、推論など、特定の AI アクティビティと ML アクティビティに費用を割り当てることができます。
  • 費用の異常や想定外の費用の急増を特定するには、BigQuery の分析機能を使用します。このアプローチは、AI ワークロードと ML ワークロードの潜在的な問題や非効率性を検出するのに役立ちます。
  • 予期しない費用を特定して管理するには、Cloud Billing の異常検出ダッシュボードを使用します。
  • リソース使用量に基づいて費用をさまざまなチームや部門に分配するには、 Google Cloudの費用配分機能を使用します。費用配分は、説明責任と透明性を高めます。
  • 支出パターンに関する分析情報を取得するには、事前構築済みの Cloud Billing レポートをご覧ください。これらのレポートをフィルタしてカスタマイズし、特定の AI プロジェクトや ML プロジェクトに焦点を当てることができます。

ダッシュボード、アラート、レポートを使用してリソースを継続的にモニタリングする

費用を追跡するためのスケーラブルで復元力のある方法を作成するには、継続的なモニタリングとレポートが必要です。ダッシュボード、アラート、レポートは、費用を効果的に追跡するための基盤となります。この基盤により、費用情報への継続的なアクセスを維持し、最適化の領域を特定し、ビジネス目標と費用の整合性を確保できます。

レポート システムを作成する

スケジュール設定されたレポートを作成し、適切な関係者と共有します。

Cloud Monitoring を使用して、アプリケーション、インフラストラクチャ、 Google Cloud サービス(Compute Engine、Google Kubernetes Engine(GKE)、Cloud Run functions など)を含むさまざまなソースから指標を収集します。指標とログをリアルタイムで可視化するには、事前構築済みの Cloud Monitoring ダッシュボードを使用するか、カスタム ダッシュボードを作成します。カスタム ダッシュボードを使用すると、モデルのパフォーマンス、API 呼び出し、ビジネスレベルの KPI など、システムの特定の側面を追跡する指標を定義して追加できます。

Cloud Logging を使用して、アプリケーション、システム、 Google Cloud サービスからログを一元的に収集して保存します。ログは次の目的で使用します。

  • CPU、メモリ、ストレージ、ネットワークなどのリソースの費用と使用率を追跡します。
  • オーバー プロビジョニング(リソースが十分に活用されていない場合)とアンダー プロビジョニング(リソースが不足している場合)のケースを特定します。オーバープロビジョニングは不要なコストにつながります。プロビジョニングが不足すると、トレーニング時間が長くなり、パフォーマンスの問題が発生する可能性があります。
  • VM や GPU などのアイドル状態または使用率が低いリソースを特定し、シャットダウンまたはサイズを適正化して費用を最適化します。
  • 費用の急増を特定して、リソース使用量や費用の急激な増加を検出します。

Looker または Looker Studio を使用して、インタラクティブなダッシュボードとレポートを作成します。ダッシュボードとレポートを、BigQuery や Cloud Monitoring などのさまざまなデータソースに接続します。

主要な KPI に基づいてアラートのしきい値を設定する

KPI について、アラートをトリガーするしきい値を決定します。意味のあるアラートのしきい値を設定すると、アラート疲れを回避できます。Cloud Monitoring でアラート ポリシーを作成して、KPI に関連する通知を受け取ります。たとえば、精度が特定のしきい値を下回った場合や、レイテンシが定義された上限を超えた場合に通知を受け取ることができます。ログデータに基づくアラートを使用すると、費用に関する潜在的な問題をリアルタイムで通知できます。このようなアラートにより、是正措置を迅速に講じて、さらなる金銭的損失を防ぐことができます。

リソース割り当てを最適化する

Google Cloudで AI ワークロードと ML ワークロードの費用対効果を実現するには、リソース割り当てを最適化する必要があります。不要な費用を回避し、ワークロードが最適なパフォーマンスを発揮するために必要なリソースを確保するには、リソースの割り当てをワークロードのニーズに合わせます。

AI ワークロードと ML ワークロードへのクラウド リソースの割り当てを最適化するには、次の推奨事項を検討してください。

自動スケーリングを使用してリソースを動的に調整する

自動スケーリングをサポートする Google Cloud サービスを使用します。自動スケーリングは、現在の需要に合わせてリソース割り当てを自動的に調整します。自動スケーリングには次の利点があります。

  • 費用とパフォーマンスの最適化: アイドル状態のリソースの料金を支払う必要がなくなります。同時に、自動スケーリングにより、ピーク時の負荷でもシステムが最適なパフォーマンスを発揮するために必要なリソースを確保できます。
  • 効率の向上: チームが他のタスクに集中できるようになります。
  • アジリティの向上: 需要の変化に迅速に対応し、アプリケーションの高可用性を維持できます。

次の表に、AI プロジェクトのさまざまなステージで自動スケーリングを実装するために使用できる手法の概要を示します。

ステージ 自動スケーリングの手法
トレーニング
  • Vertex AIGKE などのマネージド サービスを使用します。これらのサービスには、トレーニング ジョブ用の自動スケーリング機能が組み込まれています。
  • CPU 使用率、メモリ使用量、ジョブキューの長さなどの指標に基づいてトレーニング インスタンスの数をスケーリングするように、自動スケーリング ポリシーを構成します。
  • カスタム スケーリング指標を使用して、特定のワークロードの自動スケーリングの動作を微調整します。
推論
  • Vertex AI InferenceGKE の GPUGKE の TPU などのスケーラブルなプラットフォームにモデルをデプロイします。
  • 自動スケーリング機能を使用して、リクエスト率、レイテンシ、リソース使用率などの指標に基づいてレプリカの数を調整します。
  • ロード バランシングを実装して、トラフィックをレプリカに均等に分散し、高可用性を確保します。

小さなモデルとデータセットから始める

費用を削減するには、可能であれば小規模な ML 仮説をテストし、反復的なアプローチを使用します。このアプローチでは、モデルとデータセットを小さくすることで、次のようなメリットが得られます。

  • 最初から費用を削減: コンピューティング能力、ストレージ、処理時間を削減することで、初期のテストと開発の段階で費用を削減できます。
  • イテレーションの高速化: トレーニング時間が短縮されるため、イテレーションを高速化し、代替アプローチを検討して、有望な方向性をより効率的に特定できます。
  • 複雑さの軽減: デバッグ、分析、結果の解釈が簡素化され、開発サイクルが短縮されます。
  • リソース使用率の向上: リソースの過剰なプロビジョニングの可能性が低くなります。現在のワークロードに必要なリソースのみをプロビジョニングします。

以下の推奨事項を参考にしてください。

  • 最初にサンプルデータを使用する: データの代表的なサブセットでモデルをトレーニングします。このアプローチでは、データセット全体を処理せずに、モデルのパフォーマンスを評価し、潜在的な問題を特定できます。
  • ノートブックを使用してテストする: 小さいインスタンスから始めて、必要に応じてスケーリングします。Vertex AI Workbench を使用できます。これは、さまざまなモデル アーキテクチャとデータセットのテストに適したマネージド Jupyter ノートブック環境です。
  • よりシンプルなモデルまたは事前トレーニング済みモデルから始める: Vertex AI Model Garden を使用して、事前トレーニング済みモデルを見つけて確認します。このようなモデルでは、必要なコンピューティング リソースが少なくなります。パフォーマンス要件に基づいて、必要に応じて複雑さを徐々に増やします。

    • 画像分類や自然言語処理などのタスクに事前トレーニング済みモデルを使用します。トレーニング費用を節約するには、まず小規模なデータセットでモデルをファインチューニングします。
    • 構造化データには BigQuery ML を使用します。BigQuery ML を使用すると、BigQuery 内で直接モデルを作成してデプロイできます。このアプローチは、BigQuery の従量課金制の料金モデルを利用できるため、初期のテストでは費用対効果が高くなります。
  • リソース最適化のためにスケーリングする: Google Cloudの柔軟なインフラストラクチャを使用して、必要に応じてリソースをスケーリングします。小さなインスタンスから始めて、必要に応じてサイズや数を調整します。

テストを通じてリソース要件を把握する

AI ワークロードと ML ワークロードのリソース要件は大きく異なる場合があります。リソース割り当てと費用を最適化するには、体系的なテストを通じてワークロードの具体的なニーズを把握する必要があります。モデルに最も効率的な構成を特定するには、さまざまな構成をテストして、そのパフォーマンスを分析します。次に、要件に基づいて、トレーニングとサービングに使用したリソースを適切にサイズ設定します。

テストには次のアプローチをおすすめします。

  1. ベースラインから始める: ワークロードの要件の初期見積もりに基づいて、ベースライン構成から始めます。ベースラインを作成するには、新しいワークロードの費用見積もりツールを使用するか、既存の請求レポートを使用します。詳細については、 Google Cloudでエンタープライズ AI の真の費用を把握するをご覧ください。
  2. 割り当てを理解する: 大規模なテストを開始する前に、使用する予定のリソースと API の Google Cloud プロジェクトの割り当てをよく理解してください。割り当てによって、実際にテストできる構成の範囲が決まります。割り当てを理解することで、テスト段階で利用可能なリソースの制限内で作業できます。
  3. 体系的にテストする: CPU の数、メモリの量、GPU と TPU の数とタイプ、ストレージ容量などのパラメータを調整します。Vertex AI TrainingVertex AI Predictions を使用すると、さまざまなマシンタイプと構成を試すことができます。
  4. 使用率、費用、パフォーマンスをモニタリングする: テストする各構成について、リソース使用率、費用、主要なパフォーマンス指標(トレーニング時間、推論レイテンシ、モデルの精度など)を追跡します。

    • リソース使用率とパフォーマンス指標を追跡するには、Vertex AI コンソールを使用します。
    • 詳細なパフォーマンス指標を収集して分析するには、Cloud Monitoring を使用します。
    • 費用を表示するには、Cloud Billing レポートCloud Monitoring ダッシュボードを使用します。
    • モデルのパフォーマンスのボトルネックを特定し、リソース使用率を最適化するには、Vertex AI TensorBoard などのプロファイリング ツールを使用します。
  5. 費用を分析する: 各構成の費用とパフォーマンスを比較して、最も費用対効果の高いオプションを特定します。

  6. 割り当てに基づいてリソースのしきい値と改善目標を設定する: スケーリングによってパフォーマンスの収益が減少し始めるしきい値を定義します。たとえば、トレーニング時間やレイテンシの最小限の削減でコストが大幅に増加する場合などです。これらのしきい値を設定するときは、プロジェクトの割り当てを考慮してください。パフォーマンスの向上によって、さらなるスケーリングの費用と割り当てへの影響が正当化されなくなるポイントを特定します。

  7. 反復的に調整する: 調査結果に基づいて調整された構成でテストプロセスを繰り返します。リソース使用量が割り当てられた割り当て内に収まり、確立された費用対効果のしきい値と一致していることを常に確認してください。

MLOps を使用して非効率性を軽減する

組織がイノベーションと効率性を推進するために ML を使用する機会が増えるにつれて、ML ライフサイクルを効果的に管理することが重要になります。ML オペレーション(MLOps)は、モデル開発からデプロイとモニタリングまで、ML ライフサイクルを自動化および合理化する一連のプラクティスです。

MLOps をコスト要因に合わせる

MLOps を活用して費用対効果を高めるには、ML ライフサイクルの主なコスト要因を特定します。次に、費用要因に沿った MLOps プラクティスを採用して実装できます。最も影響力の大きいコスト要因に対処する MLOps 機能を優先して採用します。このアプローチは、大幅なコスト削減につながる管理可能な成功への道筋を確保するのに役立ちます。

費用最適化のために MLOps を実装する

コスト削減に役立つ一般的な MLOps プラクティスは次のとおりです。

  • バージョン管理: Git などのツールを使用すると、コード、データ、モデルのバージョンを追跡できます。バージョン管理により、再現性が確保され、コラボレーションが促進され、バージョン管理の問題によって発生する可能性のあるコストのかかる再作業を防ぐことができます。
  • 継続的インテグレーションと継続的デリバリー(CI/CD): Cloud BuildArtifact Registry を使用すると、CI/CD パイプラインを実装して、ML モデルのビルド、テスト、デプロイを自動化できます。CI/CD パイプラインにより、リソースの効率的な使用が保証され、手動による介入に関連するコストが最小限に抑えられます。
  • オブザーバビリティ: Cloud MonitoringCloud Logging を使用すると、本番環境でモデルのパフォーマンスを追跡し、問題を特定して、事前対応のアラートをトリガーできます。オブザーバビリティにより、モデルの精度を維持し、リソース割り当てを最適化し、費用のかかるダウンタイムやパフォーマンスの低下を防ぐことができます。
  • モデルの再トレーニング: Vertex AI Pipelines を使用すると、モデルを定期的に再トレーニングするプロセスや、パフォーマンスが低下したときにモデルを再トレーニングするプロセスを簡素化できます。Vertex AI Pipelines を再トレーニングに使用すると、モデルの精度と効率性を維持できます。これにより、不要なリソース消費を防ぎ、最適なパフォーマンスを維持できます。
  • 自動テストと評価: Vertex AI を使用すると、モデル評価を迅速化し、標準化できます。ML ライフサイクル全体で自動テストを実装して、モデルの品質と信頼性を確保します。このようなテストは、エラーを早期に検出し、本番環境でのコストのかかる問題を回避し、大規模な手動テストの必要性を減らすのに役立ちます。

詳細については、MLOps: ML における継続的デリバリーと自動化のパイプラインをご覧ください。

データ管理とガバナンスのプラクティスを適用する

費用の最適化には、効果的なデータ管理とガバナンスの実践が不可欠です。適切に整理されたデータは、チームでデータセットを再利用し、不要な重複を回避し、高品質なデータを取得するために必要な労力を軽減します。データを事前に管理することで、ストレージ費用を削減し、データ品質を向上させ、ML モデルが最も関連性の高く価値のあるデータでトレーニングされるようにすることができます。

データ管理とガバナンスのプラクティスを実装するには、次の推奨事項を検討してください。

データ ガバナンス フレームワークを確立して採用する

AI と ML の重要性が高まるにつれて、デジタル トランスフォーメーションを推進する組織にとってデータは最も価値のある資産になりました。データ ガバナンスの堅牢なフレームワークは、AI ワークロードと ML ワークロードを大規模かつ費用対効果の高い方法で管理するための重要な要件です。明確に定義されたポリシー、手順、役割を含むデータ ガバナンス フレームワークは、ライフサイクル全体でデータを管理するための構造化されたアプローチを提供します。このようなフレームワークは、データ品質の向上、セキュリティの強化、利用率の向上、冗長性の削減に役立ちます。

データ ガバナンス フレームワークを確立する

データ ガバナンスには、EDM Council が公開しているフレームワークなど、多くの既存のフレームワークがあり、さまざまな業界や組織規模に対応したオプションが用意されています。特定のニーズと優先事項に沿ったフレームワークを選択して、適応させます。

データ ガバナンス フレームワークを実装する

Google Cloud には、堅牢なデータ ガバナンス フレームワークの実装に役立つ次のサービスとツールが用意されています。

  • Dataplex Universal Catalog は、分散データを統合し、データセットを 1 か所に統合することなくデータ ガバナンスを自動化するインテリジェントなデータ ファブリックです。これにより、データの配布と維持のコストを削減し、データ検出を容易にし、再利用を促進できます。

  • Dataplex Universal Catalog は、フルマネージドでスケーラブルなメタデータ管理サービスでもあります。カタログは、データアセットがアクセス可能で再利用可能であることを保証する基盤を提供します。

    • サポートされている Google Cloud ソースのメタデータは、ユニバーサル カタログに自動的に取り込まれます。 Google Cloud以外のデータソースについては、カスタム エントリを作成します。
    • データアセットの検出可能性と管理を改善するには、アスペクトを使用して、テクニカル メタデータをビジネス メタデータで拡充します。
    • データ サイエンティストと ML 実務者が Dataplex Universal Catalog にアクセスして検索機能を使用するのに十分な権限があることを確認します。
  • BigQuery 共有を使用すると、組織間でデータアセットを効率的かつ安全に交換して、データの信頼性と費用の課題に対処できます。

    • データ エクスチェンジを設定し、キュレートされたデータアセットがリスティングとして表示されるようにします。
    • データ クリーンルームを使用して、機密データへのアクセスを安全に管理し、AI プロジェクトや ML プロジェクトで外部のチームや組織と効率的に連携します。
    • データ サイエンティストと ML 実務者が、BigQuery 共有でデータセットを表示して公開するための十分な権限を持っていることを確認します。

ML ライフサイクル全体でデータセットと特徴を再利用可能にする

効率と費用のメリットを大幅に高めるには、複数の ML プロジェクトでデータセットと特徴を再利用します。冗長なデータ エンジニアリングと特徴開発の労力を回避することで、組織はモデル開発を加速し、インフラストラクチャ コストを削減し、他の重要なタスクに貴重なリソースを割り当てることができます。

Google Cloud は、データセットと特徴の再利用に役立つ次のサービスとツールを提供します。

  • データと ML の担当者は、データ プロダクトを公開して、チーム全体で再利用を最大化できます。データ プロダクトは、Dataplex Universal Catalog と BigQuery の共有を通じて検出して使用できます。
  • 表形式の構造化データセットの場合は、Vertex AI Feature Store を使用して、BigQuery を介して再利用性を高め、特徴管理を効率化できます。
  • 非構造化データを Cloud Storage に保存し、BigQuery オブジェクト テーブルと署名付き URL を使用してデータを管理できます。
  • ベクトル エンベディングは、ベクトル検索インデックスにメタデータを含めることで管理できます。

MLOps による自動化と効率化

MLOps プラクティスを導入する主なメリットは、テクノロジーと人員のコストを削減できることです。自動化により、ML アクティビティの重複を回避し、データ サイエンティストと ML エンジニアのワークロードを軽減できます。

MLOps を使用して ML 開発を自動化し、効率化するには、次の推奨事項を検討してください。

データ収集と処理を自動化して標準化する

ML の開発の労力と時間を削減するには、データ収集と処理のテクノロジーを自動化して標準化します。

データ収集と処理を自動化する

このセクションでは、データの収集と処理を自動化するために使用できるプロダクト、ツール、手法の概要について説明します。

AI / ML タスクに関連するデータソースを特定して選択します。

データソースごとに、取り込みツールを選択します。

  • Dataflow: さまざまなソースからのデータのバッチ処理とストリーム処理。ML コンポーネントの統合。イベント ドリブン アーキテクチャでは、Dataflow と Eventarc を組み合わせて、ML 用のデータを効率的に処理できます。MLOps と ML ジョブの効率を高めるには、GPU と Right Fitting 機能を使用します。
  • Cloud Run functions: リアルタイム アプリケーションのデータソースの変更によってトリガーされるイベント ドリブン データ取り込み。
  • BigQuery: 頻繁にアクセスする従来の表形式データの取り込み。

データ変換と読み込みのツールを選択します。

  • DataflowDataform などのツールを使用して、特徴のスケーリング、カテゴリ変数のエンコード、新しい特徴の作成などのデータ変換をバッチ、ストリーミング、リアルタイムで自動化します。選択するツールは、要件と選択したサービスによって異なります。
  • Vertex AI Feature Store を使用して、特徴の作成と管理を自動化します。さまざまなモデルやプロジェクトで再利用できるように、特徴を集中管理できます。

データの収集と処理を標準化する

データアセットを検出、理解、管理するには、Dataplex Universal Catalog などのメタデータ管理サービスを使用します。これにより、データ定義を標準化し、組織全体で一貫性を確保できます。

標準化を適用し、複数のカスタム実装の維持費用を回避するには、自動トレーニング パイプラインとオーケストレーションを使用します。詳細については、次のセクションをご覧ください。

トレーニング パイプラインを自動化し、既存のアセットを再利用する

MLOps の効率と生産性を高めるには、自動化されたトレーニング パイプラインが不可欠です。 Google Cloud は、既存のアセットの再利用を重視して、トレーニング パイプラインを構築してデプロイするための堅牢なツールとサービスのセットを提供します。自動化されたトレーニング パイプラインは、モデル開発の加速、一貫性の確保、冗長な作業の削減に役立ちます。

トレーニング パイプラインを自動化する

次の表に、トレーニング パイプラインのさまざまな機能を自動化するために使用できる Google Cloud サービスと機能を示します。

関数 Google Cloud サービスと機能
オーケストレーション: 複数のステップと依存関係で構成される複雑な ML ワークフローを定義します。各ステップを個別のコンテナ化されたタスクとして定義できるため、個々のタスクを簡単に管理およびスケーリングできます。
  • パイプラインを作成してオーケストレートするには、Vertex AI Pipelines または Kubeflow Pipelines を使用します。これらのツールは、シンプルなデータ変換、モデル トレーニング、モデルのデプロイ、パイプラインのバージョニングをサポートしています。ステップ間の依存関係を定義し、データフローを管理し、ワークフロー全体の実行を自動化できます。
  • CI/CD と ETL(抽出、変換、読み込み)の要件が厳しい複雑な運用タスクには、Cloud Composer を使用します。データ オーケストレーションに Airflow を使用する場合は、Airflow を基に構築された互換性のあるマネージド サービスである Cloud Composer を使用します。
  • Vertex AI Pipelines の外部で管理されるパイプラインの場合は、VM の起動と停止や外部システムとの統合など、インフラストラクチャに重点を置いたタスクに Workflows を使用します。
  • CI/CD プロセスを自動化するには、Pub/SubCloud Build を使用します。新しいコードが push されたときや、新しいモデルをトレーニングする必要があるときに、通知と自動トリガーを設定できます。
  • パイプライン管理用のフルマネージドでスケーラブルなソリューションには、Cloud Data Fusion を使用します。
バージョニング: パイプラインとコンポーネントのさまざまなバージョンを追跡して制御し、再現性と監査可能性を確保します。 Kubeflow パイプライン テンプレートを Artifact Registry の Kubeflow Pipelines リポジトリに保存します。
再利用性: 準備済みデータセットやトレーニング済みモデルなどの既存のパイプライン コンポーネントとアーティファクトを再利用して、開発を加速します。 パイプライン テンプレートを Cloud Storage に保存し、組織全体で共有します。
モニタリング: パイプラインの実行をモニタリングして、問題を特定して対処します。 Cloud Logging と Cloud Monitoring を使用する。詳細については、ダッシュボード、アラート、レポートを使用してリソースを継続的にモニタリングするをご覧ください。

パイプラインを超えて再利用性を拡大する

トレーニング パイプライン以外で再利用性を拡大する機会を探します。次に、ML の特徴、データセット、モデル、コードを再利用できる Google Cloud 機能の例を示します。

  • Vertex AI Feature Store は、ML の特徴を整理、保存、提供するための一元化されたリポジトリを提供します。さまざまなプロジェクトやモデルで特徴を再利用できるため、一貫性を高め、特徴量エンジニアリングの労力を削減できます。オンラインとオフラインの両方のユースケースで特徴を保存、共有、アクセスできます。
  • Vertex AI データセットを使用すると、チームはデータセットを一元的に作成して管理できるため、組織は再利用性を最大限に高め、データの重複を減らすことができます。チームは、Dataplex Universal Catalog を使用してデータセットを検索して検出できます。
  • Vertex AI Model Registry を使用すると、トレーニング済みモデルを保存、管理、デプロイできます。モデル レジストリを使用すると、後続のパイプラインやオンライン予測でモデルを再利用できるため、以前のトレーニングの成果を活用できます。
  • カスタム コンテナを使用すると、トレーニング コードと依存関係をコンテナにパッケージ化して、Artifact Registry に保存できます。カスタム コンテナを使用すると、さまざまなパイプラインやプロジェクトで一貫性のある再現可能なトレーニング環境を提供できます。

モデルの評価とチューニングに Google Cloud サービスを使用する

Google Cloud は、モデルの評価とチューニングを効率化して自動化するための強力なツールとサービスのスイートを提供します。これらのツールとサービスを使用すると、本番環境への移行時間を短縮し、継続的なトレーニングとモニタリングに必要なリソースを削減できます。これらのサービスを使用することで、AI チームと ML チームは、高コストの反復処理を減らしてモデルのパフォーマンスを向上させ、より迅速に結果を得て、コンピューティング リソースの無駄を最小限に抑えることができます。

リソース効率の高いモデル評価とテストを使用する

ソリューションをスケールアップする前に、テストで AI プロジェクトを開始します。テストでは、データセット バージョン、モデル パラメータ、モデルタイプなどのさまざまなメタデータを追跡します。結果の再現性と比較をさらに高めるには、Git の機能と同様に、コードのバージョニングに加えてメタデータのトラッキングを使用します。情報が欠落したり、誤ったバージョンが本番環境にデプロイされたりしないように、大規模なデプロイまたはトレーニング ジョブを実装する前に Vertex AI Experiments を使用します。

Vertex AI Experiments では、次のことができます。

  • 本番環境対応のワークロード向けに、ユーザー フレンドリーな UI と API を使用して、メタデータの追跡と検出を効率化し、自動化します。
  • モデルのパフォーマンス指標を分析し、複数のモデル間で指標を比較します。

モデルのトレーニングが完了したら、受信データのパフォーマンスとデータドリフトを継続的にモニタリングします。このプロセスを効率化するには、Vertex AI Model Monitoring を使用して、Model Registry で作成されたモデルに直接アクセスします。Model Monitoring は、オンライン予測とバッチ予測によるデータと結果のモニタリングも自動化します。結果を BigQuery にエクスポートして、さらに分析や追跡を行うことができます。

トレーニングを自動化するための最適な戦略を選択する

ハイパーパラメータ チューニングには、次の方法をおすすめします。

  • モデルに最適なハイパーパラメータを見つけるプロセスを自動化するには、Vertex AI ハイパーパラメータ チューニングを使用します。Vertex AI は、高度なアルゴリズムを使用してハイパーパラメータ空間を探索し、最適な構成を特定します。
  • 効率的なハイパーパラメータ チューニングを行うには、特に複雑なモデルや大規模なデータセットを扱う場合に、ベイズ最適化手法の使用を検討してください。

分散トレーニングには、次の方法をおすすめします。

  • 大規模なデータセットと複雑なモデルの場合は、Vertex AI の分散トレーニング インフラストラクチャを使用します。このアプローチでは、複数のマシンでモデルをトレーニングできるため、トレーニング時間と関連費用を大幅に削減できます。次のようなツールを使用します。

  • 分散トレーニングと効率的なリソース使用率をサポートする、Keras や PyTorch などの最適化された ML フレームワークを選択します。

説明可能な AI を使用する

モデルが特定の決定を下す理由を理解し、潜在的なバイアスや改善すべき領域を特定することが重要です。Vertex Explainable AI を使用して、モデルの予測に関する分析情報を取得します。Vertex Explainable AI には、Vertex AI Experiments にリンクされている特徴ベースの説明と例に基づく説明を自動化する方法が用意されています。

  • 特徴ベース: モデルの予測に最も影響を与える特徴を把握するには、特徴アトリビューションを分析します。この理解は、特徴量エンジニアリングの取り組みを導き、モデルの解釈可能性を高めることができます。
  • 例ベース: 入力に最も類似した例(通常はトレーニング セットから)のリストを返すために、Vertex AI は最近傍探索を使用します。通常、類似した入力から同様の予測が得られるため、これらの説明を使用してモデルの動作を調査し、説明できます。

マネージド サービスと事前トレーニング済みモデルを使用する

モデルの選択とモデル開発に増分アプローチを採用します。このアプローチにより、毎回最初からやり直す必要がなくなり、それに伴う過剰な費用を回避できます。コストを抑えるには、ML フレームワーク、マネージド サービス、事前トレーニング済みモデルを使用します。

マネージド サービスと事前トレーニング済みモデルを最大限に活用するには、次の推奨事項を検討してください。

探索とテストにノートブックを使用する

ノートブック環境は、費用対効果の高い ML テストに不可欠です。ノートブックは、データ サイエンティストとエンジニアがデータを探索し、モデルを開発し、知識を共有し、効率的に反復処理を行うためのインタラクティブなコラボレーション スペースを提供します。ノートブックによるコラボレーションと知識の共有により、開発、コードレビュー、知識の伝達が大幅に加速します。ノートブックは、ワークフローの効率化と重複作業の削減に役立ちます。

開発環境用に高価なハードウェアを調達して管理する代わりに、Vertex AI Workbench と Colab Enterprise のスケーラブルなオンデマンド インフラストラクチャを使用できます。

  • Vertex AI Workbench は、データ サイエンス ワークフロー全体に対応する Jupyter ノートブック開発環境です。インスタンスの Jupyter ノートブック内から Vertex AI や他の Google Cloudサービスを操作できます。Vertex AI Workbench の統合と機能により、次のことが可能になります。

    • BigQuery と Cloud Storage のインテグレーションを使用して、Jupyter ノートブックからデータにアクセスして探索する。
    • Vertex AI で実行されるコードの実行スケジュールを使用して、モデルへの定期的な更新を自動化する。
    • Dataproc クラスタでノートブックを実行してデータを迅速に処理する。
    • Vertex AI Pipelines を使用して、パイプラインのステップとしてノートブックを実行する。
  • Colab Enterprise は、 Google Cloudのセキュリティ機能とコンプライアンス機能を備えたコラボレーション指向のマネージド ノートブック環境です。共同開発とインフラストラクチャの管理にかかる労力の削減がプロジェクトの優先事項である場合は、Colab Enterprise が最適です。Colab Enterprise は、Google Cloud サービスと Gemini を使用する AI によるアシスタンスと統合されています。Colab Enterprise では、次のことができます。

    • インフラストラクチャを管理する必要なくノートブックで作業できます。
    • ノートブックを単一のユーザー、Google グループ、または Google Workspace ドメインと共有します。ノートブックへのアクセスは、Identity and Access Management(IAM)で制御できます。
    • Vertex AI と BigQuery に組み込まれた機能を操作します。

変更を追跡し、必要に応じて以前のバージョンに戻すには、ノートブックを Git などのバージョン管理ツールと統合します。

既存の事前トレーニング済みモデルから始める

複雑なモデル、特にディープ ラーニング モデルをゼロからトレーニングするには、多大なコンピューティング リソースと時間が必要です。モデルの選択と開発プロセスを加速するには、既存のモデルと事前トレーニング済みモデルから始めます。これらのモデルは、大規模なデータセットでトレーニングされているため、モデルをゼロからトレーニングする必要がなく、コストと開発時間を大幅に削減できます。

トレーニングと開発の費用を削減する

各 ML タスクに適したモデルまたは API を選択し、それらを組み合わせてエンドツーエンドの ML 開発プロセスを作成します。

Vertex AI Model Garden には、画像分類、オブジェクト検出、自然言語処理などのタスクに対応した事前トレーニング済みモデルが豊富に用意されています。モデルは次のカテゴリに分類されます。

Google Cloud は、デベロッパーがモデルをゼロから構築することなく、強力な AI 機能をアプリケーションに統合できる AI API と ML API を提供します。

  • Cloud Vision API を使用すると、画像から分析情報を抽出できます。この API は、画像分析、コンテンツの管理、データ入力の自動化などのアプリケーションに役立ちます。
  • Cloud Natural Language API を使用すると、テキストを分析して構造と意味を理解できます。この API は、顧客のフィードバックの分析、コンテンツの分類、ソーシャル メディアのトレンドの把握などのタスクに役立ちます。
  • Speech-to-Text API は、音声をテキストに変換します。この API は、幅広い言語と方言をサポートしています。
  • Video Intelligence API は、動画コンテンツを分析してオブジェクト、シーン、アクションを識別します。この API は、動画コンテンツの分析、コンテンツの管理、動画検索に使用します。
  • Document AI API は、ドキュメントを処理して、データの抽出、分類、理解を行います。この API を使用すると、ドキュメント処理のワークフローを自動化できます。
  • Dialogflow API を使用すると、チャットボットや音声アシスタントなどの会話インターフェースを作成できます。この API を使用して、カスタマー サービス ボットやバーチャル アシスタントを作成できます。
  • Vertex AI の Gemini API を使用すると、Google の最も高性能な汎用 AI モデルにアクセスできます。

チューニング費用を削減する

大量のデータとコンピューティング時間を必要としないようにするには、特定のデータセットで事前トレーニング済みモデルをファインチューニングします。次の方法をおすすめします。

  • 学習転移: ゼロから始めるのではなく、事前トレーニング済みモデルの知識を新しいタスクに使用します。このアプローチでは、データとコンピューティング時間が少なくて済むため、コスト削減に役立ちます。
  • アダプタ チューニング(パラメータ効率チューニング: フル ファインチューニングを行わずに、モデルを新しいタスクやドメインに適応させます。このアプローチでは、必要なコンピューティング リソースとデータセットが大幅に少なくなります。
  • 教師ありファインチューニング: ラベル付きデータセットを使用してモデルの動作を調整します。このアプローチにより、基盤となるインフラストラクチャの管理と、カスタム トレーニング ジョブに必要な開発作業が簡素化されます。

Vertex AI Studio を使用して探索し、テストする

Vertex AI Studio を使用すると、生成 AI アプリケーションを迅速にテスト、プロトタイピング、デプロイできます。

  • Model Garden との統合: 最新のモデルにすばやくアクセスし、モデルを効率的にデプロイして時間と費用を節約できます。
  • 専門モデルへの統合アクセス: チャット、テキスト、メディア、翻訳、音声などの事前トレーニング済みモデルと API へのアクセスを統合します。この統合アクセスにより、個々のサービスの検索と統合にかかる時間を短縮できます。

マネージド サービスを使用してモデルをトレーニングまたはサービングする

マネージド サービスは、モデル トレーニングの費用を削減し、インフラストラクチャの管理を簡素化するのに役立ちます。これにより、モデルの開発と最適化に集中できます。このアプローチにより、コスト削減と効率向上の両面で大きなメリットが得られます。

運用オーバーヘッドの削減

インフラストラクチャ管理の複雑さとコストを削減するには、次のようなマネージド サービスを使用します。

  • Vertex AI Training は、モデルのトレーニングを大規模に行うためのフルマネージド環境を提供します。一般的な ML フレームワークを含むさまざまな事前構築済みコンテナから選択するか、独自のカスタム コンテナを使用できます。 Google Cloud はインフラストラクチャのプロビジョニング、スケーリング、メンテナンスを処理するため、運用オーバーヘッドが軽減されます。
  • Vertex AI 予測は、インフラストラクチャのスケーリング、ロード バランシング、リクエストのルーティングを処理します。手動で介入することなく、高い可用性とパフォーマンスを実現できます。
  • Ray on Vertex AI は、フルマネージドの Ray クラスタを提供します。クラスタを使用すると、独自のインフラストラクチャを管理することなく、多くの計算を実行する複雑なカスタム AI ワークロード(ハイパーパラメータ チューニング、モデル ファインチューニング、分散モデル トレーニング、人間のフィードバックからの強化学習)を実行できます。

マネージド サービスを使用してリソース使用率を最適化する

リソース使用率の最適化の詳細については、リソース使用率を最適化するをご覧ください。

寄稿者

著者:

  • Isaac Lo | AI ビジネス デベロップメント マネージャー
  • 生成 AI 担当フィールド ソリューション アーキテクト Anastasia Prokaeva
  • Amy Southwood | テクニカル ソリューション コンサルタント、データ分析と AI

その他の寄稿者:

  • Filipe Gracio 博士 | カスタマー エンジニア、AI/ML スペシャリスト
  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Marwan Al Shawi | パートナー カスタマー エンジニア
  • Nicolas Pintaux | カスタマー エンジニア、アプリケーション モダナイゼーション スペシャリスト

AI と ML の視点: パフォーマンス最適化

Well-Architected Framework: AI と ML の視点のこのドキュメントでは、 Google Cloudで AI ワークロードと ML ワークロードのパフォーマンスを最適化するための原則と推奨事項の概要について説明します。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework のパフォーマンス最適化の柱に沿っています。

AI システムと ML システムにより、組織の新しい自動化機能と意思決定機能を実現できます。これらのシステムのパフォーマンスは、収益、費用、顧客満足度などのビジネス推進要因に直接影響する可能性があります。AI システムと ML システムの可能性を最大限に引き出すには、ビジネス目標と技術要件に基づいてパフォーマンスを最適化する必要があります。パフォーマンスの最適化プロセスでは、多くの場合、特定のトレードオフが発生します。たとえば、必要なパフォーマンスを提供する設計を選択すると、コストが増加する可能性があります。このドキュメントの推奨事項では、費用などの他の考慮事項よりもパフォーマンスを優先しています。

AI と ML のパフォーマンスを最適化するには、モデルのアーキテクチャ、パラメータ、トレーニング戦略などの要素について決定する必要があります。これらの決定を行う際は、AI システムと ML システムのライフサイクル全体とそのデプロイ環境を考慮してください。たとえば、非常に大規模な LLM は、大規模なトレーニング インフラストラクチャで高いパフォーマンスを発揮できますが、非常に大規模なモデルは、モバイル デバイスなどの容量に制約のある環境ではパフォーマンスが低下する可能性があります。

ビジネス目標をパフォーマンス目標に変換する

パフォーマンスを最適化するアーキテクチャについて意思決定を行うには、まず明確なビジネス目標を設定します。ビジネス目標と優先事項をサポートするために必要な技術的なパフォーマンスを提供する AI システムと ML システムを設計します。技術チームは、パフォーマンス目標とビジネス目標のマッピングを理解する必要があります。

以下の推奨事項を参考にしてください。

  • ビジネス目標を技術要件に変換する: AI システムと ML システムのビジネス目標を具体的な技術的パフォーマンス要件に変換し、要件を満たさない場合の影響を評価します。たとえば、顧客の解約を予測するアプリケーションの場合、ML モデルは精度や再現率などの標準指標で優れたパフォーマンスを発揮する必要があります。また、アプリケーションは低レイテンシなどの運用要件を満たす必要があります。
  • モデル ライフサイクルのすべての段階でパフォーマンスをモニタリングする: モデルのデプロイ後のテストとトレーニング中に、主要なパフォーマンス指標(KPI)をモニタリングし、ビジネス目標からの逸脱を観察します。
  • 評価を自動化して再現性と標準化を実現する: テスト評価用の標準化された比較可能なプラットフォームと方法論により、エンジニアはパフォーマンス改善のペースを上げることができます。

頻繁なテストを実行して追跡する

イノベーションと創造性をパフォーマンスの向上につなげるには、テストをサポートする文化とプラットフォームが必要です。AI と ML の技術は継続的かつ迅速に進化しているため、パフォーマンスの向上は継続的なプロセスとなります。高速で反復的なプロセスを維持するには、テスト環境をトレーニング プラットフォームとサービング プラットフォームから分離する必要があります。標準化された堅牢なテストプロセスが重要です。

以下の推奨事項を参考にしてください。

  • テスト環境を構築する: パフォーマンスを向上させるには、ML パイプラインのテストと共同開発をサポートする、強力でインタラクティブな専用環境が必要です。
  • テストを文化として組み込む: 本番環境にデプロイする前にテストを実施します。新しいバージョンを反復的にリリースし、常にパフォーマンス データを収集します。さまざまなデータ型、特徴変換、アルゴリズム、ハイパーパラメータをテストします。

トレーニング サービスとサービング サービスを構築して自動化する

AI モデルのトレーニングとサービングは、AI サービスのコア コンポーネントです。AI モデルの迅速かつ信頼性の高い作成、デプロイ、サービングをサポートする堅牢なプラットフォームと手法が必要です。コア AI トレーニングとサービング タスクの基盤となるプラットフォームの構築に時間と労力を費やします。これらの基盤となるプラットフォームは、中長期的にチームの作業時間と労力を削減し、出力の品質を向上させるのに役立ちます。

以下の推奨事項を参考にしてください。

  • トレーニング サービスの AI 専用コンポーネントを使用する: このようなコンポーネントには、特徴ストア、モデル レジストリ、メタデータ ストア、モデルのパフォーマンス評価サービスなど、高性能のコンピューティング コンポーネントと MLOps コンポーネントが含まれます。
  • 予測サービスの AI 専用コンポーネントを使用する: このようなコンポーネントは、高パフォーマンスでスケーラブルなリソースを提供して、特徴モニタリングをサポートし、モデルのパフォーマンス モニタリングを可能にします。パフォーマンスの低下を防ぎ、管理するには、信頼性の高いデプロイとロールバック戦略を実装します。

設計の選択をパフォーマンス要件に合わせて調整する

パフォーマンスを改善するために設計上の選択を行う場合は、その選択がビジネス要件をサポートするものであるか、逆効果になるかを慎重に評価します。適切なインフラストラクチャ、モデル、構成を選択するには、パフォーマンスのボトルネックを特定し、パフォーマンス指標とどのように関連しているかを評価します。たとえば、非常に強力な GPU アクセラレータでも、ストレージ レイヤのデータ I/O の問題や、モデル自体のパフォーマンスの制限により、トレーニング タスクでパフォーマンスのボトルネックが発生する可能性があります。

以下の推奨事項を参考にしてください。

  • パフォーマンス目標に基づいてハードウェア使用量を最適化する: パフォーマンス要件を満たす ML モデルをトレーニングして提供するには、コンピューティング レイヤ、ストレージ レイヤ、ネットワーク レイヤでインフラストラクチャを最適化する必要があります。パフォーマンス目標に影響する変数を測定して理解する必要があります。これらの変数は、トレーニングと推論で異なります。
  • ワークロード固有の要件に重点を置く: パフォーマンスの最適化に取り組む際は、AI ワークロードと ML ワークロードの固有の要件に重点を置きます。基盤となるインフラストラクチャのパフォーマンスにはマネージド サービスを使用します。
  • 適切なトレーニング戦略を選択する: 事前トレーニング済みモデルと基盤モデルがいくつか用意されており、このようなモデルは頻繁にリリースされています。タスクに最適なパフォーマンスを発揮できるトレーニング戦略を選択します。独自のモデルを構築するか、データでトレーニング済みモデルをチューニングするか、トレーニング済みモデルの API を使用するかを決定します。
  • パフォーマンス最適化戦略の費用対効果が低下する可能性があることを認識する: 特定のパフォーマンス最適化戦略で測定可能なビジネス価値の増加が得られなくなった場合は、その戦略を停止します。

パフォーマンスの問題を改善、トラブルシューティング、調査するには、設計の選択とパフォーマンスの結果の間に明確な関連性を確立します。テストに加えて、アセット、デプロイ、モデル出力、出力を生成した構成と入力のリネージについて信頼性のある記録を残す必要があります。

以下の推奨事項を参考にしてください。

  • データとモデルのリネージ システムを構築する: デプロイされたアセットとそのパフォーマンス指標はすべて、デプロイされたシステムにつながるデータ、構成、コード、選択肢にリンクされている必要があります。また、モデル出力は、特定のモデル バージョンと出力の生成方法にリンクする必要があります。
  • 説明可能性ツールを使用してモデルのパフォーマンスを改善する: モデルの探索と説明可能性のためのツールとベンチマークを採用して標準化します。これらのツールは、ML エンジニアがモデルの動作を理解し、パフォーマンスを改善したりバイアスを除去したりする際に役立ちます。

寄稿者

著者:

  • Benjamin Sadik | AI および ML スペシャリスト カスタマー エンジニア
  • Filipe Gracio 博士 | カスタマー エンジニア、AI/ML スペシャリスト

その他の寄稿者:

  • Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
  • Marwan Al Shawi | パートナー カスタマー エンジニア
  • Zach Seils | ネットワーキング スペシャリスト