Google Cloud Well-Architected Framework のこのドキュメントでは、運用、セキュリティ、信頼性、費用、パフォーマンスの目標を満たす Google Cloud で AI ワークロードと ML ワークロードを設計、構築、管理するうえで役立つ原則と推奨事項について説明します。
このドキュメントの対象読者は、 Google Cloudで AI ワークロードと ML ワークロードの設計、構築、デプロイ、保守を行う意思決定者、アーキテクト、管理者、デベロッパー、オペレーターです。
次のページでは、Well-Architected Framework の各柱について、AI と ML に固有の原則と推奨事項について説明します。
- AI と ML の視点: オペレーショナル エクセレンス
- AI と ML の視点: セキュリティ
- AI と ML の視点: 信頼性
- AI と ML の視点: 費用の最適化
- AI と ML の視点: パフォーマンスの最適化
寄稿者
著者:
- Benjamin Sadik | AI および ML スペシャリスト カスタマー エンジニア
- Charlotte Gistelinck 博士 | パートナー エンジニア
- Filipe Gracio 博士 | カスタマー エンジニア
- Isaac Lo | AI ビジネス デベロップメント マネージャー
- Kamilla Kurta | 生成 AI / ML スペシャリスト カスタマー エンジニア
- Mohamed Fawzi | ベネルクス セキュリティ / コンプライアンス リード
- Rick(Rugui)Chen | AI インフラストラクチャ ソリューション アーキテクト
- Sannya Dang | AI ソリューション アーキテクト
その他の寄稿者:
- Daniel Lees | クラウド セキュリティ アーキテクト
- Gary Harmson | プリンシパル アーキテクト
- Jose Andrade | エンタープライズ インフラストラクチャ カスタマー エンジニア
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Marwan Al Shawi | パートナー カスタマー エンジニア
- Nicolas Pintaux | カスタマー エンジニア、アプリケーション モダナイゼーション スペシャリスト
- Radhika Kanakam | シニア プログラム マネージャー、Cloud GTM
- 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 Build や Cloud 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 システムでは、コードテスト以外にも追加の手順が必要になることがよくあります。たとえば、さまざまな負荷でモデルのストレステストを行い、一括評価を実行してさまざまなデータセットでモデルのパフォーマンスを評価し、再トレーニングの前にデータ整合性を検証する必要があります。ストレステストの現実的なワークロードをシミュレートするには、Locust、Grafana k6、Apache 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 Engine と GKE で自動スケーリング ポリシーを構成します。予測可能なピーク パターンには、予測自動スケーリングの使用を検討してください。アプリケーション固有のシグナルに基づいて自動スケーリングをトリガーするには、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 による分散データ前処理、高速化されたモデル トレーニング、スケーラブルなハイパーパラメータ チューニング、強化学習、並列化されたバッチ予測を行います。
寄稿者
著者:
- Charlotte Gistelinck 博士 | パートナー エンジニア
- Sannya Dang | AI ソリューション アーキテクト
- Filipe Gracio 博士 | カスタマー エンジニア
その他の寄稿者:
- 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 博士 | カスタマー エンジニア
- Mohamed Fawzi | ベネルクス セキュリティ / コンプライアンス リード
その他の寄稿者:
- Daniel Lees | クラウド セキュリティ アーキテクト
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Marwan Al Shawi | パートナー カスタマー エンジニア
- Wade Holmes | グローバル ソリューション ディレクター
AI と ML の視点: 信頼性
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 システムの強力な基盤となります。
インフラストラクチャがスケーラブルで可用性が高いことを確認する
スケーラビリティと可用性を考慮して設計することで、アプリケーションはサービスの中断やパフォーマンスの低下なしに、さまざまなレベルの需要に対応できます。つまり、インフラストラクチャの停止中やトラフィックが非常に多い場合でも、ユーザーは AI サービスを利用できます。
以下の推奨事項を参考にしてください。
- 需要の変動に対応するために、自動的かつ動的なスケーリング機能を備えた AI システムを設計します。これにより、トラフィックの急増時でも最適なパフォーマンスを確保できます。
- ロードテストとパフォーマンス モニタリングを通じて、リソースを事前に管理し、将来のニーズを予測します。過去のデータと予測分析を使用して、リソースの割り当てについて十分な情報に基づいて意思決定を行います。
- Google Cloud でマルチゾーンとマルチリージョンのデプロイ アーキタイプを採用し、冗長性とレプリケーションを実装することで、高可用性とフォールト トレランスを実現します。
- AI サービスと ML サービスおよびエンドポイントの複数のインスタンスに受信トラフィックを分散します。ロード バランシングは、単一のインスタンスの過負荷を防ぎ、一貫したパフォーマンスと可用性を確保するのに役立ちます。
モジュール型で疎結合のアーキテクチャを使用する
AI システムを個々のコンポーネントの障害に対して復元力のあるものにするには、モジュラー アーキテクチャを使用します。たとえば、データ処理コンポーネントとデータ検証コンポーネントを個別のモジュールとして設計します。モジュール型アーキテクチャにより、特定のコンポーネントで障害が発生した場合のダウンタイムを最小限に抑え、チームが修正を迅速に開発してデプロイできるようになります。
以下の推奨事項を参考にしてください。
- AI システムと ML システムを、自己完結型の小さなモジュールまたはコンポーネントに分割します。このアプローチにより、コードの再利用が促進され、テストとメンテナンスが簡素化され、個々のコンポーネントを個別に開発してデプロイできます。
- 明確に定義されたインターフェースを使用して、疎結合モジュールを設計します。このアプローチでは、依存関係が最小限に抑えられ、システム全体に影響を与えることなく、独立した更新と変更を行うことができます。
- グレースフル デグラデーションを計画します。コンポーネントで障害が発生した場合、システムの他の部分が十分なレベルの機能を継続して提供する必要があります。
- API を使用してモジュール間の明確な境界を作成し、モジュール レベルの実装の詳細を隠します。このアプローチでは、システムの他の部分とのやり取りに影響を与えることなく、個々のコンポーネントを更新または置き換えることができます。
自動化された MLOps プラットフォームを構築する
自動化された MLOps プラットフォームを使用すると、モデル ライフサイクルのステージと出力の信頼性が高まります。一貫性、疎結合、モジュール性を促進し、オペレーションとインフラストラクチャをコードとして表現することで、脆弱な手動の手順を排除し、より堅牢で信頼性の高い AI システムと ML システムを維持できます。
以下の推奨事項を参考にしてください。
- データの準備と検証から、モデルのトレーニング、評価、デプロイ、モニタリングまで、モデル開発ライフサイクルを自動化します。
- Infrastructure as Code(IaC)を管理します。このアプローチにより、効率的なバージョン管理、必要に応じた迅速なロールバック、再現可能なデプロイが可能になります。
- 関連するデータを使用して、モデルが想定どおりに動作することを確認します。モデルのパフォーマンス モニタリングを自動化し、予期しない出力に対する適切なアラートを作成します。
- AI パイプラインと ML パイプラインの入力と出力を検証します。たとえば、データ、構成、コマンド引数、ファイル、予測を検証します。予期しない値または許可されていない値に対するアラートを構成する。
- モデル エンドポイントにマネージド バージョン管理戦略を採用します。このような戦略により、増分リリースが可能になり、問題が発生した場合でも迅速に復旧できます。
データとモデルのガバナンスを通じて信頼と制御を維持する
AI システムと ML システムの信頼性は、データとモデルの信頼性とガバナンス機能によって異なります。AI の出力が期待どおりにならない場合でも、そのことが明示的に示されないことがあります。たとえば、出力は形式的には一貫性があるものの、正しくない、または望ましくない可能性があります。トレーサビリティと強力なガバナンスを実装することで、出力の信頼性と信頼性を確保できます。
以下の推奨事項を参考にしてください。
- データとモデルのカタログを使用して、アセットを効果的に追跡および管理します。追跡と監査を容易にするため、ライフサイクル全体を通してデータとモデルのバージョンの包括的な記録を保持します。
- 機密データとモデルを保護するために、厳格なアクセス制御と監査証跡を実装します。
- AI、特に生成 AI アプリケーションにおけるバイアスの重大な問題に対処します。信頼を構築するには、モデル出力の透明性と説明可能性を高めるように努めます。
- 特徴統計情報の生成を自動化し、異常検出を実装して、データの問題をプロアクティブに特定します。モデルの信頼性を確保するには、データ分布の変化の影響を検出し、軽減するメカニズムを確立します。
AI と ML のオブザーバビリティと信頼性の包括的なプラクティスを実装する
AI オペレーションを継続的に改善するには、有意義な信頼性目標を定義し、進捗状況を測定する必要があります。オブザーバビリティは、信頼性の高いシステムの基盤となる要素です。オブザーバビリティを使用すると、進行中のオペレーションと重要なイベントを管理できます。オブザーバビリティを適切に実装すると、ユーザー向けの信頼性の高いサービスを構築して維持できます。
以下の推奨事項を参考にしてください。
- プロセッサ(CPU、GPU、TPU)と、メモリ使用量、ネットワーク レイテンシ、ディスク使用量などの他のリソースのインフラストラクチャ指標を追跡します。負荷テストとパフォーマンス モニタリングを実施します。テスト結果とモニタリングの指標を使用して、AI システムと ML システムのスケーリングと容量を管理します。
- 信頼性の目標を設定し、アプリケーション指標を追跡します。構築した AI アプリケーションのスループットやレイテンシなどの指標を測定します。アプリケーションと公開されたエンドポイントの使用パターンをモニタリングします。
- モデルの信頼性を評価するために、精度や安全性指標などのモデル固有の指標を確立します。これらの指標を一定期間にわたって追跡し、ドリフトやパフォーマンスの低下を特定します。効率的なバージョン管理と自動化のために、モニタリング構成をコードとして定義します。
- ビジネスレベルの指標を定義して追跡し、モデルと信頼性がビジネス成果に与える影響を把握します。AI サービスと ML サービスの信頼性を測定するには、SRE アプローチの採用を検討し、サービスレベル目標(SLO)を定義します。
寄稿者
著者:
- Rick(Rugui)Chen | AI インフラストラクチャ ソリューション アーキテクト
- Filipe Gracio 博士 | カスタマー エンジニア
その他の寄稿者:
- Jose Andrade | エンタープライズ インフラストラクチャ カスタマー エンジニア
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Marwan Al Shawi | パートナー カスタマー エンジニア
AI と ML の視点: 費用の最適化
Well-Architected Framework: AI と ML の視点のこのドキュメントでは、ML ライフサイクル全体で AI システムの費用を最適化するための原則と推奨事項の概要について説明します。事前対応型で情報に基づいた費用管理アプローチを採用することで、組織は AI システムと ML システムの可能性を最大限に引き出し、財務規律を維持できます。このドキュメントの推奨事項は、 Google Cloud Well-Architected Framework の費用最適化の柱に沿っています。
AI と ML のシステムは、データから価値ある分析情報と予測機能を活用するのに役立ちます。たとえば、社内プロセスの摩擦を軽減したり、ユーザー エクスペリエンスを改善したり、より深い顧客分析情報を得たりできます。クラウドでは、AI ワークロードと ML ワークロードに多額の初期投資を行うことなく、膨大なリソースを利用し、迅速な費用対効果を実現できます。ビジネス価値を最大化し、支出をビジネス目標に合わせるには、費用の要因を理解して事前に最適化を行い、支出管理を設定して FinOps のベスト プラクティスを採用する必要があります。
この記事の推奨事項は、次の基本原則にマッピングされています。
- 費用と収益を定義して測定する
- リソース割り当てを最適化する
- データ管理とガバナンスのプラクティスを適用する
- MLOps による自動化と効率化
- マネージド サービスと事前トレーニング済みモデルを使用する
費用と収益を定義して測定する
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 を測定します。
費用対効果の仮説を検証するには、まず試験運用プロジェクトから始め、次の反復最適化サイクルを使用します。
- 継続的にモニタリングしてデータを分析する: KPI と費用をモニタリングして、偏差と最適化の機会を特定します。
- データドリブンな調整を行う: データ分析情報に基づいて、戦略、モデル、インフラストラクチャ、リソース割り当てを最適化します。
- 反復的に改善する: 変化するビジネスニーズと得られた知見に基づいて、ビジネス目標と KPI を調整します。このイテレーションにより、関連性と戦略的整合性を維持できます。
- フィードバック ループを確立する: 関係者とパフォーマンス、費用、価値を確認して、継続的な最適化と将来のプロジェクト計画に役立てます。
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 プロジェクトのさまざまな段階で自動スケーリングを実装するために使用できる手法の概要を示します。
ステージ | 自動スケーリングの手法 |
---|---|
トレーニング | |
推論 |
|
小さなモデルとデータセットから始める
費用を削減するには、可能であれば小規模な ML 仮説をテストし、反復的なアプローチを使用します。このアプローチでは、モデルとデータセットを小さくすることで、次のようなメリットが得られます。
- 最初からコストを削減: コンピューティング能力、ストレージ、処理時間を削減することで、初期のテストと開発の段階でコストを削減できます。
- イテレーションの高速化: トレーニング時間が短縮されるため、イテレーションを高速化し、代替アプローチを検討し、有望な方向性をより効率的に特定できます。
- 複雑さの軽減: デバッグ、分析、結果の解釈が簡素化され、開発サイクルが短縮されます。
- リソースの効率的な使用: リソースの過剰なプロビジョニングの可能性が低くなります。現在のワークロードに必要なリソースのみをプロビジョニングします。
以下の推奨事項を参考にしてください。
- 最初にサンプルデータを使用する: データの代表的なサブセットでモデルをトレーニングします。このアプローチでは、データセット全体を処理せずに、モデルのパフォーマンスを評価し、潜在的な問題を特定できます。
- ノートブックを使用してテストする: 小さいインスタンスから始めて、必要に応じてスケーリングします。Vertex AI Workbench を使用できます。これは、さまざまなモデル アーキテクチャとデータセットのテストに適したマネージド Jupyter ノートブック環境です。
よりシンプルなモデルまたは事前トレーニング済みモデルから始める: Vertex AI Model Garden を使用して、事前トレーニング済みモデルを見つけて確認します。このようなモデルでは、必要なコンピューティング リソースが少なくなります。パフォーマンス要件に基づいて、必要に応じて複雑さを徐々に増やします。
- 画像分類や自然言語処理などのタスクに事前トレーニング済みモデルを使用します。トレーニング費用を節約するには、まず小規模なデータセットでモデルをファインチューニングします。
- 構造化データには BigQuery ML を使用します。BigQuery ML を使用すると、BigQuery 内で直接モデルを作成してデプロイできます。このアプローチは、BigQuery の従量課金制の料金モデルを利用できるため、初期のテストでは費用対効果が高くなります。
リソース最適化のためにスケーリングする: Google Cloudの柔軟なインフラストラクチャを使用して、必要に応じてリソースをスケーリングします。小さなインスタンスから始めて、必要に応じてサイズや数を調整します。
テストを通じてリソース要件を把握する
AI ワークロードと ML ワークロードのリソース要件は大きく異なる場合があります。リソース割り当てと費用を最適化するには、体系的なテストを通じてワークロードの具体的なニーズを把握する必要があります。モデルに最も効率的な構成を特定するには、さまざまな構成をテストして、そのパフォーマンスを分析します。次に、要件に基づいて、トレーニングとサービングに使用したリソースを適切にサイズ設定します。
テストには次のアプローチをおすすめします。
- ベースラインから始める: ワークロード要件の初期見積もりに基づいて、ベースライン構成から始めます。ベースラインを作成するには、新しいワークロードの費用見積もりツールを使用するか、既存の請求レポートを使用します。詳細については、 Google Cloudでエンタープライズ AI の真の費用を把握するをご覧ください。
- 割り当てを理解する: 大規模なテストを開始する前に、使用する予定のリソースと API の Google Cloud プロジェクトの割り当てをよく理解してください。割り当てによって、実際にテストできる構成の範囲が決まります。割り当てを理解することで、テスト段階で利用可能なリソースの制限内で作業できます。
- 体系的にテストする: CPU の数、メモリの量、GPU と TPU の数とタイプ、ストレージ容量などのパラメータを調整します。Vertex AI Training と Vertex AI Predictions を使用すると、さまざまなマシンタイプと構成を試すことができます。
使用率、費用、パフォーマンスをモニタリングする: テストする各構成について、リソース使用率、費用、主要なパフォーマンス指標(トレーニング時間、推論レイテンシ、モデルの精度など)を追跡します。
- リソース使用率とパフォーマンス指標を追跡するには、Vertex AI コンソールを使用します。
- 詳細なパフォーマンス指標を収集して分析するには、Cloud Monitoring を使用します。
- 費用を表示するには、Cloud Billing レポートと Cloud Monitoring ダッシュボードを使用します。
- モデルのパフォーマンスのボトルネックを特定し、リソース使用率を最適化するには、Vertex AI TensorBoard などのプロファイリング ツールを使用します。
費用を分析する: 各構成の費用とパフォーマンスを比較して、費用対効果が最も高いオプションを特定します。
割り当てに基づいてリソースのしきい値と改善目標を設定する: スケーリングによってパフォーマンスの収益が減少し始めるしきい値を定義します。たとえば、トレーニング時間やレイテンシの最小限の削減でコストが大幅に増加する場合などです。これらのしきい値を設定する際は、プロジェクトの割り当てを考慮してください。パフォーマンスの向上によって、さらなるスケーリングの費用と割り当てへの影響が正当化されなくなるポイントを特定します。
反復的に調整する: 調査結果に基づいて調整された構成でテストプロセスを繰り返します。リソース使用量が割り当てられた割り当て内に収まり、確立された費用対効果のしきい値と一致していることを常に確認してください。
MLOps を使用して非効率性を軽減する
イノベーションと効率性を推進するために ML を使用する組織が増えるにつれて、ML ライフサイクルを効果的に管理することが重要になっています。ML オペレーション(MLOps)は、モデル開発からデプロイとモニタリングまで、ML ライフサイクルを自動化および合理化する一連のプラクティスです。
MLOps をコスト要因に合わせる
MLOps を活用してコスト効率を高めるには、ML ライフサイクルの主なコスト要因を特定します。次に、費用要因に沿った MLOps プラクティスを採用して実装できます。最も影響力の大きいコスト要因に対処する MLOps 機能を優先して採用します。このアプローチは、大幅なコスト削減につながる管理可能な成功への道筋を確保するのに役立ちます。
費用最適化のために MLOps を実装する
コスト削減に役立つ一般的な MLOps プラクティスは次のとおりです。
- バージョン管理: Git などのツールを使用すると、コード、データ、モデルのバージョンを追跡できます。バージョン管理により、再現性が確保され、コラボレーションが促進され、バージョン管理の問題によって発生する可能性のあるコストのかかる再作業を防ぐことができます。
- 継続的インテグレーションと継続的デリバリー(CI/CD): Cloud Build と Artifact Registry を使用すると、CI/CD パイプラインを実装して、ML モデルのビルド、テスト、デプロイを自動化できます。CI/CD パイプラインにより、リソースの効率的な使用が保証され、手動による介入に関連するコストが最小限に抑えられます。
- オブザーバビリティ: Cloud Monitoring と Cloud 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 グループと Dataplex Universal Catalog のロールを使用します。
- データ品質プロセスを効率化するには、自動データ品質を有効にします。
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 タスクに関連するデータソースを特定して選択します。
- Cloud SQL、Spanner、AlloyDB for PostgreSQL、Firestore、BigQuery などのデータベース オプション。選択は、書き込みアクセス時のレイテンシ(静的または動的)、データ量(多いか少ないか)、データ形式(構造化、非構造化、半構造化)などの要件によって異なります。詳細については、Google Cloud データベースをご覧ください。
- BigLake を使用した Cloud Storage などのデータレイク。
- Dataplex Universal Catalog: 複数のソースにわたるデータを管理します。
- Pub/Sub、Dataflow、Apache Kafka などのストリーミング イベント プラットフォーム。
- 外部 API。
データソースごとに、取り込みツールを選択します。
- Dataflow: さまざまなソースからのデータのバッチ処理とストリーム処理。ML コンポーネントの統合。イベント ドリブン アーキテクチャでは、Dataflow と Eventarc を組み合わせて、ML のデータを効率的に処理できます。MLOps と ML ジョブの効率を高めるには、GPU と Right Fitting 機能を使用します。
- Cloud Run functions: リアルタイム アプリケーションのデータソースの変更によってトリガーされるイベント ドリブンのデータ取り込み。
- BigQuery: 頻繁にアクセスする従来の表形式データの取り込み。
データ変換と読み込みのツールを選択します。
- Dataflow や Dataform などのツールを使用して、特徴のスケーリング、カテゴリ変数のエンコード、新しい特徴の作成などのデータ変換をバッチ、ストリーミング、リアルタイムで自動化します。選択するツールは、要件と選択したサービスによって異なります。
- Vertex AI Feature Store を使用して、特徴の作成と管理を自動化します。さまざまなモデルやプロジェクトで再利用できるように、特徴を集中管理できます。
データの収集と処理を標準化する
データアセットの検出、理解、管理には、Dataplex Universal Catalog などのメタデータ管理サービスを使用します。これにより、データ定義を標準化し、組織全体で一貫性を確保できます。
標準化を適用し、複数のカスタム実装の維持費用を回避するには、自動トレーニング パイプラインとオーケストレーションを使用します。詳細については、次のセクションをご覧ください。
トレーニング パイプラインを自動化し、既存のアセットを再利用する
MLOps の効率と生産性を高めるには、自動化されたトレーニング パイプラインが不可欠です。 Google Cloud は、既存のアセットの再利用を重視して、トレーニング パイプラインを構築してデプロイするための堅牢なツールとサービスのセットを提供します。自動化されたトレーニング パイプラインは、モデル開発の加速、一貫性の確保、冗長な作業の削減に役立ちます。
トレーニング パイプラインを自動化する
次の表に、トレーニング パイプラインのさまざまな機能を自動化するために使用できる Google Cloud サービスと機能を示します。
関数 | Google Cloud サービスと機能 |
---|---|
オーケストレーション: 複数のステップと依存関係で構成される複雑な ML ワークフローを定義します。各ステップを個別のコンテナ化されたタスクとして定義できるため、個々のタスクを簡単に管理およびスケーリングできます。 |
|
バージョニング: パイプラインとコンポーネントのさまざまなバージョンを追跡して制御し、再現性と監査可能性を確保します。 | 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 の分散トレーニング インフラストラクチャを使用します。このアプローチでは、複数のマシンでモデルをトレーニングできるため、トレーニング時間と関連費用を大幅に削減できます。次のようなツールを使用します。
- Vertex AI チューニング: Gemini、Imagen などのモデルの教師ありファインチューニングを実行します。
- カスタム分散トレーニング用の Vertex AI トレーニングまたは Vertex AI の Ray。
分散トレーニングと効率的なリソース使用率をサポートする、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 モデル(Gemini モデル ファミリーや画像生成用の Imagen など)。
- Gemma や Llama などのオープンソース モデル。
- Anthropic や Mistral AI などのパートナーのサードパーティ モデル。
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 博士 | カスタマー エンジニア
- 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 博士 | カスタマー エンジニア
その他の寄稿者:
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Marwan Al Shawi | パートナー カスタマー エンジニア
- Zach Seils | ネットワーキング スペシャリスト