Amazon SageMaker で独自のアルゴリズムやモデルを使用する - Amazon SageMaker

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

Amazon SageMaker で独自のアルゴリズムやモデルを使用する

Amazon SageMaker は、構築およびランタイムタスクに Docker コンテナを広範に使用します。SageMaker で独自のアルゴリズムやモデルを使用する前に、SageMaker がそれらを実行して管理する方法を理解しておく必要があります。SageMaker は、その組み込みアルゴリズム用に構築済みの Docker イメージと、トレーニングと推論に使用されるサポート対象の深層学習フレームワークを提供します。コンテナを使用することで、機械学習アルゴリズムをトレーニングし、規模を問わずモデルを迅速かつ確実にデプロイできます。Docker は、ソフトウェアのインストール、配信、管理のためのオペレーティングシステムレベルの仮想化を実行するプログラムです。Docker では、アプリケーションとその依存関係が、分離、移植性、セキュリティを提供する仮想コンテナにパッケージ化されます。

機械学習モデルのスクリプト、アルゴリズム、および推論コードを、コンテナに配置できます。コンテナには、ランタイム、システムツール、システムライブラリ、アルゴリズムのトレーニングやモデルのデプロイに必要なその他のコードが含まれます。これにより、ほぼすべてのスクリプトまたはアルゴリズムコードを、ランタイムまたは実装言語とは無関係に SageMaker で使用する柔軟性が得られます。コンテナで実行されるコードは周囲から効率的に分離され、コンテナのデプロイ場所に関わらず、一貫したランタイムが実現されます。トレーニングコード、推論コード、またはその両方を Docker コンテナにパッケージ化したら、SageMaker で使用するため、または AWS Marketplace で公開するために、アルゴリズムリソースとモデルパッケージリソースを作成できます。Docker では、リソースの利用を強化して、コードの迅速な送付、アプリケーションオペレーションの標準化、コードのシームレスな移動、効率化が可能になります。

Docker コンテナは、リポジトリに保存されたイメージから作成しますイメージは、Dockerfile に指定された、スクリプト化された手順から構築します。SageMaker で Docker コンテナを使用するには、使用するスクリプトが特定の要件を満たしている必要があります。要件の詳細については、「独自のトレーニングアルゴリズムを使用する」および「独自の推論コードの使用」を参照してください。

SageMaker を使用したスクリプトの実行、アルゴリズムのトレーニング、またはモデルのデプロイのシナリオ

SageMaker は、スクリプトの実行、アルゴリズムのトレーニング、またはモデルのデプロイに常に Docker コンテナを使用します。ただし、コンテナのエンゲージメントレベルは、SageMaker によって提供された組み込みアルゴリズムを使用するか、自分でデプロイしたスクリプトまたはモデルを使用しているかによって異なります。独自のコードを使用している場合は、その開発に使用された言語とフレームワークまたは環境、さらに実行に必要なその他の依存関係によって異なります。特に、 または AWS SDK for Python (Boto 3) あるいはその他の SDK を使用するかどうかによって異なります。 Amazon SageMaker Python SDKは、一部の最も一般的な機械学習フレームワーク用の組み込みアルゴリズムおよび構築済みの Docker イメージ用のコンテナを提供しています。SageMaker提供されたコンテナとイメージを使用するか、それらを拡張してより複雑なユースケースに対応することができます。また、独自のコンテナイメージを作成して、SageMaker によって提供されるコンテナで対応できない、より高度なユースケースを管理することもできます。

SageMaker 環境でスクリプト、アルゴリズム、およびモデルを実行するための 4 つの主なシナリオがあります。最後の 3 つは、ここで示すシナリオを表しています。つまり、コンテナを使用して独自のスクリプト、アルゴリズム、またはモデルを持ち込む方法を示しています。

  • 組み込みのアルゴリズムを使用する。SageMaker の組み込みアルゴリズムの 1 つを使用するときに、バックグラウンドでコンテナが使用されますが、直接これを操作することはありません。これらのアルゴリズムは、SageMaker コンソール、AWS Command Line Interface (AWS CLI)、Python ノートブック、または Amazon SageMaker Python SDK からトレーニングおよびデプロイできます。使用可能な組み込みのアルゴリズムは、「Amazon SageMaker 組み込みアルゴリズムを使用する」トピックで項目別に説明しています。SageMakerノートブックインスタンスで実行されている Jupyter ノートブックを使用して、組み込みアルゴリズムをトレーニングおよびデプロイする方法の例については、Amazon SageMaker の開始方法トピックを参照してください。

  • 構築済みのコンテナイメージを使用しますSageMaker。 MXNet は、Apache 、 TensorFlow 、 、Chainer などの深層学習フレームワークをサポートする構築済みのコンテナを提供します。PyTorchまた、scikit-learn などの機械学習ライブラリをサポートし、構築済みの Docker イメージを提供します。SparkMLAmazon SageMaker Python SDK を使用する場合、それぞれの SageMaker SDK Estimator クラスを使用してデプロイされます。この場合、アルゴリズムを実装する Python コードを入力し、構築済みのイメージを設定して、エントリポイントとしてコードにアクセスできます。SageMaker で現在サポートされている深層学習フレームワークおよび構築済みのコンテナイメージの使用方法を示すサンプルの一覧については、「、 Amazon SageMaker 、Chainer、および 用に構築済みの TensorFlowDocker イメージMXNetPyTorch」を参照してください。scikit-learn および構築SparkML済みのコンテナイメージの詳細については、「」を参照してくださいscikit-learn および Spark ML 用に構築済みの Amazon SageMaker Docker イメージ Amazon SageMaker Python SDK でのフレームワークの使用の詳細については、「Amazon SageMaker での機械学習フレームワーク、Python、R の使用」でそれぞれのトピックを参照してください。

  • 構築済みのコンテナイメージを拡張します。構築済みの SageMakerDocker イメージがサポートしていないフレームワークで開発したアルゴリズムまたはモデルに関する追加の機能要件がある場合は、ニーズに合わせてSageMakerイメージを変更できます。例については、「コンテナPyTorchの拡張」を参照してください

  • 独自のカスタムコンテナイメージを構築します。SageMaker高度なシナリオで使用または変更できる構築済みのコンテナイメージがない場合は、 で使用する独自のスクリプトまたはアルゴリズムをパッケージ化できますSageMaker。コンテナを開発するには、任意のプログラミング言語またはフレームワークを使用できます。独自のコンテナを構築してアルゴリズムをトレーニングまたはホストする方法を示す例については、「Bring Your Own R Algorithm」を参照してください。

次のトピックでは、Docker コンテナを簡単に紹介します。SageMaker には、使用するためにコンテナが満たす必要がある特定の契約要件があります。次のトピックでは、SageMaker と互換性のあるコンテナを作成するために使用できる SageMaker コンテナライブラリについて示します。これには、定義され、必要になる場合がある環境変数のリストが含まれています。次に、SageMaker コンテナを使用して Python スクリプトをトレーニングすることにより使用を開始する方法を示すチュートリアルがあります。チュートリアルに続いて、以下のトピックがあります。

  • 深層学習フレームワークおよびその他のライブラリに対して SageMaker で提供される、構築済みの Docker コンテナについて説明します。

  • さまざまなシナリオで、コンテナをデプロイする方法の例を示します。

以降のセクションでは、SageMaker で Docker を使用してカスタムアルゴリズムをトレーニングし、推論コードをデプロイして予測を実行するための契約要件について詳細に説明します。モデルをデプロイするときは、予測を行うための 2 つの方法があります。まず、個別のリアルタイム予測を行うには、ホスティングサービスを使用して推論を行うことができます。次に、データセット全体の予測を取得するためには、バッチ変換を使用できます。最後のセクションでは、Amazon SageMakerアカウントで使用するか、AWS Marketplace で公開するためのアルゴリズムとモデルパッケージリソースを作成する方法について説明します。