AI と ML の視点: 運用の卓越性

Last reviewed 2025-04-28 UTC

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評価を組み込むことができます。

Model Monitoring がアラートをトリガーしたときに、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 フィールド ソリューション アーキテクト