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 によって提供された組み込みアルゴリズムを使用するか、自分でデプロイしたスクリプトまたはモデルを使用しているかによって異なります。独自のコードを使用している場合は、その開発に使用された言語とフレームワークまたは環境、さらに実行に必要なその他の依存関係によって異なります。特に、 SageMaker Python SDK AWS SDK for Python(Boto3)またはその他のSDKです。 SageMaker には、組み込みアルゴリズム用のコンテナと、最も一般的な機械学習フレームワーク用の事前構築されたDockerイメージが用意されています。提供されたコンテナとイメージを使用するか、それらを拡張してより複雑なユースケースに対応することができます。また、独自のコンテナイメージを作成して、SageMaker によって提供されるコンテナで対応できない、より高度なユースケースを管理することもできます。

SageMaker 環境でスクリプト、アルゴリズム、およびモデルを実行するための 4 つの主なシナリオがあります。最後の3つは、ここで取り上げたシナリオです。コンテナを使用して、 自分で持って行く スクリプト、 アルゴリズムまたはモデル.

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

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

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

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

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

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

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

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