Amazon SageMaker Studioで生産性を向上させる:JupyterLab Spacesと生成AIツールを紹介

『Amazon SageMaker Studioで効率を向上させる:JupyterLab SpacesとGenerative AIツールを紹介』

Amazon SageMaker Studioは、機械学習(ML)開発のための完全に管理された統合開発環境(IDE)の包括的なセットを提供しています。これには、JupyterLab、Code Editor(Code-OSSベースのVisual Studio Code Open Source)、およびRStudioが含まれます。SageMaker Studioでは、データの準備からMLモデルの構築、トレーニング、デプロイ、管理までの各ステップに最も包括的なツールへのアクセスが提供されます。ノートブック、コード、データで作業するために、SageMaker Distributionが事前に設定されたSageMaker Studioと完全に管理されたJupyterLabを数秒で起動することができます。SageMaker Studioの柔軟かつ拡張可能なインターフェースを使用すると、MLワークフローを簡単に構成し、配置することができ、AIパワードのインラインコーディング補助機能を使用してコードを迅速に作成、デバッグ、説明、テストすることができます。

この記事では、更新されたSageMaker StudioとそのJupyterLab IDEについて詳しく見ていき、ML開発者の生産性を向上させることを目指しています。Spacesの概念を紹介し、JupyterLab Spacesがコンピューティング、ストレージ、ランタイムリソースの柔軟なカスタマイズを可能にし、MLワークフローの効率を向上させる方法について説明します。また、JupyterLab内でのローカライズされた実行モデルへの移行についても取り上げ、コーディング体験がより迅速で安定し、応答性が向上することを説明します。さらに、Amazon CodeWhispererやJupyter AIなどの生成AIツールがSageMaker Studio JupyterLab Spaces内でシームレスに統合されていることを紹介し、開発者がAIを使用してコーディング補助や革新的な問題解決を行う方法を示します。

SageMaker StudioでのSpacesの導入

新しいSageMaker Studioのウェブベースのインターフェースは、お好みのIDEを起動し、モデルの構築、トレーニング、調整、デプロイに必要なAmazon SageMakerツールにアクセスするためのコマンドセンターとして機能します。JupyterLabとRStudioに加えて、SageMaker Studioには、Code-OSS(Visual Studio Code Open Source)をベースとした完全に管理されたCode Editorも含まれています。JupyterLabとCode Editorは、Spacesと呼ばれる柔軟なワークスペースを使用して起動することができます。

Spaceは、実行中であるかどうかにかかわらず、JupyterLabやCode EditorなどのSageMakerのIDEの構成表現です。Spaceは、コンピュートインスタンス、ストレージ、その他のランタイム構成の組み合わせを表します。Spacesを使用すると、コーディングの一時停止や再開、ランタイム環境のカスタマイズ、コンピュートやストレージのスケーリングなどが可能です。複数のSpacesを作成し、それぞれが異なるコンピュート、ストレージ、ランタイムの組み合わせで構成されることができます。

Spaceが作成されると、ユーザーのファイル、データ、キャッシュ、その他のアーティファクトを保存するためにAmazon Elastic Block Store(Amazon EBS)ボリュームが装備されます。Spaceが実行されるときにMLコンピュートインスタンスにアタッチされます。EBSボリュームは、Spaceが再起動されるたびにユーザーファイル、データ、キャッシュ、セッションの状態が一貫して復元されることを保証します。重要なことは、このEBSボリュームは、Spaceが実行中または停止中であるかに関係なく永続的に存在し続けます。Spaceが削除されるまで、ボリュームは永続化されます。

さらに、異なるSpaces、ユーザー、ドメイン間で環境やアーティファクトを共有したいユーザーのために、使いたいファイルシステム機能を導入しました。これにより、Spacesに独自のAmazon Elastic File System(Amazon EFS)マウントを装備することができ、さまざまなワークスペース間でリソースを共有することができます。

スペースの作成

新しいスペースの作成と起動は今では素早く簡単です。 新しいスペースのセットアップにはわずか数秒しかかからず、スペースの実行には60秒未満しかかかりません。 スペースは、管理者によって管理されるコンピュートおよびストレージの予定された設定が装備されています。 SageMaker Studioの管理者は、コンピュート、ストレージ、およびランタイムの設定にドメインレベルのプリセットを設定できます。 このセットアップにより、わずかな労力で新しいスペースを素早く立ち上げることができ、数回のクリックのみが必要です。 さらにカスタマイズするために、スペースのコンピュート、ストレージ、またはランタイムの設定を変更するオプションもあります。

重要なことは、スペースの作成には、次のようなポリシーをSageMakerドメインの実行ロールに更新する必要があるということです。 ユーザーには、これらのプライベートスペースにアクセスするために必要なプライベートスペースとユーザープロファイルのアクセス権限を付与する必要があります。 詳しい手順については、プライベートスペースへのアクセス権をユーザーに与えるを参照してください。

{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreatePresignedDomainUrl"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"    },    {      "Sid": "SMStudioAppPermissionsListAndDescribe",      "Effect": "Allow",      "Action": [        "sagemaker:ListApps",        "sagemaker:ListDomains",        "sagemaker:ListUserProfiles",        "sagemaker:ListSpaces",        "sagemaker:DescribeApp",        "sagemaker:DescribeDomain",        "sagemaker:DescribeUserProfile",        "sagemaker:DescribeSpace"      ],      "Resource": "*"    },    {      "Sid": "SMStudioAppPermissionsTagOnCreate",      "Effect": "Allow",      "Action": [        "sagemaker:AddTags"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:*/*",      "Condition": {        "Null": {          "sagemaker:TaggingAction": "false"        }      }    },    {      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:$AWS Region:$111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private",            "Shared"          ]        }      }    },    {      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:${aws:Region}:${aws:PrincipalAccount}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private"          ]        }      }    },  ]}

スペースを作成するには、以下の手順を完了します:

  1. SageMaker StudioでJupyterLabApplicationsメニューから選択します。
  2. JupyterLabスペースを作成を選択します。
  3. Nameにスペースの名前を入力します。
  4. スペースを作成を選択します。
  5. デフォルトのプリセットで新しいスペースを起動するか、必要に応じて構成を更新するためにスペースを実行を選択します。

スペースの再構成

スペースは、必要に応じて異なるコンピューティングタイプ間でシームレスに移行できるように設計されています。特定の構成(主にコンピューティングとストレージで構成)を持つ新しいスペースを作成して開始することができます。ワークフローのどの段階でも、必要に応じてvCPU数の多いまたは少ない異なるコンピューティングタイプ、メモリ容量の異なるコンピューティングタイプ、またはGPUを利用したインスタンスに切り替えることができます。スペースを停止した後、UIまたはAPIを使用して設定を変更し、スペースを再起動することができます。SageMaker Studioは、既存のスペースを新しい構成に自動的にプロビジョニングし、追加の手間は必要ありません。

既存のスペースを編集するには、以下の手順を完了します:

  1. スペースの詳細ページでスペースを停止を選択します。
  2. コンピューティング、ストレージ、またはランタイムを再構成します。
  3. スペースを実行を選択してスペースを再起動します。

要求した新しいストレージおよびコンピュートインスタンスタイプでワークスペースが更新されます。

新しいSageMaker Studio JupyterLabアーキテクチャ

SageMaker Studioチームは、新しい完全管理型SageMaker Studio JupyterLabエクスペリエンスをリリースすることで、開発者のエクスペリエンスをさらに創造的かつ簡素化しています。新しいSageMaker Studio JupyterLabエクスペリエンスは、SageMaker Studio Classic(この記事の最後の付録を参照)の拡張性と柔軟性を組み合わせたもので、オープンソースのJupyterLabの安定性と使い慣れた環境を兼ね備えています。この新しいJupyterLabエクスペリエンスのデザインを理解するため、以下のアーキテクチャダイアグラムを見てみましょう。これにより、この新しいJupyterLab Spacesプラットフォームの統合と機能をより良く理解することができます。

要約すると、私たちはローカライズされたアーキテクチャに移行しました。この新しいセットアップでは、Jupyterサーバーとカーネルプロセスが単一のDockerコンテナ内で並行して動作し、同じMLコンピュートインスタンス上にホストされます。これらのMLインスタンスは、スペースが実行されているときにプロビジョニングされ、スペースが最初に作成されたときに作成されたEBSボリュームとリンクされます。

この新しいアーキテクチャには、いくつかの利点があります。以下のセクションでいくつかを詳しく説明します。

レイテンシの低減と安定性の向上

SageMaker Studioは、以前の分割モデルではなく、ローカル実行モデルに移行しました。以前の設定では、コードはEFSマウントに保存され、リモートのMLインスタンス上でリモートカーネルゲートウェイ経由で実行されました。以前の設定では、ヘッドレスWebサーバーであるカーネルゲートウェイが、HTTPS/WSSを介したJupyterカーネルとのリモート通信によるカーネル操作を可能にしていました。コードの実行、ノートブックの管理、またはターミナルコマンドの実行のようなユーザーアクションは、リモートMLインスタンス上のカーネルゲートウェイアプリによって処理され、カーネルゲートウェイはこれらの操作をDockerコンテナ内のZeroMQ(ZMQ)を介して処理しました。次の図はこのアーキテクチャを示しています。

更新されたJupyterLabアーキテクチャは、すべてのカーネル操作をローカルインスタンスで直接実行します。このローカルJupyterサーバーアプローチは通常、パフォーマンスが向上し、シンプルなアーキテクチャを提供します。レイテンシとネットワークの複雑さを最小限に抑え、デバッグとメンテナンスを容易にし、リソースの利用率を向上させ、さまざまな複雑なワークロードに適した柔軟なメッセージングパターンを可能にします。

要するに、このアップグレードにより、ノートブックとコードをカーネルに近づけることで、レイテンシが大幅に低減し、安定性が向上します。

プロビジョニングされたストレージの制御の向上

SageMaker Studio Classicでは、ユーザーのホームディレクトリに永続的な共有ファイルストレージを提供するために、元々Amazon EFSを使用していました。この設定により、ノートブック、スクリプト、その他のプロジェクトファイルを一元的に保存し、すべてのSageMaker Studioセッションとインスタンスでアクセスすることができます。

SageMaker Studioの最新のアップデートでは、Amazon EFSベースのストレージからAmazon EBSベースのソリューションに移行しています。SageMaker StudioスペースでプロビジョニングされるEBSボリュームは、ボリュームサイズに関係なく一定のベースライン性能(3,000 IOPS)を提供するように設計されたGP3ボリュームです。この新しいAmazon EBSストレージは、モデルトレーニング、データ処理、高性能コンピューティング、データの可視化などのI/O集約型のタスクに対して、より高いパフォーマンスを提供します。この移行により、SageMaker Studioの管理者は、ドメイン内のユーザープロファイルごとのストレージ使用状況をより的確に把握し、制御することができるようになります。また、JupyterLabスペース内でのデフォルト(DefaultEbsVolumeSizeInGb)および最大(MaximumEbsVolumeSizeInGb)ストレージサイズを設定することができます。

パフォーマンスの改善に加えて、SageMaker Studioのインターフェースからユーザーアクションを介さずに、SpaceのMLコンピュートインスタンスに接続されたストレージボリュームのサイズを柔軟に変更することができます。ただし、EBSボリュームサイズは一方向にしか変更できないことに注意してください。SpaceのEBSボリュームサイズを増やした後は、元に戻すことはできません。

SageMaker Studioは、管理者向けにプロビジョニングされたストレージの制御機能が向上しています:

  • SageMaker Studioの管理者は、ユーザープロファイルのEBSボリュームサイズを管理することができます。これらのJupyterLab EBSボリュームのサイズは、最小5GBから最大16TBまで変動することができます。次のコードスニペットは、デフォルトおよび最大スペース設定を持つユーザープロファイルを作成または更新する方法を示しています:
aws --region $REGION sagemaker create-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":5,            "MaximumEbsVolumeSizeInGb":100        }    }}'# alternatively to update an existing user profileaws --region $REGION sagemaker update-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":25,            "MaximumEbsVolumeSizeInGb":100         }    }}'
  • SageMaker Studioは、Amazon EBSリソースの自動タグ付け機能を強化しています。この機能により、ユーザーが作成したボリュームには、ドメイン、ユーザー、およびSpaceに関する情報が自動的にラベル付けされます。この進歩により、ストレージリソースのコスト割り当て分析が簡素化され、管理者はコストを効果的に管理し、割り当てることができます。ただし、これらのEBSボリュームはサービスアカウント内にホストされているため、直接的な可視性はありません。それにもかかわらず、ストレージの使用状況と関連するコストは、ドメインARN、ユーザープロファイルARN、およびSpaceのARNと直接関連しているため、簡単なコストの割り当てが可能です。
  • 管理者は、SpaceのEBSボリュームの暗号化を、顧客管理型キー(CMK)を使用して、静止状態で制御することもできます。

ブリングユアオウンEFSファイルシステムを使用した共有テナンシ

MLワークフローは通常コラボレーションが必要であり、チームメンバー間でデータやコードを効率的に共有する必要があります。新しいSageMaker Studioは、ブリングユアオウンEFSファイルシステムを介してデータ、コード、およびその他のアーティファクトを共有できるようにすることで、このコラボレーションの側面を強化します。このEFSドライブは、SageMakerとは独立して設定することも、既存のAmazon EFSリソースであることもできます。プロビジョニングされた後、これはSageMaker Studioのユーザープロファイルにシームレスにマウントできます。この機能は、単一のドメイン内のユーザープロファイルに制限されるものではありません。同じリージョン内であれば、ドメイン間にまたがることもできます。

以下の例コードは、関連付けられたfs-idを使用してドメインを作成し、既存のEFSボリュームをそれにアタッチする方法を示しています。EFSボリュームは、次のコマンドで示されるように、ドメインのルートレベルまたはプレフィックスレベルでドメインにアタッチすることができます:

# ルートレベルで既存のEFSボリュームを持つドメインを作成し、アタッチするaws sagemaker create-domain --domain-name "myDomain" \ --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM \ --default-user-settings \ "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]" # ファイルシステムプレフィックスレベルで既存のEFSボリュームを持つドメインを作成し、アタッチするaws sagemaker create-domain --domain-name "myDomain" \ --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM \ --default-user-settings \ "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678", FileSystemPath="/my/custom/path"}}]"# 既存のドメインを独自のEFSで更新するaws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx \    --default-user-settings \    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

EFSマウントがドメインおよび関連するユーザープロファイルで利用可能になると、新しいスペースにアタッチできます。これはSageMaker StudioのUIまたはAPIアクションを使用して行うことができます。EFSファイルシステムでドメインレベルでプロビジョニングされたスペースは、そのプロパティを継承します。つまり、ファイルシステムがドメイン内のルートまたはプレフィックスレベルでプロビジョニングされている場合、これらの設定はドメインユーザーによって作成されたスペースに自動的に適用されます。

# 事前設定されたEFSをスペースにアタッチするaws sagemaker create-space \--space-name byofs-space --domain-id "myDomain" \--ownership-settings "OwnerUserProfileName={USER_PROFILE_NAME}" \--space-sharing-settings "SharingType=Private" \--space-settings \"AppType=JupyterLab,CustomFileSystems=[{EFSFileSystem={FileSystemId="fs-12345678"}}]")

スペースにマウントした後は、管理者によって設定されたマウントポイントより上のファイルをすべて見つけることができます。これらのファイルは、ディレクトリパス/mnt/custom-file-system/efs/fs-12345678にあります。

EFSマウントにより、ユーザーのスペース間や複数のユーザー間、およびドメイン間でアーティファクトを共有することが容易になり、コラボレーティブなワークロードに理想的です。この機能により、以下のことができます:

  • データの共有 – EFSマウントはデータサイエンスの実験に不可欠な大規模なデータセットを格納するために適しています。データセットの所有者は、これらのマウントにトレーニング、バリデーション、およびテストデータセットをロードすることで、ドメイン内または複数のドメイン間のユーザープロファイルからアクセスできるようにします。SageMaker Studioの管理者は、組織のセキュリティポリシーに準拠しながら既存のアプリケーションEFSマウントを統合することもできます。柔軟なプレフィックスレベルマウンティングを通じてこれが行われます。たとえば、本番データとテストデータが同じEFSマウント(fs-12345678:/data/prod および fs-12345678:/data/testのような)に格納されている場合、SageMakerドメインのユーザープロファイルに/data/testをマウントすることで、ユーザーはテストデータセットにのみアクセスできます。このセットアップにより、本番データが安全でアクセスできない状態で分析やモデルトレーニングが可能となります。
  • コードの共有 – EFSマウントは、ユーザープロファイル間でコードアーティファクトを迅速に共有するために役立ちます。頻繁なgit push / pullコマンドの複雑さを排除して、コモンなコードベースでのコードサンプルの迅速な共有や共同作業が必要な場合、共有EFSマウントは非常に有益です。SageMaker Studioのチーム内または異なるチーム間で進行中の作業コードアーティファクトを簡単に共有できます。
  • 開発環境の共有 – 共有EFSマウントは、ユーザーやチーム間でサンドボックス環境を迅速に共有する手段としても機能します。EFSマウントは、condaやvirtualenvのようなPython環境を複数のワークスペース間で共有するための優れた代替手段を提供します。これにより、requirements.txtenvironment.ymlファイルの配布の必要性が軽減され、さまざまなユーザープロファイル間で環境を作成または再作成するという重複したタスクを回避できます。

これらの機能は、SageMaker Studio内のコラボレーション機能を大幅に強化し、チームが複雑な機械学習プロジェクトで効率的に協力して作業することを容易にします。さらに、Code-OSS(Visual Studio Codeオープンソース)に基づくCode Editorは、前述のJupyterLabの経験と同じアーキテクチャ原則を共有しています。この調整により、レイテンシの低減、安定性の向上、管理上の制御の向上などの利点がもたらされ、ユーザーはJupyterLab Spacesで提供されるものと同様の共有ワークスペースにアクセスすることができます。

JupyterLab Spaces上の生成AIパワードツール

生成AIは人工知能分野で急速に進化しており、アルゴリズムを使ってテキストや画像、コードなどの新しいコンテンツを既存の大量のデータから作成します。この技術はルーチンタスクを自動化し、複雑なコード構造を生成し、知的な提案を行うことで、コーディングを革新し、開発のスムーズ化、創造性の向上、プログラミングにおける問題解決を促進しています。開発者にとって欠かせないツールとして、生成AIはテクノロジー業界で生産性を高め、イノベーションを推進しています。SageMaker Studioは、Amazon CodeWhispererやJupyter AIなど、生成AIを使用して開発ライフサイクルを加速するための事前インストール済みのツールを提供しています。

Amazon CodeWhisperer

Amazon CodeWhispererは、リアルタイムのコードの推奨事項や解決策を通じて、開発者の生産性を向上させるプログラミングアシスタントです。AWSのマネージドAIサービスとして、SageMaker StudioのJupyterLab IDEにシームレスに統合されています。この統合により、Amazon CodeWhispererは開発者の作業フローに無理なく価値ある追加です。

Amazon CodeWhispererは、一般的なコーディングタスクの自動化、効果的なコーディングパターンの提案、デバッグ時間の短縮などにより、開発者の効率を向上させます。初心者から経験豊富なコーダーまでにとって必須のツールであり、ベストプラクティスに関する洞察を提供し、開発プロセスを加速し、コードの全体的な品質を向上させます。Amazon CodeWhispererを使用するには、「自動提案の再開」機能が有効になっていることを確認してください。キーボードショートカットを使用してコードの提案を手動で呼び出すこともできます。

または、コードの機能を説明するコメントを書いてコーディングを始めることもできます。Amazon CodeWhispererは、その後、提案を開始します。

Amazon CodeWhispererは事前インストールされていますが、コードの推奨事項を受け取るためには、実行ロールの一部としてcodewhisperer:GenerateRecommendationsの権限を持っている必要があります。詳細については、Amazon SageMaker StudioでのCodeWhispererの使用を参照してください。Amazon CodeWhispererを使用する際には、AWSはサービスの改善目的で使用方法やコンテンツに関するデータを保存する場合があります。Amazon CodeWhispererのデータ共有ポリシーをオプトアウトするには、トップメニューの設定オプションに移動して、設定エディタに移動し、Amazon CodeWhispererの設定メニューからAmazon CodeWhispererとの使用データの共有を無効にするを選択します。

Jupyter AI

Jupyter AIは、Jupyterノートブックに生成AIをもたらすオープンソースのツールであり、生成AIモデルを探索するための堅牢で使いやすいプラットフォームを提供します。JupyterLabやJupyterノートブックでの生産性を向上させるために、ノートブック内に生成AIプレイグラウンドを作成するための%%aiマジック、会話型アシスタントとしてのネイティブチャットUI、AI21、Anthropic、Cohere、Hugging Faceなどの幅広い大規模言語モデル(LLM)プロバイダーやAmazon BedrockやSageMakerエンドポイントなどのマネージドサービスへのサポートなどの機能を提供しています。この統合により、データ分析、機械学習、およびコーディングのタスクにより効率的かつ革新的な手法が可能となります。例えば、プロセスやワークフローのヘルプに対してドメインに精通したLLMとJupyternautチャットインターフェースを使用したり、SageMakerエンドポイント上でホストされたCodeLlamaを使用して例コードを生成したりすることができます。これは、開発者やデータサイエンティストにとって貴重なツールとなります。

Jupyter AIでは、利用可能な言語モデルの広範な選択肢を提供しています。 さらに、SageMakerエンドポイントを介してカスタムモデルもサポートされており、ユーザーには柔軟性と幅広い選択肢があります。 埋め込みモデルのサポートも提供しており、インライン比較やテストの実行、さらにはアドホックなRAG(Retrieval Augmented Generation)アプリの構築やテストも可能です。

Jupyter AIは、コードサンプルの提供や質問に対する回答など、チャットアシスタントとしての役割も果たすことができます。

Jupyter AIの%%aiマジックを使用して、ノートブック内でサンプルコードを生成することができます。以下のスクリーンショットで示されている通りです。

JupyterLab 4.0

JupyterLabチームは、バージョン4.0をリリースしました。このバージョンでは、パフォーマンス、機能、ユーザーエクスペリエンスが大幅に向上しています。このリリースに関する詳細な情報は、公式のJupyterLabドキュメントで入手できます。

SageMaker Studio JupyterLabの標準バージョンとなったこのバージョンでは、大きなノートブックの処理や高速な操作に最適化されたパフォーマンスが実現されています。CSSルールの最適化やCodeMirror 6およびMathJax 3の採用など、パフォーマンスの向上に貢献しています。主な改良点としては、アクセシビリティとカスタマイズ性を向上させたテキストエディタ、Python拡張の簡単なインストールを可能にする新しい拡張機能マネージャー、高度な機能を備えたドキュメント検索機能の改善などがあります。さらに、バージョン4.0では、UIの改善、アクセシビリティの向上、開発ツールの更新が行われ、一部の機能はJupyterLab 3.6にバックポートされました。

結論

SageMaker Studioの進化、特に新しいJupyterLabの体験によって、ML開発において大きな進歩を遂げました。JupyterLab、Code Editor、RStudioの統合を備えた更新されたSageMaker Studio UIは、ML開発者にとって非常に効率的で効果的な環境を提供しています。JupyterLab Spacesの導入により、計算とストレージリソースのカスタマイズが容易になり、MLワークフローの全体的な効率が向上しました。JupyterLabのリモートカーネルアーキテクチャからローカライズモデルへの移行により、起動の待ち時間が短くなり、安定性が向上しました。これにより、より迅速で安定した、応答性の高いコーディング体験が実現されます。さらに、JupyterLabでのAmazon CodeWhispererやJupyter AIなどの生成AIツールの統合により、開発者はAIを使用してコーディング支援や革新的な問題解決に取り組むことができます。プロビジョンされたストレージの制御強化やセルフマネージドのEFSマウントを介したコードやデータの簡単な共有は、共同プロジェクトを円滑に推進します。最後に、SageMaker Studio内でのJupyterLab 4.0のリリースは、これらの改善を強調し、最適なパフォーマンス、より優れたアクセシビリティ、使いやすいインターフェースを提供することで、JupyterLabがモダンなテックランドスケープにおいて効率的で効果的なML開発の基盤となることを明確にしました。

さあ、SageMaker Studio JupyterLab Spacesを試してみてください。 クイックオンボード機能を使用すると、数分で単一のユーザー向けの新しいドメインを立ち上げることができます。コメントセクションでご意見をお聞かせください!

付録:SageMaker Studio Classicのカーネルゲートウェイアーキテクチャ

SageMaker Classic(セージメーカークラシック)ドメインは、EFSボリューム、ドメインへのアクセス許可を持つユーザーのリスト、およびセキュリティ、アプリケーション、ネットワーキングなどに関連する設定の論理的な集約です。SageMaker Studio Classicアーキテクチャでは、SageMakerドメイン内の各ユーザーには独自のユーザープロファイルがあります。このプロファイルには、ユーザーの役割やEFSボリューム内でのPosixユーザーIDなどの具体的な詳細情報が含まれています。ユーザーは専用のJupyter Serverアプリを介して個々のユーザープロファイルにアクセスし、Webブラウザを介してHTTPS/WSSで接続します。SageMaker Studio Classicは、Jupyter ServerとKernel Gatewayアプリの組み合わせを使用したリモートカーネルアーキテクチャを使用しており、ノートブックサーバーがリモートホスト上のカーネルと対話できるようにしています。これはつまり、Jupyterカーネルがノートブックサーバーのホスト上で動作するのではなく、別のホスト上のDockerコンテナ内で動作することを意味します。要するに、ノートブックはEFSホームディレクトリに保存され、PyTorch、TensorFlow、Scikit-LearnなどのMLライブラリが組み込まれた事前構築されたDockerコンテナを搭載した別のAmazon Elastic Compute Cloud(Amazon EC2)インスタンス上でコードがリモートで実行されます。

SageMaker Studioのリモートカーネルアーキテクチャは、スケーラビリティと柔軟性の面で注目に値するメリットを提供します。ただし、インスタンスタイプあたりの最大アプリ数は4つであり、多数のHTTPS/WSS接続による共通のEC2インスタンスタイプへのボトルネックの可能性があるという制限もあります。これらの制限はユーザーエクスペリエンスに悪影響を及ぼす可能性があります。

以下のアーキテクチャ図は、SageMaker Studio Classicアーキテクチャを表しています。ユーザーが好みのWebブラウザを使用してJupyter Serverアプリを介してKernel Gatewayアプリに接続するプロセスが示されています。

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トレーニングを提供しています」

「ジョニー・コットムは、一人でスタートアップを運営する際に必要なジャグリングの技術を知っています昨年、エコフレンドリ...

機械学習

「生成モデルを本番環境に展開する際の3つの課題」

OpenAI、Google、Microsoft、Midjourney、StabilityAI、CharacterAIなど、誰もがテキストからテキスト、テキストから画像、画...

機械学習

機械学習エンジニアのためのLLMOps入門ガイド

イントロダクション OpenAIのChatGPTのリリースは、大規模言語モデル(LLM)への関心を高め、人工知能について誰もが話題にし...

人工知能

「GPT4Readability — リードミーをもう一度書く必要はありません」

複雑なPythonのコードベースをナビゲートすることは、特にプロジェクトに十分なドキュメンテーションがない場合には困難なタ...

機械学習

NVIDIA NeMoを使ったスタートアップが生成AIの成功ストーリーをスタートさせました

機械学習は、ワシーム・アルシークが大学の教科書を読み進めるのを助けました。現在、彼は生成型AIを活用し、数百の企業向け...

人工知能

「アジャイルな製品開発のためのAI主導のデジタル戦略」

この記事は、AIを主導するデジタル戦略とアジャイルソフトウェア開発手法の交差点を探求し、製品開発ライフサイクルの改善を...