翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Kubeflow Pipelines 用の 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 インフラストラクチャを操作することなく、実験環境や本番環境のパイプラインを迅速かつ簡単に作成できます。
Kubeflow パイプラインで SageMaker AI コンポーネントを使用できます。ロジックをカスタムコンテナにカプセル化するのではなく、Kubeflow Pipelines SDK を使用してコンポーネントを読み込み、パイプラインを記述するだけで済みます。パイプラインが実行されると、指示は SageMaker AI ジョブまたはデプロイに変換されます。その後、ワークロードは SageMaker AI のフルマネージドインフラストラクチャで実行されます。
Kubeflow Pipelines に SageMaker AI コンポーネントを使用する理由
Kubeflow Pipelines 用の SageMaker AI コンポーネントは、SageMaker AI からコンピューティング集約型のジョブを起動する代わりに使用できます。コンポーネントは SageMaker AI を Kubeflow Pipelines の移植性とオーケストレーションと統合します。Kubeflow Pipelines 用の SageMaker AI コンポーネントを使用すると、Kubeflow Pipelines ワークフローの一部として SageMaker AI リソースを作成およびモニタリングできます。パイプライン内の各ジョブは、ローカル Kubernetes クラスターではなく SageMaker AI で実行されるため、データラベリング、大規模なハイパーパラメータ調整と分散トレーニングジョブ、ワンクリックで安全かつスケーラブルなモデルデプロイなどの主要な SageMaker AI 機能を利用できます。SageMaker AI からのジョブパラメータ、ステータス、ログ、出力には、Kubeflow Pipelines UI から引き続きアクセスできます。
SageMaker AI コンポーネントは、データの準備から ML モデルの構築、トレーニング、デプロイまで、主要な SageMaker AI 機能を ML ワークフローに統合します。これらのコンポーネントを使用して完全に構築された Kubeflow Pipeline を作成できるほか、必要に応じて個々のコンポーネントをワークフローに統合することもできます。コンポーネントは 1 つまたは 2 つのバージョンで利用できます。コンポーネントのバージョンごとに異なるバックエンドが使用されます。 バージョンの詳細については、「Kubeflow Pipelines バージョン用の SageMaker AI コンポーネント」を参照してください。
Kubeflow Pipelines に SageMaker AI コンポーネントを使用する場合、追加料金はかかりません。これらのコンポーネントを通じて使用する SageMaker AI リソースには料金が発生します。
Kubeflow Pipelines バージョン用の SageMaker AI コンポーネント
Kubeflow Pipelines 用の SageMaker AI コンポーネントには 2 つのバージョンがあります。各バージョンは、異なるバックエンドを活用して SageMaker AI でリソースを作成および管理します。
-
Kubeflow Pipelines バージョン 1 (v1.x 以下) 用の SageMaker AI コンポーネントは、バックエンドとして Boto3
(AWS SDK for Python (Boto3)) を使用します。 -
Kubeflow Pipelines 用の SageMaker AI コンポーネントのバージョン 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) モデルをトレーニング、調整、デプロイすることが容易になります。詳細については、SageMaker AI Operators for Kubernetes 」を参照してください。
Kubeflow Pipelines 用の SageMaker AI コンポーネントの両方のバージョンがサポートされています。ただし、バージョン 2 には他にも利点がいくつかあります。特に、以下の利点を得られます。
-
Kubeflow パイプラインを使用しているか、Kubernetes CLI (
kubectl
) を使用しているか、ノートブックなどの他の Kubeflow アプリケーションを使用しているかにかかわらず、任意のアプリケーションから SageMaker AI リソースを管理するための一貫したエクスペリエンス。 -
Kubeflow パイプラインワークフローの外部で SageMaker AI リソースを管理およびモニタリングする柔軟性。
-
SageMaker AI Operator がデプロイの一部であるため、リリース時に完全な Kubeflow AWS
をデプロイした場合、SageMaker AI コンポーネントを使用するためのセットアップ時間がゼロになります。
Kubeflow Pipelines 用の SageMaker AI コンポーネントのリスト
以下は、Kubeflow Pipelines のすべての SageMaker AI コンポーネントとその利用可能なバージョンのリストです。または、GitHub で Kubeflow Pipelines 用のすべての SageMaker AI コンポーネント
注記
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 -
ハイパーパラメータの最適化
Hyperparameter Optimization コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker AI にハイパーパラメータ調整ジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
ホスティングデプロイ
ホスティングコンポーネントを使用すると、Kubeflow Pipelines ワークフローから SageMaker AI ホスティングサービスを使用してモデルをデプロイできます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 SageMaker AI ホスティングサービス - エンドポイント Kubeflow Pipeline コンポーネントバージョン 1
を作成します。 ホスティングコンポーネントのバージョン 2 は、SageMaker AI でホスティングデプロイを作成するために必要な 3 つのサブコンポーネントで構成されます。
-
モデルアーティファクトと推論コードを含むモデルイメージレジストリパスを担当する SageMaker AI Model Kubeflow Pipelines コンポーネントバージョン 2
。 -
インスタンスタイプ、モデル、インスタンス数、サーバーレス推論オプションなどのエンドポイントの設定を定義する SageMaker AI エンドポイント設定 Kubeflow Pipelines コンポーネントバージョン 2
。 -
SageMaker AI Endpoint 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 にアクセスするための SageMaker AI Operator for Kubernetes コントローラーポッドによって引き受けられる 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 AI ジョブは、このロールを使用して次のことを行います。
-
SageMaker AI リソースにアクセスする
-
Amazon S3 からデータを入力する
-
出力モデルを Amazon S3 に保存する
このロールには以下のアクセス許可が必要です。
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
SageMaker AI を使用するためのパイプラインの変換
汎用 Python 処理コンテナとトレーニングコンテナを移植することで、既存のパイプラインを SageMaker AI を使用するように変換できます。推論に SageMaker AI を使用している場合は、クラスターに IAM アクセス許可をアタッチし、アーティファクトをモデルに変換する必要もあります。