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 | パートナー カスタマー エンジニア