加速使用 Amazon Q Developer 在 Amazon SageMaker Studio
- 13
加速在 Amazon SageMaker Studio 中使用 Amazon Q Developer 的 ML 工作流程
关键要点
机器学习项目通常复杂,涉及数据收集、预处理、模型构建、部署以及维护等多个步骤。Amazon Q Developer 是一个集成的自然语言助手,可以帮助数据科学家简化工作流程并快速开启 ML 项目。本文展示了一个实际案例,通过分析 Diabetes 130US 医院数据集来开发一个预测再住院可能性的 ML 模型。Amazon Q Developer 与 Amazon SageMaker Studio 完美结合,提供个性化支持,包含工具推荐、逐步指导、代码生成和故障排除。随着机器学习ML项目的复杂性提高,从数据收集到模型构建、部署、维护,数据科学家面临诸多挑战,例如工具选择、代码示例的逐步指导,以及错误排除等问题。这些挑战可能会阻碍进展并拖慢项目速度。但幸运的是,像 Amazon Q Developer 这样的生成式AI驱动的开发助手应运而生,帮助数据科学家简化工作流程,加速 ML 项目,节省时间并专注于战略性和创新性的任务。
Amazon Q Developer 完全集成于 Amazon SageMaker Studio,这是一个集成开发环境IDE,提供了一个基于Web的接口来管理 ML 开发的所有阶段。您可以在 SageMaker Studio 笔记本中使用这个自然语言助手获得个性化的支持,包括工具推荐、逐步指南、代码生成和故障排除支持。这种整合简化了您的 ML 工作流程,让您能够高效构建、训练和部署 ML 模型,无需离开 SageMaker Studio 去搜索额外的资源或文档。
在本文中,我们将展示一个实际的用例,通过分析 Diabetes 130US hospitals dataset 开发一个预测患者出院后再住院可能性的 ML 模型。在这个过程中,您将看到如何在 SageMaker Studio 中使用 Amazon Q Developer 应对开发生命周期的各个阶段,并亲身体验这个自然语言助手如何帮助数据科学家和 ML 工程师简化开发过程,加速价值实现。
解决方案概述
如果您是 AWS 身份和访问管理 (IAM) 用户或 AWS IAM 身份中心,则可以使用您的 Amazon Q Developer Pro 级别 订阅在 Amazon SageMaker 中。管理员能在 Amazon Q Developer 控制台上为用户订阅 Pro 级别,启用 SageMaker 域设置中的 Pro 级别,并提供 Amazon Q Developer 配置文件的 Amazon 资源名称 (ARN)。Pro 级别提供无限的聊天和内联代码建议。详细说明请参见 为您的用户设置 Amazon Q Developer。
如果您没有 Pro 级别的订阅,但想体验此功能,可以通过将相关策略添加到 SageMaker 服务角色来访问 Amazon Q Developer 免费版。管理员可以访问 IAM 控制台,搜索 SageMaker Studio 角色,并添加 为您的用户设置 Amazon Q Developer 中概述的策略。免费级别对 IAM 用户和 IAM 身份中心用户均可用。
要开始我们的 ML 项目,预测糖尿病患者的再住院概率,您需要下载 Diabetes 130US hospitals dataset。该数据集包含1999年至2008年130个美国医院的临床护理数据。每一行代表被诊断为糖尿病的患者入院记录,包括实验室检查等信息。
截至发稿时,Amazon Q Developer 在 SageMaker Studio 中的支持仅适用于 JupyterLab 空间,不支持共享空间。
Amazon Q Developer 聊天功能
在您将数据上传到 SageMaker Studio 后,便可以开始处理减少糖尿病患者再住院率的 ML 问题。您可以使用 JupyterLab 笔记本旁边的聊天功能,向 Amazon Q Developer 提问,例如生成解析 Diabetes 130US 医院数据的代码,如何形成此 ML 问题,并制定构建预测再住院可能性模型的计划。Amazon Q Developer 运用 AI 提供代码推荐,这一过程是非确定性的,您得到的结果可能与以下截图中的不同。
您可以要求 Amazon Q Developer 为您规划 ML 项目。在这种情况下,您希望助手展示如何使用 Diabetes 130US 数据集训练随机森林分类器。您可以在聊天中输入以下提示,Amazon Q Developer 会生成一个计划。如果生成了代码,您可以直接使用用户界面将代码插入到笔记本中。
我有一个包含关于糖尿病患者出院后再住院数据的 diabeticdatacsv 文件。我想使用这些数据训练一个使用 scikitlearn 的随机森林分类器。你能列出构建这个模型的步骤吗?
风驰加速器fengchi您可以要求 Amazon Q Developer 帮助生成特定任务的代码,插入以下提示:
创建一个函数,该函数接受一个 pandas DataFrame,并对性别、种族、A1C结果和最大血糖 serum 列执行独热编码。
您还可以要求 Amazon Q Developer 解释现有代码并排除常见错误。只需选择带有错误的单元格并在聊天中输入 /fix。
以下是完整的快捷命令列表:
命令描述/help显示帮助信息/fix修复选定的错误单元格/clear清除聊天窗口/export导出聊天记录为 Markdown 文件为了充分利用 Amazon Q Developer 聊天,建议在撰写提示时遵循以下最佳实践:
直接且具体:提出精确的问题。例如,不要对 AWS 服务模糊提问,而是问:“你能提供使用 SageMaker Python SDK 库在 SageMaker 中训练 XGBoost 模型的示例代码吗?”具体性有助于助手理解您确切的需求,从而提供更准确和实用的响应。提供上下文信息:提供更多上下文信息,以便 Amazon Q Developer 针对您的特定情况调整其响应。例如,不要只请求准备数据的代码,而是提供数据的前几行,以获取更好的代码建议,减少需要的更改。避免敏感话题:Amazon Q Developer 设有保护控制,尽量避免与安全、账单信息等敏感主题相关的问题。遵循这些指导方针可以帮助您最大化 Amazon Q Developer 基于 AI 的代码推荐的价值,并简化您的 ML 项目。
Amazon Q Developer 内联代码建议
您还可以在 JupyterLab 笔记本中输入代码时获得实时的代码建议,这些建议是基于您当前的代码和注释上下文意识到的,从而简化编码过程。在以下示例中,我们展示如何使用内联代码建议功能为各种数据科学任务生成代码块:从数据探索、特征工程、训练随机森林模型、评估模型,最后部署模型以预测糖尿病患者的再住院概率。
下图展示了用于与 Amazon Q Developer 交互的快捷键列表。
让我们开始数据探索。
首先导入一些必要的 Python 库,如 pandas 和 NumPy。在 Jupyter Notebook 的第一个代码单元中添加以下代码,然后运行该单元:
import pandas as pdimport numpy as npimport matplotlibpyplot as plt
在下一个代码单元中,添加以下注释,并在运行单元之前按 Enter 和 Tab。您可以观察底部状态栏,看到 Amazon Q Developer 在生成代码建议。
读取 diabeticreadmissioncsv
您也可以请求 Amazon Q Developer 创建可视化:
创建一个条形图,显示按 race 和 gender 统计的患者数量,标题为 patients by race and gender
最后,您可以使用 Amazon Q Developer 帮助您创建一个简单的 ML 模型,即使用 scikitlearn 的随机森林分类器。
Amazon Q Developer 在 SageMaker 数据政策中的作用
在 SageMaker Studio 中使用 Amazon Q Developer 时,无论您使用的是免费版还是专业版,都不会使用客户内容来改进服务。在 IDE 层级的遥测共享中,Amazon Q Developer 可能会追踪您使用服务的情况,例如您提问的次数以及是否接受或拒绝了某个建议。这些信息不会包含客户内容或个人身份信息,例如您的 IP 地址。如果您希望选择不参与 IDE 层级的遥测,则可以按照以下步骤选择不与 Amazon Q Developer 分享使用数据:
在 设置 菜单中选择 设置编辑器。取消选中 与 Amazon Q Developer 共享使用数据 选项。或者,ML 平台管理员可以通过生命周期配置脚本为 JupyterLab 中的所有用户默认禁用此选项。有关更多信息,请访问 使用生命周期配置与 JupyterLab。要在 SageMaker Studio 域中默认禁用 Amazon Q Developer 数据共享的选项,请按照以下步骤完成:
在 SageMaker 控制台上,选择导航窗格中的 生命周期配置 下的 管理员配置。选择 创建配置。在 名称 中输入一个名称。在 脚本 部分,创建一个生命周期配置脚本,禁用 shareCodeWhispererContentWithAWS 设置标志,以适用于 jupyterlabq 扩展:!/bin/bash
mkdir p /home/sagemakeruser/jupyter/lab/usersettings/amazonqdeveloperjupyterlabext/catlt /home/sagemakeruser/jupyter/lab/usersettings/amazonqdeveloperjupyterlabext/completerjupyterlabsettings{shareCodeWhispererContentWithAWS false suggestionsWithCodeReferences true codeWhispererTelemetry falsecodeWhispererLogLevel ERROR}EOL
将禁用q数据共享生命周期配置附加到域中。可选的,您可以在 默认运行时强制生命周期配置运行。
在创建 JupyterLab 空间时使用此生命周期配置。 如果配置设置为 默认运行,则在启动时将默认选择该配置。
此配置几乎会立即运行,并在 JupyterLab 空间启动时禁用 与 Amazon Q Developer 共享使用数据 的选项。
清理
在测试该解决方案后,为避免引起 AWS 费用,请删除 SageMaker Studio 域。
结论
在本文中,我们走过了一个实际用例,开发了一个预测糖尿病患者出院后再住院可能性的 ML 模型。在这个过程中,我们在 SageMaker Studio 中使用 Amazon Q Developer 应对开发生命周期的各个阶段,展示了这个开发助手如何帮助简化开发过程并加速实现价值,即使是对于经验丰富的 ML 从业者。您可以在所有 AWS 地区访问 Amazon Q Developer,因此可以开始在 SageMaker Studio 中使用 Amazon Q Developer,体验这款生成式 AI 驱动的助手。
该助手提供给所有 Amazon Q Developer Pro 和免费版用户。如需了解定价信息,请查看 Amazon Q Developer 定价。
作者介绍
James Wu 是 AWS 的高级 AI/ML 解决方案架构师,帮助客户设计和构建 AI/ML 解决方案。James 的工作涵盖广泛的 ML 用例,主要兴趣在计算机视觉、深度学习和企业级 ML 扩展。在加入 AWS 之前,James 拥有超过 10 年的架构、开发和技术领导经验,包括在工程和市场营销/广告行业的 6 年和 4 年。
Lauren Mullennex 是 AWS 的高级 AI/ML 解决方案架构师,拥有十年的 DevOps、基础设施和 ML 经验。她的专注领域包括计算机视觉、MLOps/LLMOps 和生成性 AI。
Shibin Michaelraj 是 Amazon SageMaker 团队的高级产品经理,专注于构建基于 AI/ML 的产品以服务 AWS 客户。
Pranav Murthy 是 AWS 的 AI/ML 专家解决方案架构师,专注于帮助客户在 SageMaker 中构建、训练、部署和迁移机器学习 (ML) 工作负载。他曾在半导体工业工作,利用最先进的 ML 技术开发大型计算机视觉 (CV) 和自然语言处理 (NLP) 模型,以改善半导体工艺。在空闲时间,他喜欢下棋和旅行。您可以在 LinkedIn 上找到 Pranav。
![](https//d2908q01vomqb2cloudfrontnet/f1f836cb4ea6efb2a0b1b99f41ad8b103eff