新推出的代码编辑器,基于Code-OSS VS Code开源,现在可在Amazon SageMaker Studio中使用

一种基于Code-OSS VS Code开源的全新代码编辑器现已推出,目前可在Amazon SageMaker Studio中使用

今天,我们很高兴宣布支持Code Editor,这是Amazon SageMaker Studio中的一种新的集成开发环境(IDE)选项。Code Editor基于Code-OSS,即Visual Studio Code开源,提供了熟悉的环境和工具,机器学习(ML)开发人员熟悉并喜爱,与更广泛的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体验中,其中包括Code Editor。有关详细信息,请参见使用快速设置启动Amazon SageMaker域。然后,您可以在Amazon SageMaker Studio环境中轻松点击启动Code Editor。

  1. 域设置完成后,从控制台或管理员提供的预签名URL启动SageMaker Studio的新体验。您可以在左侧面板的“应用程序”部分和概述部分找到Code Editor IDE,如下图所示:
  2. 在Code Editor详细信息页面上,选择创建Code Editor空间。然后输入空间名称并选择创建空间
  3. 在Code Editor空间详细信息页面上,选择您的底层配置,包括:
    1. 底层Amazon Elastic Compute Cloud(Amazon EC2)实例类型。
    2. Amazon Elastic Block Storage(Amazon EBS)卷大小(范围从5GB到16TB)。
    3. 要使用的容器镜像(您将在启动时有SageMaker Distribution的CPU和GPU镜像可用)。
    4. 用于在应用程序创建时运行的生命周期配置脚本。
    5. 在Code Editor空间中挂载的共享Amazon Elastic File System(Amazon EFS)(在配置域时需要由管理员进行配置)。
  4. 在提供空间配置详细信息后,选择运行空间以创建空间资源:

如果您选择了具有默认SageMaker Distribution镜像的快速启动实例,您的Code Editor空间将在不到一分钟内可用。如果您向空间添加了生命周期配置,则可能需要额外的时间来从脚本中安装依赖项。

资源分配完成后,空间详情页面将显示一个打开代码编辑器按钮。

  1. 选择打开代码编辑器以启动IDE。

代码编辑器IDE将在新的浏览器标签页中启动。

代码编辑器功能

代码编辑器具有一套独特的功能,可提高机器学习团队的工作效率:

  1. 完全托管的基础设施 – 代码编辑器IDE运行在完全托管的基础设施上。亚马逊SageMaker负责确保实例与最新的安全补丁和升级保持同步。
  2. 灵活调整资源 – 使用代码编辑器,您可以无缝地更改运行代码编辑器的基础资源(例如实例类型,EBS卷大小)。这对于需要根据计算、内存和存储需求变化运行工作负载的开发人员非常有益。
  3. 由SageMaker提供的镜像 – 代码编辑器预配置了SageMaker Distribution作为默认镜像。该容器镜像包含SageMaker支持的所有最流行的机器学习框架,以及安装了SageMaker Python SDK、boto3和其他AWS和数据科学特定的库。这大大减少了您在设置环境和处理ML项目中的软件包依赖性时所需的时间和复杂性。
  4. 与Amazon CodeWhisperer集成 – 代码编辑器还具有由Amazon CodeWhisperer提供支持的生成式AI功能。这种本机集成使您能够在IDE中生成代码建议,从而提高生产力。
  5. 与其他AWS服务的集成 – 您可以通过Amazon Simple Storage Service (S3)桶,Amazon Elastic Container Registry (ECR)仓库,Amazon RedShiftAmazon CloudWatch等AWS服务进行本机集成,通过AWS Toolkit for VS Code简化云开发。

架构细节

在SageMaker Studio中启动代码编辑器时,您正在创建一个作为容器运行在所配置的代码编辑器空间的EC2实例中的新应用程序。SageMaker Studio为您在托管的帐户中自动处理底层资源的预配。下图显示了代码编辑器IDE应用程序架构的简化版本:

对于给定的用户配置文件,您可以启动多个代码编辑器空间,使用多种机器学习实例类型(包括加速计算实例)。每个空间定义了附加的EBS卷大小、实例类型和要在空间中运行的应用程序类型(例如,代码编辑器)。当用户运行该空间时,将预配底层EC2实例,并基于所选的容器镜像实例化SageMaker Studio代码编辑器应用程序。EBS卷在IDE应用程序的启动/停止周期中持久存在。如果用户停止代码编辑器应用程序(例如,为了节省计算成本),计算资源将停止,但EBS卷将保留并在重新启动时重新附加到实例上。

所有的Code Editor应用程序都是运行在隔离环境中的;如果您需要在不同的应用程序之间共享数据,您可以连接一个共享的Amazon Elastic File System (EFS)驱动器。

要让您的Code Editor IDE使用预安装的VS Code的AWS Toolkit扩展并使用集成的AWS服务,如Amazon CodeWhisperer,或者数据源,如Amazon S3和Amazon Redshift,您需要确保:

  • 您的SageMaker Studio用户配置文件的执行角色具有使用您想要使用的服务所需的适当权限。
  • 如果您的SageMaker Studio域处于仅VPC模式,则您需要一种与这些服务进行通信的方法。有关在VPC-only模式的Studio域中使用AWS服务的要求的详细信息,请参阅在VPC中连接SageMaker Studio笔记本和外部资源

解决方案概述

在接下来的章节中,我们将分享如何使用Code Editor在Amazon SageMaker Studio上开发一个示例ML项目。我们将使用内置的HuggingFace容器将一个Mistral-7B大型语言模型(LLM)模型部署到Amazon SageMaker实时端点。在这个例子中,Code Editor可以被需要高级IDE功能来调试代码并部署端点的ML工程团队使用。您可以在这个GitHub存储库中找到示例代码。我们将展示如何为团队成员之间的轻松协作结构化代码,如何使用VS Code的AWS Toolkit和Amazon Code Whisperer加速开发,以及如何在SageMaker端点上部署Mistral-7B模型。让我们一起走过IDE中一些常见的开发任务。

直接从IDE与AWS服务交互

Code Editor默认带有Visual Studio Code的AWS Toolkit,为您在项目期间提供与其他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端点。

将您的LLM部署到SageMaker端点

您可以从IDE将您的模型部署到SageMaker端点,并直接从SageMaker Studio监控其状态。

随着将您的机器学习项目扩展为可投入生产的应用程序,代码编辑器和AWS Toolkit将允许您在构建、部署和运行过程中管理和监控您的LLM应用程序资源。

结论

代码编辑器适用于Amazon SageMaker Studio可用的所有AWS区域(除GovCloud),您只需根据您的使用情况支付SageMaker或其他AWS服务中的基础计算和存储资源。

要开始使用Amazon SageMaker Studio的代码编辑器,您可以使用AWS免费套餐,每月在Amazon SageMaker Studio上获得250小时的ml.t3.medium实例,前2个月内免费。有关更多详细信息,请参阅Amazon SageMaker定价