「SageMaker Distributionは、Amazon SageMaker Studioで利用可能になりました」

SageMaker Distribution now available in Amazon SageMaker Studio

SageMaker Distributionは、機械学習(ML)、データサイエンス、データビジュアライゼーション向けの多くの人気パッケージを含む事前構築されたDockerイメージです。これにはPyTorch、TensorFlow、Kerasなどのディープラーニングフレームワーク、NumPy、scikit-learn、pandasなどの人気のあるPythonパッケージ、JupyterLabなどのIDEが含まれています。さらに、SageMaker Distributionはconda、micromamba、pipをPythonパッケージマネージャとしてサポートしています。

2023年5月に、JupyterConでSageMaker Distributionをオープンソースプロジェクトとしてリリースしました。このリリースにより、SageMaker Distributionをローカル環境で実験実行するために使用できるようになりました。現在、Amazon SageMaker Studioでそのイメージをネイティブに提供しており、Amazon SageMakerで実験を実行する際の高いパフォーマンス、計算、セキュリティの利点を得ることができます。

以前のオープンソースリリースと比較して、以下の追加機能があります:

  • オープンソースのイメージがSageMaker Studioのファーストパーティイメージとして利用可能になりました。ノートブックのイメージとカーネルを選択する際に、カスタムイメージを作成する必要なく、簡単にオープンソースのSageMaker Distributionを選択することができます。
  • SageMaker Python SDKパッケージがイメージに組み込まれるようになりました。

この記事では、SageMaker Distributionイメージの機能と利点について説明します。

SageMaker StudioでSageMaker Distributionを使用する

既存のStudioドメインにアクセス権がある場合は、SageMaker Studioを起動することができます。Studioドメインを作成するには、「Amazon SageMakerドメインへのオンボード」の手順に従ってください。

  1. SageMaker StudioのUIで、メニューバーからファイルを選択し、新規を選択し、ノートブックを選択します。
  2. イメージとインスタンスのプロンプトが表示されたら、SageMaker Distribution v0 CPUまたはSageMaker Distribution v0 GPUイメージを選択します。
  3. カーネルを選択し、選択を選択します。

これで、一般的なMLパッケージやフレームワークをインストールせずにコマンドを実行できるようになりました!また、サポートされているフレームワーク(PyTorchやTensorFlowなど)で動作するノートブックも、アクティブなカーネルを切り替える必要なく、SageMakerの例のリポジトリから実行できます。

SageMaker Distributionを使用してリモートでコードを実行する

パブリックベータ版の発表では、ノートブックをローカルのコンピューティング環境からSageMaker Studioに移行し、ノートブックジョブを使用してノートブックを運用することについて説明しました。

さらに、@remoteデコレータを関数に追加するだけで、ローカルノートブックコードをSageMakerトレーニングジョブとして直接実行することもできます。

以下のコードをSageMaker Distributionイメージで実行してみましょう:

from sagemaker.remote_function import remote

@remote(instance_type="ml.m5.xlarge", dependencies='./requirements.txt')
def divide(x, y):
    return x / y

divide(2, 3.0)

セルを実行すると、関数はml.m5.xlargeノートブック上でリモートSageMakerトレーニングジョブとして実行され、SDKはAmazon Elastic Container Registry(Amazon ECR)のトレーニングイメージとして自動的にSageMaker Distributionイメージを選択します。ディープラーニングワークロードの場合、スクリプトを複数の並列インスタンスで実行することもできます。

SageMaker Distributionから別の場所にConda環境を再現する

SageMaker DistributionはパブリックなDockerイメージとして利用できます。ただし、DockerよりもConda環境に精通しているデータサイエンティスト向けに、GitHubリポジトリでは各イメージビルドの環境ファイルも提供しているため、CPUおよびGPUバージョンのConda環境を構築することができます。

各バージョンのビルドアーティファクトは、sagemaker-distribution/build_artifactsディレクトリに保存されています。利用可能なSageMaker Distributionのバージョンと同じ環境を作成するには、次のコマンドを実行します。パラメータ--fileは、適切な環境ファイルに置き換えてください:

conda create --name conda-sagemaker-distribution \
  --file sagemaker-distribution/build_artifacts/v0/v0.2/v0.2.1/cpu.env.out
# 環境をアクティベートする
conda activate conda-sagemaker-distribution

オープンソースのSageMaker Distributionイメージのカスタマイズ

オープンソースのSageMaker Distributionイメージには、データサイエンスと機械学習でよく使用されるパッケージが含まれています。しかし、データサイエンティストは追加のパッケージへのアクセスが必要な場合や、エンタープライズのお客様はユーザーに追加の機能を提供するための独自のパッケージを持っている場合があります。そのような場合、必要なパッケージを含んだ実行環境を持つための複数のオプションがあります。以下に、複雑さの順にリストアップします:

  • ノートブックに直接パッケージをインストールすることができます。Condaとmicromambaをお勧めしますが、pipも使用できます。
  • パッケージ管理にCondaを使用したデータサイエンティストは、SageMaker DistributionのConda環境を他の場所で再現し、その環境に追加のパッケージをインストールおよび管理することができます。
  • 管理者がユーザーに対して繰り返し可能で制御された実行環境を提供したい場合、SageMaker DistributionのDockerイメージを拡張して独自のイメージを維持することができます。カスタムイメージの作成と使用の詳細な手順については、「独自のSageMakerイメージを使用する」を参照してください。

クリーンアップ

SageMaker Studioを試した場合、未使用の計算リソースの課金を避けるために、すべてのStudioアプリをシャットダウンしてください。手順については、「Studioアプリのシャットダウンと更新」を参照してください。

結論

本日、SageMaker Studio内でオープンソースのSageMaker Distributionイメージのリリースを発表しました。SageMaker Studioで利用可能な第一のパーティイメージの1つとしてイメージの使用方法、SageMaker Python SDKの@remoteデコレータを使用してスクリプトを操作化する方法、SageMaker DistributionのConda環境をStudio外で再現する方法、およびイメージのカスタマイズ方法について説明しました。SageMaker Distributionを試してみて、GitHubを通じてフィードバックを共有することをお勧めします!

追加参考資料

  • SageMaker-distributionのドキュメント
  • AWSによる2023年のJupyterConへの貢献
  • SageMaker Studioの入門

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

「カーシブと出会う:LLMとのインタラクションのためのユニバーサルで直感的なAIフレームワーク」

大規模な言語モデル(LLM)とのインターフェースにおいて、開発者はしばしば共通のジレンマに直面します。一方では、複雑で膨...

コンピュータサイエンス

「歴史的なアルゴリズムが最短経路問題の突破口を開くのに役立つ」

コンピューティングからの主要なアルゴリズムを再考することで、チームは長年のコンピュータ科学の問題に隠された効率性を解...

AIニュース

「ロボットに対するより柔らかいアプローチ」

「ソフトロボットは研究室から現実世界へと移行しています」

機械学習

「xVal」というものに出会いましょう:科学応用のために数字を言語モデルにエンコードするための継続的な方法で、任意の数字を表すために単一のトークンだけを使用します

大規模言語モデルの領域において、ひとつの迷惑な問題が浮かび上がっています。これらのモデルは多くの言語に基づくタスクを...

機械学習

「Retroformer」をご紹介します:プラグインの回顧モデルを学習することで、大規模な言語エージェントの反復的な改善を実現する優れたAIフレームワーク

大規模な言語モデル(LLM)を強化して、単にユーザーの質問に応答するのではなく、目標のために独立して活動できる自律的な言...