新功能

新的集成开发环境:基于 CodeOSS 的代码编辑器现在在 Amazon SageMaker Studio 中可用

关键要点

Amazon SageMaker Studio 新增了基于 CodeOSS 的代码编辑器,为机器学习开发者提供熟悉的 IDE 环境。用户可以选择来自 OpenVSX 扩展库的数千个 VS Code 兼容扩展,以增强开发体验。通过 AWS Toolkit for Visual Studio Code 实现与 AWS 服务的无缝集成,包括 Amazon CodeWhisperer 提供的 AI 编程助手。

今天,我们非常高兴地宣布在 Amazon SageMaker Studio 中推出 Code Editor,这是一个新的集成开发环境 (IDE) 选项。Code Editor 基于 CodeOSS,即 Visual Studio Code 的开源版本,并提供了机器学习 (ML) 开发者熟悉的环境和工具,这些工具与 SageMaker Studio 的其他功能集完美集成。Code Editor 允许您从 OpenVSX 扩展库 中选择成千上万的 VS Code 兼容扩展,以进一步增强团队的开发体验。同时,您还可以利用与 AWS 服务的无缝集成,通过 AWS Toolkit for Visual Studio Code 提高团队的工作效率,包括集成的 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。

设置好域后,从控制台或您的管理员提供的预签名 URL 启动 SageMaker Studio 新体验。您可以在左侧面板的应用程序部分和概览部分找到 Code Editor IDE,如以下截图所示:

在 Code Editor 详细信息页面,选择 创建代码编辑器空间。然后输入空间的名称并选择 创建空间:

在 Code Editor 空间详细信息页面,选择您的底层配置,包括:

底层 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型。Amazon Elastic Block Storage (Amazon EBS) 卷大小范围从 5GB 到 16TB。要使用的容器镜像您将在启动时获得 CPU 和 GPU 的 SageMaker Distribution 镜像。应用创建时要运行的生命周期配置脚本如果需要自定义环境。

在您的代码编辑器空间中挂载的共享 Amazon Elastic File System (Amazon EFS)这需要在提供您的域时由您的管理员配置。

提供空间的配置详细信息后,选择 运行空间 以配置您空间的资源。

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

资源配置完成后,空间详细信息页面将显示 打开代码编辑器 按钮。

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

代码编辑器 IDE 将在新的浏览器选项卡中启动。

Code Editor 特性

Code Editor 提供了一系列独特的功能,以提高您的 ML 团队的生产力:

完全托管的基础设施 Code Editor IDE 运行在完全托管的基础设施上。Amazon SageMaker 负责保持实例与最新的安全补丁和升级保持同步。动态调整资源 使用 Code Editor,您可以无缝更改正在运行中的底层资源例如,实例类型、EBS 卷大小。这对希望以变化的计算、内存和存储需求来运行工作负载的开发者非常有利。SageMaker 提供的镜像 Code Editor 预配置了 SageMaker Distribution 作为默认镜像。此容器镜像支持所有最受欢迎的 ML 框架,并安装了 SageMaker Python SDK、boto3 和其他 AWS 及数据科学特定库。这显著减少了您设置环境所花费的时间,并降低了管理 ML 项目中软件包依赖性的复杂性。Amazon CodeWhisperer 集成 Code Editor还配备由 Amazon CodeWhisperer 提供的生成 AI 能力。这种原生集成使您能够通过在 IDE 中生成代码建议来提高生产力。集成其他 AWS 服务 通过 AWS Toolkit for VS Code ,您可以获得与 Amazon Simple Storage Service (S3) 桶、Amazon Elastic Container Registry (ECR) 存储库、Amazon RedShift、Amazon CloudWatch 等的原生集成,简化云中的开发。

架构细节

在 SageMaker Studio 中启动 Code Editor 时,您实际上是在 EC2 实例中创建一个新的运行容器的应用程序,该实例的类型是您在配置 Code Editor 空间时选择的。SageMaker Studio 为您处理基础资源的配置,服务托管账户的资源管理。以下图示展示了 Code Editor IDE 应用程序架构的简化版本:

新功能

对于某个用户资料,您可以启动多个 Code Editor 空间,支持多种 ML 实例类型包括加速计算实例。每个空间定义了附加的 EBS 卷大小、实例类型和要在空间中运行的应用程序类型例如,Code Editor。当用户运行该空间时,将配置底层 EC2 实例,并基于所选的容器镜像实例化一个 SageMaker Studio Code Editor 应用程序。EBS 卷在 IDE 应用程序 的启动/停止周期中持久存在。如果用户停止 Code Editor 应用程序例如,为了节省计算成本,计算资源将被停止,但 EBS 卷会被保留,并在重新启动时重新附加到实例。

所有 Code Editor 应用程序相互隔离;如果您需要在应用程序之间共享数据,可以附加一个共享的 Amazon Elastic File System (EFS) 驱动器。

快鸭加速器破解版免费vip

为了让您的 Code Editor IDE 使用预安装的 AWS Toolkit 扩展 for VS Code 以及利用 Amazon CodeWhisperer 这样的集成 AWS 服务或 Amazon S3 和 Amazon Redshift 等数据源,您需要确保:

您的 SageMaker Studio 用户资料的执行角色具有使用您想要进行操作的服务的适当权限。如果您有一个 VPC 仅限模式的 SageMaker Studio 域,则必须能够与这些服务进行通信。有关在 VPC 仅限模式的 Studio 域中使用 AWS 服务的要求的更多信息,请参考 将 SageMaker Studio 笔记本连接到 VPC 的外部资源。

解决方案概述

在接下来的部分中,我们将分享如何在 Amazon SageMaker Studio 中使用 Code Editor 开发一个示例 ML 项目。我们将把一个 Mistral7B 大型语言模型 (LLM) 部署到 Amazon SageMaker 实时端点,使用 HuggingFace 提供的内置容器。在此示例中,Code Editor 可供需要高级 IDE 功能来调试代码并部署端点的 ML 工程团队使用。您可以在 此处 的 GitHub 仓库中找到示例代码。我们将展示如何结构化代码以便于团队成员之间的协作,如何使用 AWS Toolkit for VS Code 和 Amazon Code Whisperer 加快开发,以及如何在 SageMaker 端点上部署 Mistral7B 模型。让我们了解 IDE 中的一些常见开发任务。

直接从 IDE 与 AWS 服务交互

开箱即用,Code Editor 附带 AWS Toolkit for Visual Studio Code,为您提供与其他 AWS 服务的集成体验。根据您的 SageMaker Studio 用户资料的 AWS 身份与访问管理 (IAM) 权限,您可以与 Amazon S3 桶中的数据交互,在 Amazon ECR 中查找容器镜像,查看 SageMaker 端点的 Amazon CloudWatch 日志,并利用其他功能,从您的 IDE 中运行端到端的 ML 项目。

结构化代码库以实现无缝协作

您可以结构化项目代码库,以最大限度地提高团队的生产力。例如,您可以设置一个单一的代码库,旨在平衡常见的 Python 项目约定 和团队协作需求。

您的代码库可以包含一个 vscode 文件夹,其中包含所有必要的文件,用于标准化不同团队成员之间的依赖关系、扩展和配置。请参考以下动画以作参考。

您可以通过 requirementstxt 文件在团队成员之间共享依赖关系。您还可以指定 configyaml 文件,以共享 SageMaker 端点的启动原语。您的 Code Editor 会话将与您的团队成员共享相同的依赖项和配置,从而快速开发和调试推理代码和端点。

在 IDE 中开发和调试代码

在以下示例中,我们展示了如何开发和调试 inferencepy 脚本,该脚本将用于您的 SageMaker 端点:

使用 Amazon CodeWhisperer 生成代码和测试用例

作为您 Code Editor 中 AWS Toolkit 的一部分,Amazon CodeWhisperer 使您能够更快更安全地构建应用程序,提供 AI 编程助手。它能够为您提供实时代码建议,针对 AWS 服务进行优化,并内置安全扫描。在我们的示例中,我们使用 Amazon CodeWhisperer 生成整个代码行和完整的函数,以便部署和测试 SageMaker 端点。

将 LLM 部署到 SageMaker 端点

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

随着您将 ML 项目扩展为生产就绪应用程序,Code Editor 和 AWS Toolkit 将帮助您管理和监控 LLM 应用程序的资源。

结论

Code Editor 在所有可用 Amazon SageMaker Studio 的 AWS 区域中上线GovCloud 除外,您仅需根据使用情况为 SageMaker 或其他 AWS 服务中的底层计算和存储资源付费。

要在 Amazon SageMaker Studio 中开始使用 Code Editor,您可以利用 AWS 免费套餐,在前两个月每月获得 250 小时 mlt3medium 实例使用权限。欲知详情,请参见 Amazon SageMaker 定价。

关于作者

Eric Pea 是 AWS 人工智能平台团队的高级技术产品经理,专注于 Amazon SageMaker 交互式机器学习。他目前专注于 SageMaker Studio 中的 IDE 集成。他拥有麻省理工学院斯隆商学院的 MBA 学位,工作之余喜欢打篮球和足球。

Vikesh Pandey 是 AWS 的机器学习专家解决方案架构师,帮助金融行业的客户设计并构建生成 AI 和 ML 的解决方案。在工作之外,Vikesh 喜欢尝试不同的美食和进行户外运动。

Bruno Pistone 是 AWS 的 AI/ML 专家解决方案架构师,位于米兰。他与大型客户合作,帮助他们深入理解技术需求并设计最充分利用 AWS 云和 Amazon 机器学习堆栈的 AI 和 ML 解决方案。他的专长包括:机器学习端到端、机器学习工业化和生成人工智能。闲暇时,他喜欢与朋友们共度时光,探索新地方以及旅行。

Giuseppe Angelo Porcelli 是亚马逊网络服务公司的首席机器学习专家解决方案架构师。凭借多年的软件工程和 ML 背景,他与各种规模的客户合作,理解他们的业务和技术需求,设计充分利用 AWS 云和 Amazon 机器学习堆栈的 AI 和 ML 解决方案。他参与了多个不同领域的项目,包括 MLOps、计算机视觉和自然语言处理,涉及多种 AWS 服务。在空闲时间,Giuseppe喜欢踢足球。

Sofian Hamiti 是 AWS 的 AI/ML 专家解决方案架构师。他帮助不同行业的客户加速 AI/ML 之旅,通过构建和运营端到端的机器学习解决方案来实现