新しい – Code-OSS VS Codeオープンソースに基づくコードエディタが、Amazon SageMaker Studioで利用可能になりました
『新しいコードエディター - Code-OSS VS CodeオープンソースがAmazon SageMaker Studioで利用可能に』
今日は、新たにAmazon SageMaker Studioで利用可能な統合開発環境(IDE)オプションである「Code Editor」のサポートを発表できることをお知らせします。Code Editor は、Code-OSS、Visual Studio Code オープンソースに基づいており、機械学習(ML)開発者がよく知っている人気のあるIDEの環境とツールにアクセスできます。さらに、幅広いSageMaker Studioの機能と完全に統合されています。Code Editor を使用すると、Open-VSX 拡張ギャラリーで利用可能な数千ものVS Code 互換の拡張機能から選択し、チームの開発体験をさらに向上させることができます。また、AWS Toolkit for Visual Studio Codeとのシームレスな統合を使用して、AWS サービスとの連携を活用し、チームの生産性を最大化することもできます。これには、AWS AI パワードのコーディングアシスタントであるAmazon CodeWhisperer も含まれます。
SageMaker Studio のすべてのIDEアプリケーションと同様に、ML開発者やエンジニアは必要に応じて基礎となるコンピューティング環境を選択し、データを失うことなく交換することができます。さらに、ネイティブのGitHub統合を通じてコードベースのバージョン管理やチーム間のコラボレーションを行うこともできます。また、事前に構成済みのAmazon SageMaker Distributionコンテナイメージを使用して、ボックスから人気のあるMLフレームワークを使用してコーディングする時間を短縮することもできます。
Amazon SageMaker StudioでCode Editorを始めましょう
IT管理者は、新しいSageMaker Studioドメインを設定するか、既存のドメインを新しいSageMaker Studioのエクスペリエンスに移行することができます。詳細については、クイックセットアップを使用したAmazon SageMakerドメインへのオンボードをご覧ください。Amazon SageMaker Studio環境で、Code Editorをクリックするだけで起動することができます。
- ドメインが設定されたら、コンソールまたは管理者が提供したプリサインドURLからSageMaker Studioの新しいエクスペリエンスを起動します。以下のスクリーンショットに示すように、Code Editor IDEは左側パネルの「アプリケーション」セクションと「概要」セクションの両方に表示されます:
- Code Editorの詳細ページで、「Code Editorスペースの作成」を選択します。その後、スペースの名前を入力し、「スペースの作成」を選択します:
- Code Editorスペースの詳細ページで、次の構成を選択します:
- 基礎となるAmazon Elastic Compute Cloud(Amazon EC2)インスタンスタイプ。
- Amazon Elastic Block Storage(Amazon EBS)のボリュームサイズ(5GBから16TBまでの範囲で設定可能)。
- 使用するコンテナイメージ(CPUとGPUの両方でSageMaker Distributionイメージが利用可能)。
- アプリケーション作成時に環境をカスタマイズするためのライフサイクル構成スクリプト。
- Code Editorスペースにマウントするための共有Amazon Elastic File System(Amazon EFS)(ドメインのプロビジョニング時に管理者が設定する必要があります)。
- スペースの構成詳細を入力したら、「スペースを実行」を選択してスペースのリソースをプロビジョニングします。
デフォルトのSageMaker Distributionイメージを使用して「fast-launch」インスタンスを選択した場合、Code Editorスペースは1分未満で利用可能になります。スペースにライフサイクル構成が追加されている場合は、スクリプトからの依存関係のインストールに追加の時間がかかる可能性があります。
リソースがプロビジョニングされた後、スペースの詳細ページにはコードエディタを開くボタンが表示されます。
- コードエディタを開くを選択して、IDEを起動します。
コードエディタIDEが新しいブラウザタブで起動します。
コードエディタの特徴
コードエディタには、MLチームの生産性を向上させるためのユニークな機能が備わっています:
- 完全に管理されたインフラストラクチャ – コードエディタIDEは、完全に管理されたインフラストラクチャ上で実行されます。Amazon SageMakerがインスタンスを最新のセキュリティパッチとアップグレードで更新し続けます。
- リソースの拡大縮小 – コードエディタでは、コードエディタが実行されている基礎リソース(例:インスタンスタイプ、EBSボリュームサイズ)をシームレスに変更することができます。これは、計算、メモリ、およびストレージのニーズが変わるワークロードを実行したい開発者にとって有益です。
- SageMaker提供画像 – コードエディタは、デフォルトのイメージとしてSageMaker Distributionを事前に設定しています。このコンテナイメージには、SageMakerがサポートする最も人気のあるMLフレームワークと、SageMaker Python SDK、boto3、およびその他のAWSおよびデータサイエンス固有のライブラリがインストールされています。これにより、環境のセットアップにかかる時間が大幅に短縮され、MLプロジェクトでパッケージの依存関係を管理する複雑さが低減されます。
- Amazon CodeWhispererとの統合 – コードエディタには、Amazon CodeWhispererのパワフルなAI機能が搭載されています。このネイティブ統合により、IDE内でコードの提案を生成することで、生産性を向上させることができます。
- 他のAWSサービスとの統合 – AWS Toolkit for VS Codeを介して、ネイティブ統合が提供されています。これにより、Amazon Simple Storage Service(S3)バケット、Amazon Elastic Container Registry(ECR)リポジトリ、Amazon RedShift、Amazon CloudWatchなどのAWSサービスと容易に統合することができます。これにより、クラウドでの開発が簡素化されます。
アーキテクチャの詳細
SageMaker Studioでコードエディタを起動すると、Code Editorスペースのコンテナとして新しいアプリケーションが作成されます。選択したEC2インスタンスのコンテナで、SageMaker Studioがあなたのために基礎リソースのプロビジョニングを処理します。次の図は、コードエディタIDEアプリケーションアーキテクチャの簡略化されたバージョンを示しています:
ユーザープロファイルごとに、さまざまなMLインスタンスタイプ(アクセラレートされたコンピューティングインスタンスを含む)で複数のコードエディタスペースを起動することができます。各スペースでは、アタッチされたEBSボリュームサイズ、インスタンスタイプ、およびスペースで実行するアプリケーションのタイプ(たとえば、コードエディタ)が定義されます。ユーザーがスペースを実行すると、基礎となるEC2インスタンスがプロビジョニングされ、選択したコンテナイメージに基づいてSageMaker Studio Code Editor アプリがインスタンス化されます。EBSボリュームは、IDE アプリの起動/停止サイクルを越えて永続化されます。ユーザーがCode Editorアプリを停止する(計算コストを節約するためなど)、計算リソースは停止されますが、EBSボリュームは保持され、再起動時にインスタンスに再度アタッチされます。
すべてのコードエディターアプリケーションは分離されて実行されます。アプリケーション間でデータを共有する必要がある場合は、共有Amazon Elastic File System(EFS)ドライブを添付できます。
Code Editor IDEが事前にインストールされたAWS Toolkit extension for VS Codeを使用するために、Amazon CodeWhispererやAmazon S3、Amazon Redshiftなどの統合AWSサービスを使用するには、次のことを確認する必要があります:
- SageMaker Studioユーザープロファイルの実行ロールに、使用したいサービスを使用するための適切なアクセス許可があること。
- VPC専用モードのSageMaker Studioドメインを使用している場合は、これらのサービスと通信する方法が必要です。
ソリューションの概要
以下のセクションでは、Amazon SageMaker StudioのCode Editorを使用して、サンプルのMLプロジェクトをどのように開発できるかを共有します。私たちは、Mistral-7B large language model (LLM)モデルをHuggingFaceの組み込みコンテナを使用して、Amazon SageMakerのリアルタイムエンドポイントに展開します。この例では、Code Editorは、コードのデバッグとエンドポイントの展開に高度なIDE機能が必要なMLエンジニアリングチームによって使用されることがあります。サンプルコードはこちらのGitHubリポジトリで入手できます。チーム内のメンバー間で容易にコラボレーションできるようにコードを構造化する方法、VS CodeとAmazon Code WhispererのAWS Toolkitを使用して開発を高速化する方法、Mistral-7BモデルをSageMakerエンドポイントに展開する方法について説明します。IDEでよくある開発者タスクを見てみましょう。
IDEから直接AWSサービスとのやり取り
Code Editorには、デフォルトでAWS Toolkit for Visual Studio Codeが付属しており、プロジェクト中において他のAWSサービスと統合されたエクスペリエンスを提供します。SageMaker StudioユーザープロファイルのAWS Identity and Access Management(IAM)パーミッションに基づいて、Amazon S3バケット内のデータを操作したり、Amazon ECRでコンテナイメージを検索したり、SageMakerエンドポイントのAmazon CloudWatchログを表示したり、IDEからエンドツーエンドのMLプロジェクトを実行するための他の機能を活用できます。
コードリポジトリの構造化による容易なコラボレーション
チームの生産性を最大化するために、プロジェクトリポジトリを構造化することができます。例えば、共通のPythonプロジェクトの慣習とチームのコラボレーションニーズのバランスを取るために、単一のリポジトリをセットアップすることができます。
コードリポジトリには、異なるチームメンバー間で依存関係、拡張機能、設定を標準化するための必要なファイルを含む.vscode
フォルダを配置することができます。参考のために以下のアニメーションを参照してください。
あなたはrequirements.txt
ファイルを介してチームメンバー間で依存関係を共有することもできます。また、config.yaml
ファイルを指定してSageMakerエンドポイントの起動原則を共有することもできます。Code Editorセッションはチームメンバーと同じ依存関係と設定を共有し、推論コードとエンドポイントの開発とデバッグを迅速に行うことができます。
開発とデバッグを行い、IDE内でコードを実行
以下の例では、SageMakerのエンドポイントで使用されるinference.py
スクリプトを開発し、デバッグする方法を示します。
Amazon CodeWhispererを使用してコードとテストケースを生成
AWS Toolkitの一環として、Amazon CodeWhispererはAIコーディングコンパニオンとして、より高速かつ安全にビルドすることができます。リアルタイムのコード提案を提供し、AWSサービスとの統合が最適化されており、組み込みのセキュリティスキャン機能も備えています。この例では、Amazon CodeWhispererを使用してSageMakerエンドポイントの展開とテストにおいて、行全体や関数全体のコードを生成します。
SageMakerエンドポイントにLLMを展開する
IDEからSageMakerエンドポイントにモデルを展開し、SageMaker Studioから直接ステータスをモニタリングすることができます。
MLプロジェクトを本番用のアプリケーションにスケールアップするにつれて、Code EditorとAWS Toolkitでは、ビルド、展開、実行を行いながらLLMアプリケーションのリソースを管理およびモニタリングすることができます。
結論
Code Editorは、Amazon SageMaker Studioが利用可能なすべてのAWSリージョン(GovCloudを除く)で利用できます。使用に応じて、SageMakerや他のAWSサービスの基になるコンピュートおよびストレージリソースの料金が発生します。
Amazon SageMaker StudioでCode Editorを利用するには、最初の2ヶ月間、Amazon SageMaker Studioでのml.t3.mediumインスタンスを1ヵ月あたり250時間のAWS無料利用枠を使用することができます。詳細については、Amazon SageMaker Pricingを参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Amazon SageMaker ClarifyとMLOpsサービスを使用して、LLM評価をスケールで運用化する」
- 「Amazon SageMakerスマートシフティングを使用して、ディープラーニングモデルのトレーニングを最大35%高速化」
- 「GPT-4V(ビジョン)のコンセプトを理解する:新しい人工知能のトレンド」
- 聴覚処理の解読:深層学習モデルが脳内の音声認識とどのように類似しているか
- 新しいツールと機能の発表:責任あるAIイノベーションを可能にする
- Amazon SageMakerノートブックのジョブをスケジュールし、APIを使用してマルチステップノートブックのワークフローを管理します
- AWS ジェネラティブ AI イノベーションセンターのアンソロポジック・クロード向けのカスタムモデルプログラムをご紹介します