「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

AI研究

「大規模な言語モデルがコンパイラ最適化のメタAI研究者を驚かせる!」

「これは、LLMの明らかな不備についての論文だと思っていましたが、将来の賢いアイデアの動機づけとなるものとして役立つもの...

データサイエンス

研究者たちは、複雑なシステムを正確にシミュレーションするためのツールを作成しました

彼らが開発したシステムは、シミュレーションにおけるバイアスの源を排除し、アルゴリズムの改善につながり、アプリケーショ...

コンピュータサイエンス

メルセデス、ChatGPTを車に導入

ドイツ自動車メーカーのメルセデス・ベンツは、ChatGPT生成人工知能ソフトウェアを米国のメルセデス・ベンツ車に追加するため...

AI研究

「AWS 研究者がジェミニを紹介:大規模な深層学習トレーニングにおける画期的な高速障害回復」

ライス大学とAmazon Web Servicesの研究者チームが、GEMINIと呼ばれる分散トレーニングシステムを開発しました。このシステム...

機械学習

「NeRFたちが望むヒーローではないが、NeRFたちに必要なヒーロー:CopyRNeRFは、NeRFの著作権を保護するAIアプローチです」

もし、コンピュータグラフィックスの領域での進化に注目していれば、ニューラル放射場 (NeRFs) についてはお馴染みかもしれま...