翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker AI Components for Kubeflow Pipelines
Kubeflow パイプライン用の SageMaker AI コンポーネントを使用すると、Kubeflow Pipelines から SageMaker AI トレーニング、チューニング、エンドポイントのデプロイ、バッチ変換などのネイティブのジョブを作成およびモニタリングできます。SageMaker AI で Kubeflow Pipeline ジョブを実行することで、データ処理ジョブとトレーニングジョブを Kubernetes クラスターから SageMaker AI の機械学習に最適化されたマネージドサービスに移動できます。このドキュメントは、Kubernetes および Kubeflow に関する事前知識を前提としています。
内容
Kubeflow Pipelines とは
Kubeflow Pipelines (KFP) は、Docker コンテナをベースにしたポータブルでスケーラブルな機械学習 (ML) ワークフローを構築およびデプロイするためのプラットフォームです。Kubeflow Pipelines プラットフォームは以下の要素で構成されます。
-
実験、ジョブ、実行を管理および追跡するためのユーザーインターフェイス (UI)。
-
複数ステップの ML ワークフローをスケジューリングするためのエンジン (Argo)。
-
パイプラインとコンポーネントを定義して操作するための SDK。
-
SDK を使用してシステムとやり取りするためのノートブック。
パイプラインは ML ワークフローを説明したもので、有向非巡回グラフグラフ
Kubeflow Pipelines の詳細については、「Kubeflow Pipelines のドキュメント
Kubeflow Pipeline コンポーネントとはどういうものですか?
Kubeflow Pipeline コンポーネントは、Kubeflow パイプラインの 1 つのステップを実行するために使用される一連のコードです。コンポーネントは、Docker イメージに組み込まれた Python モジュールに代表されます。パイプラインが実行されると、Kubeflow を実行している Kubernetes クラスタ-のワーカーノードのいずれかでコンポーネントのコンテナがインスタンス化され、ロジックが実行されます。パイプラインコンポーネントは、前のコンポーネントから出力を読み取り、パイプラインの次のコンポーネントが使用できる出力を作成できます。これらのコンポーネントを使用すると、基礎となる Kubernetes インフラストラクチャを操作することなく、実験環境や本番環境のパイプラインを迅速かつ簡単に作成できます。
SageMaker AI コンポーネントは Kubeflow パイプラインで使用できます。ロジックをカスタムコンテナにカプセル化するのではなく、Kubeflow Pipelines SDK を使用してコンポーネントを読み込み、パイプラインを記述するだけで済みます。パイプラインが実行されると、指示が SageMaker AI ジョブまたはデプロイに変換されます。その後、ワークロードは SageMaker AI のフルマネージドインフラストラクチャー上で実行されます。
SageMaker AI Components for Kubeflow Pipelines を使用する理由
SageMaker AI Components for Kubeflow Pipelines は、SageMaker AI からコンピューティング集約型のジョブを起動する代替手段を提供します。コンポーネントは、SageMaker AI と Kubeflow Pipelines の移植性とオーケストレーションを統合しています。SageMaker AI Components for Kubeflow Pipelines を使用すると、Kubeflow Pipelines ワークフローの一部として SageMaker AI リソースを作成してモニタリングできます。パイプライン内の各ジョブは、ローカル Kubernetes クラスターではなく SageMaker AI 上で実行されるため、データラベリング、大規模なハイパーパラメータのチューニング、分散トレーニングジョブ、ワンクリックで実行できる安全かつスケーラブルなモデルのデプロイなど、主要な SageMaker AI 機能を活用できます。SageMaker AI のジョブパラメータ、ステータスログ、出力には、Kubeflow パイプライン UI から引き続きアクセスできます。
SageMaker AI コンポーネントは、データの準備から ML モデルの構築、トレーニング、デプロイに至るまでの SageMaker AI の主要な機能を ML ワークフローに統合します。これらのコンポーネントを使用して完全に構築された Kubeflow Pipeline を作成できるほか、必要に応じて個々のコンポーネントをワークフローに統合することもできます。コンポーネントは 1 つまたは 2 つのバージョンで利用できます。コンポーネントのバージョンごとに異なるバックエンドが使用されます。 バージョンの詳細については、「SageMaker AI Components for Kubeflow Pipelines のバージョン」を参照してください。
SageMaker AI Components for Kubeflow Pipelines は追加料金なしで使用できます。これらのコンポーネントを介して使用する SageMaker AI リソースに対しては、料金が発生します。
SageMaker AI Components for Kubeflow Pipelines のバージョン
SageMaker AI Components for Kubeflow Pipelines には、2 つのバージョンがあります。各バージョンは、異なるバックエンドを利用して SageMaker AI 上でリソースを作成して管理します。
-
SageMaker AI Components for Kubeflow Pipelines バージョン 1 (v1.x 以前) は、バックエンドとして Boto3
(AWS SDK for Python (Boto3)) を使用します。 -
SageMaker AI Components for Kubeflow Pipelines バージョン 2 (v2.0.0-alpha2 以降) は SageMaker AI Operator for Kubernetes (ACK)
を使用しています。 AWS は、 AWS クラウドリソースを管理する Kubernetes ネイティブな方法を容易にするために ACK
を導入しました。ACK にはサービス AWS 固有のコントローラーのセットが含まれており、そのうちの 1 つは SageMaker AI コントローラーです。SageMaker AI コントローラーを使用すると、機械学習デベロッパーやデータサイエンティストは、Kubernetes をコントロールプレーンとして使用して、SageMaker AI で機械学習 (ML) モデルをより簡単にトレーニング、調整、デプロイできるようになります。詳細については「 Kubernetes 向け SageMaker AI の 演算子 」を参照してください。
SageMaker AI Components for Kubeflow Pipelines のバージョンは両方ともサポートされています。ただし、バージョン 2 には他にも利点がいくつかあります。特に、以下の利点を得られます。
-
Kubeflow パイプライン、Kubernetes CLI (
kubectl)、ノートブックなどの他の Kubeflow アプリケーションなど、任意のアプリケーションから SageMaker AI リソースを管理できる一貫したエクスペリエンス -
Kubeflow パイプラインワークフローの外部で SageMaker AI リソースを管理してモニタリングする柔軟性
-
SageMaker AI Operator がデプロイに含まれているため、Kubeflow on AWS
をフルデプロイした場合、SageMaker AI コンポーネントを使用するための設定時間が不要になります。
SageMaker AI Components for Kubeflow Pipelines 一覧
以下は、SageMaker AI Components for Kubeflow Pipelines のすべてと使用可能なバージョンのリストです。または、GitHub で SageMaker AI Components for Kubeflow Pipelines
注記
SageMaker AI コンポーネントのバージョン 2 が利用可能な場合は、それを利用することをお勧めします。
-
Ground Truth
Ground Truth コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker AI Ground Truth ラベリングジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
作業チーム
Workteam コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker AI プライベートワークチームジョブを作成できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 SageMaker AI がプライベートワークチームを作成する Kubeflow Pipelines コンポーネントのバージョン 1
X
-
Processing
Processing コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker AI に処理ジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
トレーニング
トレーニングコンポーネントを使用すると、Kubeflow Pipelines ワークフローから SageMaker トレーニングジョブを直接送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 -
ハイパーパラメータの最適化
ハイパーパラメータ最適化コンポーネントを使用すると、Kubeflow Pipelines ワークフローから SageMaker AI にハイパーパラメータ調整ジョブを直接送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
ホスティングデプロイ
Hosting コンポーネントを使用すると、Kubeflow Pipelines ワークフローから SageMaker AI ホスティングサービスを使用してモデルをデプロイできます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 SageMaker AI ホスティングサービス - エンドポイント Kubeflow パイプラインコンポーネントのバージョン 1 を作成
ホスティングコンポーネントのバージョン 2 は、SageMaker AI 上でホスティングデプロイを作成するために必要な 3 つのサブコンポーネントで構成されています。
-
SageMaker モデル Kubeflow Pipelines コンポーネントバージョン 2
は、モデルアーティファクトと推論コードを含むモデルイメージのレジストリパスの責任を担います。 -
SageMaker AI エンドポイント Kubeflow Pipelines コンポーネント バージョン 2
は、エンドポイント設定で指定されたとおりに SageMaker AI 上のエンドポイントを作成または更新します。 -
SageMaker AI エンドポイント Kubeflow Pipelines コンポーネントバージョン 2
は、エンドポイント設定の指定に従って SageMaker AI のエンドポイントを作成または更新します。
-
-
バッチ変換
バッチ変換コンポーネントを使用すると、Kubeflow Pipelines ワークフローから SageMaker AI のデータセット全体に対して推論ジョブを実行できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
モデルモニター
Model Monitor コンポーネントを使用すると、Kubeflow Pipelines ワークフローから本番環境の SageMaker AI 機械学習モデルの品質をモニタリングできます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
モデルモニターコンポーネントは、モデル内のドリフトをモニタリングするための 4 つのサブコンポーネントで構成されています。
-
SageMaker AI Data Quality Job Definition Kubeflow Pipelines コンポーネントのバージョン 2
は、データ品質のドリフトをモニタリングします。 -
SageMaker AI Model Quality Job Definition Kubeflow Pipelines コンポーネントのバージョン 2
は、、モデルの質メトリクスのドリフトをモニタリングします。 -
SageMaker AI Model Bias Job Definition Kubeflow Pipelines コンポーネントのバージョン 2
は、モデルの予測におけるバイアスをモニタリングします。 -
SageMaker AI Model Explainability Job Definition Kubeflow Pipelines コンポーネントのバージョン 2
は、特徴属性のドリフトをモニタリングします。
さらに、指定された頻度でスケジュールどおりにモニタリングするために、5 番目のコンポーネントである SageMaker AI Monitoring Schedule Kubeflow Pipelines コンポーネントのバージョン 2
は、スケジュールに従ってリアルタイムエンドポイントから収集されたデータをモニタリングします。 Amazon SageMaker Model Monitor の詳細については、「Amazon SageMaker Model Monitor を使用したデータとモデルの品質モニタリング」参照してください。
-
IAM アクセス許可
SageMaker AI コンポーネントで Kubeflow Pipelines をデプロイするには、次の 3 つのレイヤーの認証が必要です。
-
ゲートウェイノード (ローカルマシンまたはリモートインスタンス) に Amazon Elastic Kubernetes Service (Amazon EKS) クラスターへのアクセスを許可する IAM ロール。
ゲートウェイノードにアクセスするユーザーは、このロールを引き受けて次のことを行います。
-
Amazon EKS クラスターを作成し、KFP をインストールする
-
IAM ロールを作成する
-
サンプル入力データ用の Amazon S3 バケットを作成する
このロールには以下のアクセス許可が必要です。
-
CloudWatchLogsFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonEC2FullAccess
-
AmazonEKSAdminPolicy (「Amazon EKS アイデンティティベースのポリシーの例」のスキーマを使用してこのポリシーを作成)
-
-
Kubernetes パイプラインポッド (kfp-example-pod-role) または SageMaker AI Operator for Kubernetes コントローラーポッドが SageMaker AI にアクセスするために引き受ける Kubernetes IAM 実行ロール。このロールは、Kubernetes から SageMaker AI ジョブを作成してモニタリングするために使用されます。
このロールには以下のアクセス許可が必要です。
-
AmazonSageMakerFullAccess
独自のカスタムポリシーを作成してアタッチすることで、KFP ポッドとコントローラーポッドのアクセス許可を制限できます。
-
-
Amazon SageMaker3 や Amazon ECR (kfp-example-sagemaker-execution-role) などの AWS リソースにアクセスするために SageMaker AI ジョブが引き受ける SageMaker AI IAM 実行ロール。 Amazon S3
SageMaker ジョブは、以下の目的でこのロールを使用します。
-
SageMaker AI のリソースにアクセスする
-
Amazon S3 からデータを入力する
-
出力モデルを Amazon S3 に保存する
このロールには以下のアクセス許可が必要です。
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
SageMaker AI を使用するためのパイプライン変換
汎用的な Python 処理コンテナとトレーニングコンテナを移植することで、既存のパイプラインを SageMaker AI を使用するように変換できます。推論に SageMaker AI を使用している場合は、クラスターに IAM アクセス許可をアタッチして、アーティファクトをモデルに変換する必要もあります。