Amazon SageMaker AI でマネージド MLflow を使用して生成 AI 開発を加速する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SageMaker AI でマネージド MLflow を使用して生成 AI 開発を加速する

Amazon SageMaker AI 上のフルマネージド MLflow 3.0 では、単一のツールを使用して実験の追跡、モデルと AI アプリケーションのパフォーマンスのモニタリングを簡単に実行できるため、生成 AI を加速できます。

MLflow 3.0 を使用した生成 AI 開発

さまざまな業界のお客様が生成 AI 開発を加速させるために、実験を追跡し、動作を観察し、モデルと AI アプリケーションのパフォーマンスを評価する機能を必要としています。データサイエンティストやデベロッパーには、モデルや AI アプリケーションのパフォーマンスを実験から本番稼働まで分析するためのツールが不足しているため、根本原因を突き止めて問題を解決することが困難になっています。チームでは、モデルや生成 AI アプリケーションの改善よりもツールの統合に多くの時間を費やしています。

生成 AI と機械学習のトレーニングやファインチューニングは反復的なプロセスであり、データ、アルゴリズム、パラメータをさまざまに組み合わせて試し、それによるモデルの精度への影響を観察する必要があります。実験の反復的という性質上、モデルトレーニングの実行回数もバージョン数も膨大になるため、最もパフォーマンスの高いモデルとその設定を追跡することは困難です。反復トレーニングの実行を管理および比較する複雑さは、生成 AI が登場したことで一層増しています。実験では、モデルをファインチューニングするだけでなく、創造的で多様な出力を探すことも求められるようになりました。研究者は、生成されるコンテンツを品質と創造性の両面から最適化するために、ハイパーパラメータを調整し、適切なモデルアーキテクチャを選定し、多様なデータセットを選別する必要があります。生成 AI モデルを評価するには、定量的および定性的なメトリクスが両方必要であり、そのせいで実験プロセスが一層複雑になっています。Amazon SageMaker AI 上の MLflow 3.0 に用意されている実験追跡機能を使用すると、反復的な機械学習実験を整理、表示、分析、比較してインサイトを得て、最もパフォーマンスの高いモデルを登録し、デプロイできます。

フルマネージド MLflow 3.0 のトレース機能を使用すると、生成 AI アプリケーションのすべてのステップで入力、出力、メタデータを記録できるため、バグや予期しない動作の原因をすばやく特定できます。各モデルとアプリケーションバージョンのレコードを維持することで、フルマネージド MLflow 3.0 は AI のレスポンスをソースコンポーネントに関連付けるためのトレーサビリティを実現するため、AI が生成した特定のコード、データ、またはパラメータに問題を直接関連付けることができます。これにより、トラブルシューティング時間が大幅に短縮され、チームはよりイノベーションに集中できるようになります。

MLflow の統合

モデルのトレーニング中や評価中に MLflow を使用して、ユースケースに最適な候補を見つけることができます。MLflow UI で複数の実験にわたってモデルのパフォーマンス、パラメータ、メトリクスを比較し、最適なモデルを MLflow Model Registry で追跡し、SageMaker AI モデルとして自動的に登録して、登録済みのモデルを SageMaker AI エンドポイントにデプロイできます。

Amazon SageMaker AI と MLflow

MLflow を使用して、モデル開発、管理、デプロイ、追跡AWSの統合により、機械学習 (ML) ライフサイクルの実験フェーズを追跡および管理します。

Amazon SageMaker Studio

追跡サーバーを作成して管理し、ノートブックを実行して実験を作成し、MLflow UI にアクセスして実験の実行を表示および比較するなど、そのすべてを Studio で行うことができます。

SageMaker Model Registry

MLflow Model Registry から SageMaker Model Registry にモデルを自動的に登録して、本番稼働用のモデルバージョンとカタログモデルを管理します。詳細については、「SageMaker Model Registry に SageMaker AI モデルを自動的に登録する」を参照してください。

SageMaker AI 推論

ModelBuilder を使用して、SageMaker AI エンドポイントへのデプロイに最適なモデルを準備します。詳細については、「ModelBuilder で MLflow モデルをデプロイする」を参照してください。

AWS Identity and Access Management

IAM でロールベースのアクセスコントロール (RBAC) を使用して、MLflow へのアクセスを設定します。MLflow 追跡サーバーのクライアントが呼び出せる MLflow API を承認する IAM アイデンティティポリシーを作成します。すべての MLflow REST API は、sagemaker-mlflow というサービスプレフィックスが付いた IAM アクションとして表されます。詳細については、「MLflow の IAM アクセス許可を設定する」を参照してください。

AWS CloudTrail

のログを表示AWS CloudTrailして、AWSアカウントの運用とリスクの監査、ガバナンス、コンプライアンスを有効にします。詳細については、「AWS CloudTrailログ」を参照してください。

Amazon EventBridge

Amazon EventBridge でキャプチャされた MLflow イベントを基に、モデルのレビューとデプロイのライフサイクルを自動化します。詳細については、「Amazon EventBridge イベント」を参照してください。

サポートされているAWS リージョン

MLflow を使用した Amazon SageMaker AI は、中国リージョンを除く、Amazon SageMaker Studio が利用可能なすべてのAWS商用リージョンで一般利用可能です。MLflow を使用した SageMaker AI は、AWS CLI欧州 (チューリッヒ) リージョン、アジアパシフィック (ハイデラバード) リージョン、アジアパシフィック (メルボルン) リージョン、カナダ西部 (カルガリー) リージョンでのみ使用できます。

追跡サーバーは、指定されたリージョン内の単一のアベイラビリティーゾーンで起動します。

仕組み

MLflow 追跡サーバーには、コンピューティング、バックエンドメタデータストレージ、アーティファクトストレージという 3 つの主要コンポーネントがあります。追跡サーバーとバックエンドメタデータストレージをホストするコンピューティングは、SageMaker AI サービスアカウントで安全にホストされます。アーティファクトストレージは、自分のAWSアカウントの Amazon S3 バケットに存在します。

MLflow 追跡サーバーのコンピューティングとメタデータストアを示す図。

追跡サーバーには ARN があります。この ARN を使用して MLflow SDK を追跡サーバーに接続し、トレーニングの実行を MLflow に記録し始めることができます。

次の主要概念の詳細について、後述します。

バックエンドメタデータストレージ

MLflow 追跡サーバーを作成すると、実行 (Run) ごとの各種メタデータ (実行 ID、開始時刻と終了時刻、パラメータ、メトリクスなど) を保持するバックエンドストアが、SageMaker AI サービスアカウント内で自動的に設定されます。これは、フルマネージドのストアです。

アーティファクトストレージ

各実行のメタデータ (実験実行のモデルの重み、イメージ、モデルファイル、データファイルなど) を MLflow で永続的に保存できるように、Amazon S3 を使用してアーティファクトストアを作成する必要があります。アーティファクトストアはAWSアカウント内で設定する必要があり、アーティファクトストアにアクセスするには、MLflow に Amazon S3 へのアクセスを明示的に許可する必要があります。詳細については、MLflow ドキュメントの「Artifact Stores」を参照してください。

注記

SageMaker AI MLflow のダウンロードサイズには 200 MB の制限があります。

MLflow アプリのバージョン

SageMaker AI MLflow アプリでは、次の MLflow バージョンを使用できます。

MLflow バージョン Python バージョン
MLflow 3.4 (最新バージョン) Python 3.9 以降

MLflow アプリの最新バージョンには、最新の機能、セキュリティパッチ、バグ修正が含まれています。新しい MLflow アプリを作成すると、サポートされている最新バージョンに自動的に更新されます。MLflow アプリの作成の詳細については、「」を参照してくださいMLflow アプリのセットアップ

MLflow Apps はセマンティックバージョニングを使用します。バージョンの形式は major-version.minor-version.patch-version です。

MLflow 追跡サーバーのサイズ

オプションで、Studio UI またはAWS CLIパラメータ を使用して、追跡サーバーのサイズを指定できます--tracking-server-size"Small""Medium""Large" のいずれかから選択できます。デフォルトの MLflow 追跡サーバーの設定サイズは "Small" です。ログに記録されるデータ量、ユーザー数、使用頻度など、追跡サーバーの予想使用量に応じてサイズを選択できます。

ユーザー数が 25 人以下のチームには小さな (Small) 追跡サーバー、50 人以下のチームには中規模な (Medium) 追跡サーバー、最大 100 人のチームには大きな (Large) 追跡サーバーを使用することをお勧めします。これらの推奨は、ユーザー全員が同時に MLflow 追跡サーバーにリクエストを行うことを前提としています。予想される使用状況パターンと各追跡サーバーが対応している TPS (1 秒あたりのトランザクション数) に基づいて、追跡サーバーのサイズを選択してください。

注記

ワークロードの性質と追跡サーバーに対して行うリクエストのタイプによって、TPS が決まります。

追跡サーバーのサイズ 持続的 TPS バースト時の TPS
Small 最大 25 最大 50
Medium 最大 50 最大 100
Large 最大 100 最大 200

追跡サーバーのバージョン

SageMaker AI では、次の MLflow バージョンを使用できます。

MLflow バージョン Python バージョン
MLflow 3.0 (最新バージョン) Python 3.9 以降
MLflow 2.16 Python 3.8 以降
MLflow 2.13 Python 3.8 以降

追跡サーバーの最新バージョンには、最新の機能、セキュリティパッチ、バグ修正が含まれています。新しい追跡サーバーを作成するときは、最新バージョンを使用することをお勧めします。追跡サーバーの作成方法の詳細については、「MLflow 追跡サーバー」を参照してください。

MLflow 追跡サーバーではセマンティックバージョニングを使用します。バージョンの形式は major-version.minor-version.patch-version です。

新しい UI 要素や API 機能などの最新の機能はマイナーバージョンに含まれています。

AWS CloudTrailログ

AWS CloudTrailは、MLflow 追跡サーバーに関連するアクティビティを自動的にログに記録します。次のコントロールプレーン API コールが CloudTrail に記録されます。

  • CreateMlflowTrackingServer

  • DescribeMlflowTrackingServer

  • UpdateMlflowTrackingServer

  • DeleteMlflowTrackingServer

  • ListMlflowTrackingServers

  • CreatePresignedMlflowTrackingServer

  • StartMlflowTrackingServer

  • StopMlflowTrackingServer

AWS CloudTrailは、MLflow データプレーンに関連するアクティビティも自動的にログに記録します。次のデータプレーン API コールが CloudTrail に記録されます。イベント名については、プレフィックス Mlflow (例: MlflowCreateExperiment) が追加されます。

  • CreateExperiment

  • CreateModelVersion

  • CreateRegisteredModel

  • CreateRun

  • DeleteExperiment

  • DeleteModelVersion

  • DeleteModelVersionTag

  • DeleteRegisteredModel

  • DeleteRegisteredModelAlias

  • DeleteRegisteredModelTag

  • DeleteRun

  • DeleteTag

  • GetDownloadURIForModelVersionArtifacts

  • GetExperiment

  • GetExperimentByName

  • GetLatestModelVersions

  • GetMetricHistory

  • GetModelVersion

  • GetModelVersionByAlias

  • GetRegisteredModel

  • GetRun

  • ListArtifacts

  • LogBatch

  • LogInputs

  • LogMetric

  • LogModel

  • LogParam

  • RenameRegisteredModel

  • RestoreExperiment

  • RestoreRun

  • SearchExperiments

  • SearchModelVersions

  • SearchRegisteredModels

  • SearchRuns

  • SetExperimentTag

  • SetModelVersionTag

  • SetRegisteredModelAlias

  • SetRegisteredModelTag

  • SetTag

  • TransitionModelVersionStage

  • UpdateExperiment

  • UpdateModelVersion

  • UpdateRegisteredModel

  • UpdateRun

  • FinalizeLoggedModel

  • GetLoggedModel

  • DeleteLoggedModel

  • SearchLoggedModels

  • SetLoggedModelTags

  • DeleteLoggedModelTag

  • ListLoggedModelArtifacts

  • LogLoggedModelParams

  • LogOutputs

CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。

Amazon EventBridge イベント

EventBridge を使用して、SageMaker AI で MLflow を使用する場合に発生するイベントを組織全体のコンシューマーアプリケーションにルーティングします。以下のイベントが EventBridge に送信されます。

  • 「SageMaker 追跡サーバーの作成中」

  • 「SageMaker 追跡サーバーの作成完了」

  • 「SageMaker 追跡サーバーの作成失敗」

  • 「SageMaker 追跡サーバーの更新中」

  • 「SageMaker 追跡サーバーの更新完了」

  • 「SageMaker 追跡サーバーの更新失敗」

  • 「SageMaker 追跡サーバーの削除中」

  • 「SageMaker 追跡サーバーの削除完了」

  • 「SageMaker 追跡サーバーの削除失敗」

  • 「SageMaker 追跡サーバーの起動中」

  • 「SageMaker 追跡サーバーの起動完了」

  • 「SageMaker 追跡サーバーの起動失敗」

  • 「SageMaker 追跡サーバーの停止中」

  • 「SageMaker 追跡サーバーの停止完了」

  • 「SageMaker 追跡サーバーの停止失敗」

  • 「SageMaker 追跡サーバーのメンテナンス中」

  • 「SageMaker 追跡サーバーのメンテナンス完了」

  • 「SageMaker 追跡サーバーのメンテナンス失敗」

  • 「SageMaker MLFlow 追跡サーバーで実行を作成中」

  • 「SageMaker MLFlow 追跡サーバーで RegisteredModel を作成中」

  • 「SageMaker MLFlow 追跡サーバーで ModelVersion を作成中」

  • 「SageMaker MLFlow 追跡サーバーの ModelVersion ステージを切り替え中」

  • 「SageMaker MLFlow 追跡サーバーで登録済みモデルのエイリアスを設定中」

EventBridge の詳細については、「Amazon EventBridge ユーザーガイド」を参照してください。