Press "Enter" to skip to content

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具

Amazon SageMaker Studio 提供了一套完全托管的综合开发环境(IDE)套件,用于机器学习(ML)开发,包括 JupyterLab、Code-OSS(Visual Studio Code开源版)和RStudio。它为ML开发的每个步骤提供了最全面的工具集,从数据准备到构建、训练、部署和管理ML模型。您可以在几秒钟内启动预配置的SageMaker分发的完全托管的JuptyerLab,用于处理您的笔记本、代码和数据。SageMaker Studio的灵活可扩展的界面使您能够轻松配置和安排ML工作流程,您可以使用AI驱动的内联编码助手快速编写、调试、解释和测试代码。

在本文中,我们更详细地介绍了更新后的SageMaker Studio及其JupyterLab IDE,旨在提高ML开发人员的生产力。我们介绍了Spaces的概念,并解释了JupyterLab Spaces如何灵活定制计算、存储和运行时资源,以提高您的ML工作流程效率。我们还讨论了在JupyterLab中转向本地执行模型,从而实现更快、更稳定和响应更快的编码体验。此外,我们还介绍了如何无缝集成生成式AI工具,如Amazon CodeWhisperer和Jupyter AI,以及它们如何在SageMaker Studio JupyterLab Spaces内赋予开发人员使用AI进行编码辅助和创新问题解决的能力。

SageMaker Studio中的Spaces介绍

新的SageMaker Studio基于Web的界面充当启动首选IDE和访问您的Amazon SageMaker工具来构建、训练、调优和部署模型的指挥中心。除了JupyterLab和RStudio,SageMaker Studio现在还包括基于Code-OSS(Visual Studio Code开源版)的完全托管的Code Editor。JupyterLab和Code Editor都可以使用名为Spaces的灵活工作区来启动。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第1张

Space是SageMaker IDE的配置表现形式,例如JupyterLab或Code Editor,无论与Space相关联的应用程序(IDE)是否正在运行,都能够持久保存。Space表示一个计算实例、存储和其他运行时配置的组合。使用Spaces,您可以根据需要创建和扩展IDE的计算和存储,自定义运行时环境,并随时从任何位置暂停和恢复编码。您可以启动多个这样的Spaces,每个Spaces都配置有不同的计算、存储和运行时组合。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第2张

创建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中,在应用程序菜单上选择JupyterLab
  2. 选择创建JupyterLab空间提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第3张
  3. 名称中,输入您的空间名称。
  4. 选择创建空间提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第4张
  5. 选择运行空间,以使用默认预设启动新的空间,或者根据您的需求更新配置。提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第5张

重新配置空间

空间被设计用于用户在需要时无缝切换不同的计算类型。您可以通过创建具有特定配置的新空间来开始,主要包括计算和存储。如果您在工作流程中的任何时候需要切换到具有更高或更低的虚拟CPU数量、更多或更少的内存,或基于GPU的实例,您可以轻松进行切换。在停止空间后,您可以使用UI或通过更新后的SageMaker Studio界面的API修改其设置,然后重新启动空间。SageMaker Studio会自动处理将现有空间配置为新配置的过程,您无需额外努力。

执行以下步骤以编辑现有的空间:

  1. 在空间详情页面上,选择停止空间提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第6张
  2. 重新配置计算、存储或运行时。
  3. 选择运行空间以重新启动空间。提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第7张

您的工作空间将根据您请求的新存储和计算实例类型进行更新。

全新SageMaker Studio JupyterLab体系结构

SageMaker Studio团队继续通过发布全新的完全托管的SageMaker Studio JupyterLab体验来改进和简化开发者体验。全新的SageMaker Studio JupyterLab体验将SageMaker Studio经典版(请参见本文末尾的附录)的可扩展性和灵活性与开源JupyterLab的稳定性和熟悉性相结合。为了了解这种全新JupyterLab体验的设计,让我们深入研究下面的体系结构图。这将帮助我们更好地理解这个全新的JupyterLab Spaces平台的集成和功能。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第8张

总之,我们已经过渡到了一种本地化的体系结构。在这个新设置中,Jupyter服务器和内核进程在单个Docker容器中与ML计算实例一起运行,这些ML实例在空间运行时进行配置,并与在空间初始创建时创建的EBS卷相连。

新的架构带来了几个好处;我们将在以下几节中讨论其中的一些。

降低延迟和增加稳定性

SageMaker Studio已转换为本地运行模式,不再采用以前的分离模式,其中代码存储在EFS挂载上并通过远程 Kernel Gateway 在 ML 实例上远程运行。在早期的设置中,Kernel Gateway是一个无头 Web 服务器,通过 HTTPS/WSS 与 Jupyter 内核进行远程通信,使内核操作得以执行。用户的动作,如运行代码、管理笔记本或运行终端命令,都由远程 ML 实例上的 Kernel Gateway 应用程序处理,Kernel Gateway 在 Docker 容器内用 ZeroMQ (ZMQ) 促进这些操作。下图说明了这种架构。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第9张

更新后的JupyterLab架构直接在本地实例上运行所有内核操作。这种本地 Jupyter 服务器方法通常提供了更好的性能和直观的架构。它最小化了延迟和网络复杂性,简化了架构以便更容易进行调试和维护,提高了资源利用率,并适应了各种复杂工作负载的更灵活的消息模式。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第10张

实质上,这次升级使得运行笔记本和代码与内核更加密切,极大地降低了延迟并提高了稳定性。

提高对预配存储的控制

SageMaker Studio Classic最初使用Amazon EFS提供持久的共享文件存储,用于在SageMaker Studio环境中的用户主目录。此设置使您能够集中存储笔记本、脚本和其他项目文件,可以在所有SageMaker Studio会话和实例中访问。

通过对SageMaker Studio的最新更新,从基于Amazon EFS的存储转变为基于Amazon EBS的解决方案。由SageMaker Studio Spaces预配的EBS卷是设计为提供独立于卷大小的一致基准性能的GP3卷,性能为3,000 IOPS。这种新的Amazon EBS存储为输入/输出密集型任务(如模型训练、数据处理、高性能计算和数据可视化)提供了更高的性能。这个转变还使得SageMaker Studio管理员可以更好地了解和控制域内或整个SageMaker中每个用户配置文件中的存储使用情况。您现在可以为每个用户配置文件中的JupyterLab Spaces设置默认(DefaultEbsVolumeSizeInGb)和最大(MaximumEbsVolumeSizeInGb)存储大小。

除了改进性能,您可以通过编辑您的Space设置来灵活调整附加到空间的 ML 计算实例的存储卷的大小,无需进行任何管理操作,可以使用 SageMaker Studio 的 UI 或 API 操作进行编辑。但请注意,您只能沿一个方向编辑 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        }    }}'#要更新现有的用户配置文件,也可以使用以下代码段aws --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资源,自动为用户创建的卷添加域、用户和空间信息的标签。这一进步简化了存储资源的成本分配分析,帮助管理员更有效地管理和归因成本。同时需要注意的是,这些 EBS 卷托管在服务帐户内,所以您将无法直接看到它们。然而,存储使用情况和相关成本直接与域 ARN、用户配置文件 ARN 和空间 ARN 相关联,从而方便直接的成本分配。

  • 管理员还可以通过使用客户管理的密钥(CMK)对空间的 EBS 卷进行静止时的加密。

共享租户和自带EFS文件系统

机器学习工作流通常是协作的,需要团队成员之间高效地共享数据和代码。SageMaker Studio通过允许您使用共享的自带EFS文件系统来增强这种协作性。这个EFS驱动器可以独立设置,也可以是现有的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文件系统创建空间时,该空间继承其属性。这意味着如果文件系统在域内的根级别或前缀级别配置,这些设置将自动应用于域用户创建的空间。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第11张

# 将预先配置的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中找到。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第12张

EFS挂载使得在用户的空间之间或多个用户之间、多个域之间共享结果更加简单,非常适用于协作工作负载。有了这个功能,您可以做到以下几点:

  • 共享数据 – EFS挂载非常适合存储对于数据科学实验至关重要的大型数据集。数据集所有者可以加载这些挂载点,其中包含训练、验证和测试数据集,使其对域内或跨域的用户配置文件可访问。SageMaker Studio管理员还可以集成现有的应用程序EFS挂载,同时遵守组织安全策略。这是通过灵活的前缀级别挂载来实现的。例如,如果生产和测试数据存储在同一个EFS挂载中(例如fs-12345678:/data/prod and fs-12345678:/data/test),将/data/test挂载到SageMaker域的用户配置文件只允许用户访问测试数据集,这样设置能够在保持生产数据安全和无法访问的同时进行分析或模型训练。
  • 共享代码 – 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工具

生成式人工智能是人工智能领域中迅速发展的领域,它使用算法从大量现有数据中创建新的内容,如文本、图像和代码。这项技术通过自动化常规任务、生成复杂的代码结构和提供智能建议来革新编码,从而简化开发并促进编程中的创造力和问题解决能力。作为开发者的必备工具,生成式人工智能提高了生产力,推动了技术行业的创新。SageMaker Studio通过预安装Amazon CodeWhisperer和Jupyter AI等工具,利用生成式人工智能来加速开发生命周期,并增强开发体验。

Amazon CodeWhisperer

Amazon CodeWhisperer是一款通过实时代码推荐和解决方案来提高开发者生产力的编程助手。作为AWS托管的人工智能服务,它无缝集成到SageMaker Studio的JupyterLab IDE中。这种集成使得Amazon CodeWhisperer成为开发者工作流程中流畅而有价值的补充。

Amazon CodeWhisperer通过自动化常见的编码任务、提供更有效的编码模式建议和缩短调试时间来提高开发者效率。它是初学者和经验丰富的编码人员的重要工具,为他们提供了最佳实践的见解,加速了开发过程,并改善了代码的整体质量。要开始使用Amazon CodeWhisperer,请确保启用了Resume Auto-Suggestions功能。您可以使用键盘快捷键手动调用代码建议。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第13张

另外,您可以编写描述您的代码功能的注释,并开始编码;Amazon CodeWhisperer将开始提供建议。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第14张

请注意,虽然Amazon CodeWhisperer已预安装,但您必须在执行角色中具有codewhisperer:GenerateRecommendations权限才能接收代码建议。有关更多详细信息,请参阅在Amazon SageMaker Studio中使用CodeWhisperer。当您使用Amazon CodeWhisperer时,为了服务改进目的,AWS可能会存储有关您的使用和内容的数据。要选择退出Amazon CodeWhisperer的数据共享政策,您可以从顶部菜单中导航到Setting选项,然后导航到Settings Editor,并在Amazon CodeWhisperer设置菜单中禁用Share usage data with Amazon CodeWhisperer

Jupyter AI

Jupyter AI是一个开源工具,将生成式人工智能引入Jupyter笔记本,为探索生成式人工智能模型提供了一个强大而用户友好的平台。它通过提供功能(如在笔记本内创建生成式人工智能游乐场的%%ai魔术命令、在JupyterLab中提供本机聊天用户界面与人工智能进行对话以及支持各种大型语言模型(LLM)提供者,如AI21、Anthropic、Cohere和Hugging Face,或托管服务如Amazon Bedrock和SageMaker端点)来提高JupyterLab和Jupyter Notebooks中的生产力。这种集成提供了更高效和创新的数据分析、机器学习和编码任务方法。例如,您可以使用Jupyternaut聊天界面与具有领域感知能力的LLM互动,以帮助处理流程和工作流程,或者通过托管在SageMaker端点上的CodeLlama生成示例代码。这使得它成为开发人员和数据科学家的重要工具。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第15张

Jupyter AI提供了一个广泛的选择的语言模型,可立即使用。此外,也支持自定义模型,通过SageMaker端点提供灵活性和广泛的选择。它还支持嵌入模型,使您能够执行内联比较和测试,甚至构建或测试临时的Retrieval Augmented Generation (RAG)应用程序。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第16张

Jupyter AI可以作为您的聊天助手,帮助您获取代码示例,为您提供问题的答案等等。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第17张

您可以使用Jupyter AI的%%ai魔术命令在笔记本中生成示例代码,如下方屏幕截图所示。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第18张

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开发的重大飞跃。更新的SageMaker Studio UI,与JupyterLab、Code Editor和RStudio的整合,为ML开发人员提供了一个无与伦比的流畅环境。JupyterLab Spaces的引入提供了在自定义计算和存储资源方面的灵活性和便利,提高了ML工作流的整体效率。JupyterLab从远程内核架构转向本地化模型架构,极大地增加了稳定性,同时减少了启动延迟。这意味着更快、更稳定、更流畅的编码体验。此外,JupyterLab在SageMaker Studio中集成了Amazon CodeWhisperer和Jupyter AI等生成AI工具,进一步赋能开发人员,使您能够使用AI进行编码辅助和创新问题解决。通过自管理的EFS挂载,对预分配存储的增强控制和轻松共享代码和数据,极大地促进了协作项目的开展。最后,JupyterLab 4.0在SageMaker Studio中的发布强调了这些改进,提供了优化的性能、更好的可访问性和更用户友好的界面,从而巩固了JupyterLab在现代技术领域高效和有效的ML开发中的作用。

试试SageMaker Studio JupyterLab Spaces,使用我们的快速入门功能,在几分钟内为单个用户启动新的域。在评论区分享您的想法!

附录:SageMaker Studio Classic的内核网关架构

SageMaker Classic域是一个逻辑上的集合,包括一个EFS卷,一个授权访问该域的用户列表以及与安全、应用程序、网络等相关的配置。在SageMaker的SageMaker Studio Classic架构中,SageMaker域中的每个用户都有一个独立的用户配置文件。该配置文件包含用户的角色以及在EFS卷中的Posix用户ID等特定信息。用户通过专用的Jupyter Server应用程序通过HTTPS/WSS在其Web浏览器中访问其单独的用户配置文件。SageMaker Studio Classic使用远程内核架构,使用Jupyter Server和内核网关应用程序类型的组合,使得笔记本服务器能够与远程主机上的内核进行交互。这意味着Jupyter内核不在笔记本服务器主机上运行,而是在独立主机上的Docker容器中运行。实质上,您的笔记本存储在EFS主目录中,并在不同的Amazon Elastic Compute Cloud(Amazon EC2)实例上远程运行代码,该实例配备了预先构建的具有PyTorch、TensorFlow、Scikit-Learn等机器学习库的Docker容器。

SageMaker Studio中的远程内核架构在可扩展性和灵活性方面具有显著的优势。然而,它也有其局限性,包括每种实例类型最多允许四个应用程序,并且由于多个HTTPS/WSS连接到共享的EC2实例类型可能会出现瓶颈,这可能会对用户体验产生负面影响。

以下架构图描述了SageMaker Studio Classic的架构。它展示了用户如何通过首选的Web浏览器连接到内核网关应用程序的过程,从而通过Jupyter Server应用程序进行交互。

提高在Amazon SageMaker Studio上的生产力:介绍JupyterLab Spaces和生成AI工具 四海 第19张

Leave a Reply

Your email address will not be published. Required fields are marked *