翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker Kubeflow Pipelines のコンポーネント
Kubeflow Pipelines の SageMaker コンポーネントを使用すると、Kubeflow Pipelines からネイティブ SageMakerトレーニング、チューニング、エンドポイントデプロイ、バッチ変換ジョブを作成およびモニタリングできます。で Kubeflow Pipeline ジョブを実行すると SageMaker、データ処理ジョブとトレーニングジョブを Kubernetes クラスターから SageMakerの機械学習最適化マネージドサービスに移動します。このドキュメントは、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 コンポーネントを使用できます。カスタムコンテナにロジックをカプセル化するのではなく、コンポーネントをロードし、Kubeflow Pipelines を使用してパイプラインを記述しますSDK。パイプラインが実行されると、指示は SageMaker ジョブまたはデプロイに変換されます。その後、ワークロードは のフルマネージドインフラストラクチャで実行されます SageMaker。
Kubeflow Pipelines に SageMaker Components を使用する理由
SageMaker Kubeflow Pipelines のコンポーネントは、コンピューティング集約型のジョブを から起動する代わりに使用できます SageMaker。コンポーネントは、Kubeflow Pipelines の移植性とオーケストレーション SageMaker と統合されます。Components SageMaker for Kubeflow Pipelines を使用すると、Kubeflow Pipelines ワークフローの一部として SageMaker リソースを作成およびモニタリングできます。パイプライン内の各ジョブは、ローカル Kubernetes クラスター SageMaker の代わりに で実行されるため、データラベル付け、大規模なハイパーパラメータ調整、分散トレーニングジョブ、ワンクリックで安全かつスケーラブルなモデルデプロイなどの主要な SageMaker 機能を利用できます。からのジョブパラメータ、ステータス、ログ、出力 SageMaker には、Kubeflow Pipelines UI から引き続きアクセスできます。
SageMaker コンポーネントは、データの準備から ML モデルの構築、トレーニング、デプロイまで、主要な SageMaker 機能を ML ワークフローに統合します。これらのコンポーネントを使用して完全に構築された Kubeflow Pipeline を作成できるほか、必要に応じて個々のコンポーネントをワークフローに統合することもできます。コンポーネントは 1 つまたは 2 つのバージョンで利用できます。コンポーネントのバージョンごとに異なるバックエンドが使用されます。 バージョンの詳細については、「SageMaker Kubeflow Pipelines バージョンのコンポーネント」を参照してください。
Components SageMaker for Kubeflow Pipelines の使用には追加料金はかかりません。これらのコンポーネントを通じて使用する SageMaker リソースには料金が発生します。
SageMaker Kubeflow Pipelines バージョンのコンポーネント
SageMaker Kubeflow Pipelines のコンポーネントには 2 つのバージョンがあります。各バージョンは、異なるバックエンドを活用して でリソースを作成および管理します SageMaker。
-
Kubeflow Pipelines バージョン 1 (v1.x 以下) の SageMaker コンポーネントでは、バックエンドとして Boto3
(AWS SDK for Python (Boto3)) が使用されます。 -
Components SageMaker for Kubeflow Pipelines のバージョン 2 (v2.0.0-alpha2 以降) では SageMaker 、 Operator for Kubernetes (ACK)
を使用します。 AWS AWS クラウドリソースを管理する Kubernetes ネイティブな方法を容易にACK
するために導入されました。ACK には、 AWS サービス固有のコントローラーのセットが含まれています。そのうちの 1 つはコントローラー SageMakerです。 SageMaker コントローラーを使用すると、Kubernetes をコントロールプレーンとして使用している機械学習デベロッパーやデータサイエンティストが、機械学習 (ML) モデルを でトレーニング、調整、デプロイしやすくなります SageMaker。詳細については、SageMaker 「Operators for Kubernetes 」を参照してください。
Kubeflow Pipelines の SageMaker コンポーネントはどちらのバージョンもサポートされています。ただし、バージョン 2 には他にも利点がいくつかあります。特に、以下の利点を得られます。
-
Kubeflow パイプラインを使用しているか、Kubernetes CLI (
kubectl
) を使用しているか、ノートブックなどの他の Kubeflow アプリケーションを使用しているかにかかわらず、あらゆるアプリケーションから SageMaker リソースを管理する一貫したエクスペリエンス。 -
Kubeflow パイプラインワークフロー外の SageMaker リソースを管理およびモニタリングする柔軟性。
-
SageMaker オペレーターがデプロイの一部であるため、リリース時に完全な Kubeflow AWS
をデプロイした場合、 SageMaker コンポーネントを使用するためのセットアップ時間がゼロになります。
Kubeflow Pipelines の SageMaker コンポーネントのリスト
以下は、Kubeflow Pipelines のすべての SageMaker コンポーネントとその利用可能なバージョンのリストです。または、SageMaker Kubeflow Pipelines のすべてのコンポーネントを で GitHub
注記
ユーザーは、利用可能な場所で SageMaker コンポーネントのバージョン 2 を使用することをお勧めします。
-
Ground Truth
Ground Truth コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker Ground Truth ラベル付けジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
作業チーム
Workteam コンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker プライベートワークチームジョブを作成できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 SageMaker プライベートワークチーム Kubeflow Pipelines コンポーネントバージョン 1 を作成する
X
-
Processing
Processing コンポーネントを使用すると、Kubeflow Pipelines ワークフロー SageMaker から直接 に処理ジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
トレーニング
トレーニングコンポーネントを使用すると、Kubeflow Pipelines ワークフローから直接 SageMaker トレーニングジョブを送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 -
ハイパーパラメータの最適化
Hyperparameter Optimization コンポーネントを使用すると、Kubeflow Pipelines ワークフロー SageMaker から直接、ハイパーパラメータチューニングジョブを に送信できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
ホスティングデプロイ
ホスティングコンポーネントを使用すると、Kubeflow Pipelines ワークフローの SageMaker ホスティングサービスを使用してモデルをデプロイできます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 SageMaker ホスティングサービス - Endpoint Kubeflow Pipeline コンポーネントバージョン 1 を作成します
。 ホスティングコンポーネントのバージョン 2 は、 でホスティングデプロイを作成するために必要な 3 つのサブコンポーネントで構成されます SageMaker。
-
モデルアーティファクトと推論コードを含むモデルイメージレジストリパスを担当する SageMaker Model Kubeflow Pipelines コンポーネントバージョン 2
。 -
SageMaker エンドポイント設定 Kubeflow Pipelines コンポーネントバージョン 2
は、インスタンスタイプ、モデル、インスタンス数、サーバーレス推論オプションなど、エンドポイントの設定の定義を担当します。 -
エンドポイント設定で指定された SageMaker でエンドポイントを作成または更新するエンドポイント SageMaker Kubeflow Pipelines コンポーネントバージョン 2
。
-
-
バッチ変換
Batch Transform コンポーネントを使用すると、Kubeflow Pipelines ワークフロー SageMaker から のデータセット全体の推論ジョブを実行できます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
-
モデルモニター
Model Monitor コンポーネントを使用すると、Kubeflow Pipelines ワークフローから本番環境の SageMaker 機械学習モデルの品質をモニタリングできます。
コンポーネントのバージョン 1 コンポーネントのバージョン 2 X
モデルモニターコンポーネントは、モデル内のドリフトをモニタリングするための 4 つのサブコンポーネントで構成されています。
-
データ品質のドリフトのモニタリングを担当する Data SageMaker Quality Job Definition Kubeflow Pipelines コンポーネントバージョン 2
。 -
SageMaker Model Quality Job Definition Kubeflow Pipelines コンポーネントバージョン 2
は、モデル品質メトリクスのドリフトのモニタリングを担当します。 -
モデルの予測のバイアスをモニタリングするモデルSageMaker バイアスジョブ定義 Kubeflow Pipelines コンポーネントバージョン 2
。 -
特徴量属性のドリフトのモニタリングを担当するSageMaker モデル説明可能性ジョブ定義 Kubeflow Pipelines コンポーネントバージョン 2
。
さらに、指定された頻度でスケジュールどおりにモニタリングする場合、5 番目のコンポーネントであるSageMaker モニタリングスケジュール Kubeflow Pipelines コンポーネントバージョン 2
は、スケジュールに従ってリアルタイムエンドポイントから収集されたデータをモニタリングする責任があります。 Amazon SageMaker Model Monitor の詳細については、「」を参照してくださいAmazon Model Monitor によるデータおよび SageMaker モデル品質のモニタリング。
-
IAM アクセス許可
SageMaker コンポーネントを使用して Kubeflow Pipelines をデプロイするには、次の 3 つの認証レイヤーが必要です。
-
Amazon Elastic Kubernetes Service (Amazon ) EKSクラスターへのアクセスをゲートウェイノード (ローカルマシンまたはリモートインスタンス) に付与するIAMロール。
ゲートウェイノードにアクセスするユーザーは、このロールを引き受けて次のことを行います。
-
Amazon EKSクラスターを作成してインストールする KFP
-
IAM ロールの作成
-
サンプル入力データ用の Amazon S3 バケットを作成する
このロールには以下のアクセス許可が必要です。
-
CloudWatchLogsFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonEC2FullAccess
-
mazonEKSAdminポリシー (Amazon EKS Identity-Based Policy Examples のスキーマを使用してこのポリシーを作成する)
-
-
Kubernetes パイプラインポッド (kfp-example-pod-role) または SageMaker Operator for Kubernetes コントローラーポッドが にアクセスするために引き受ける Kubernetes IAM実行ロール SageMaker。このロールは、Kubernetes から SageMaker ジョブを作成およびモニタリングするために使用されます。
このロールには以下のアクセス許可が必要です。
-
AmazonSageMakerFullAccess
独自のカスタムポリシーを作成してアタッチすることで、 KFP および コントローラーポッドへのアクセス許可を制限できます。
-
-
Amazon SageMaker IAMAmazon S3 ECR (kfp-example-sagemaker-execution-role ) などの AWS リソースにアクセスするための SageMaker ジョブによって引き受けられる実行ロール。
SageMaker ジョブは、このロールを使用して以下を行います。
-
SageMaker リソースへのアクセス
-
Amazon S3 からデータを入力する
-
出力モデルを Amazon S3 に保存する
このロールには以下のアクセス許可が必要です。
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
使用するパイプラインの変換 SageMaker
汎用 Python 処理コンテナとトレーニングコンテナ を移植 SageMaker することで、既存のパイプラインを に変換して使用できます。推論 SageMaker に を使用している場合は、クラスターにアクセスIAM許可をアタッチし、アーティファクトをモデルに変換する必要があります。