SageMaker Kubeflow Pipelines のコンポーネント - Amazon SageMaker

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

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 ワークフローを説明したもので、有向非巡回グラフグラフとして表現されます。ワークフローのすべてのステップは、 AWS SDK for Python (Boto3) モジュールである Kubeflow Pipeline コンポーネント として表されます。

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 には他にも利点がいくつかあります。特に、以下の利点を得られます。

  1. Kubeflow パイプラインを使用しているか、Kubernetes CLI (kubectl) を使用しているか、ノートブックなどの他の Kubeflow アプリケーションを使用しているかにかかわらず、あらゆるアプリケーションから SageMaker リソースを管理する一貫したエクスペリエンス。

  2. Kubeflow パイプラインワークフロー外の SageMaker リソースを管理およびモニタリングする柔軟性。

  3. SageMaker オペレーターがデプロイの一部であるため、リリース時に完全な Kubeflow AWS をデプロイした場合、 SageMaker コンポーネントを使用するためのセットアップ時間がゼロになります。

Kubeflow Pipelines の SageMaker コンポーネントのリスト

以下は、Kubeflow Pipelines のすべての SageMaker コンポーネントとその利用可能なバージョンのリストです。または、SageMaker Kubeflow Pipelines のすべてのコンポーネントを で GitHub検索することもできます。

注記

ユーザーは、利用可能な場所で SageMaker コンポーネントのバージョン 2 を使用することをお勧めします。

IAM アクセス許可

SageMaker コンポーネントを使用して Kubeflow Pipelines をデプロイするには、次の 3 つの認証レイヤーが必要です。

  • Amazon Elastic Kubernetes Service (Amazon ) EKSクラスターへのアクセスをゲートウェイノード (ローカルマシンまたはリモートインスタンス) に付与するIAMロール。

    ゲートウェイノードにアクセスするユーザーは、このロールを引き受けて次のことを行います。

    • Amazon EKSクラスターを作成してインストールする KFP

    • IAM ロールの作成

    • サンプル入力データ用の Amazon S3 バケットを作成する

    このロールには以下のアクセス許可が必要です。

  • 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許可をアタッチし、アーティファクトをモデルに変換する必要があります。