当前位置: 首页 > news >正文

Amazon SageMaker:让AI开发变得简单与高效

随着人工智能与机器学习技术的快速发展,如何高效地构建、训练和部署AI模型,成为了许多开发者和企业面临的挑战。而Amazon SageMaker正是为了解决这些问题而诞生的,SageMaker提供了一个端到端的解决方案,旨在简化AI开发流程。无论是数据科学家、工程师,还是业务决策者,SageMaker都能帮助快速实现机器学习模型的开发、训练和部署。今天本文将深入探讨这款强大工具的功能,了解它如何助力AI项目从0到1的飞跃

目录

初识Amazon SageMaker

Nova模型使用操作

部署通用 LLM API接口服务

写在最后

新用户可获得高达 200 美元的服务抵扣金

亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用,除非您选择付费计划。付费计划允许您扩展运营并获得超过 150 项亚马逊云科技服务的访问权限。

初识Amazon SageMaker

        Amazon SageMaker:是一项完全托管的服务,它汇集了大量工具可为任何使用场景提供高性能、低成本的机器学习(ML)。借助 SageMaker AI可以使用笔记本、调试器、分析器、管道、MLOps 等工具大规模构建、训练和部署机器学习模型,这一切都在一个集成式开发环境(IDE)中完成。

        SageMaker AI通过简化的访问控制和机器学习项目的透明度来支持治理要求,此外还可以构建自己的基础模型(FM),即在海量数据集上训练的大型模型并使用专用工具对 FM 进行微调、实验、重新训练和部署,SageMaker AI还提供对数百个预训练模型的访问权限,包括公开的FM且我们只需若干个快捷步骤即可部署这些模型,从 亚马逊云科技官网 我们可以知道其具备的优势:

        SageMaker AI对于初学者来讲还是比较友好的,因为其提供2个月的免费试用期,免费期间提供的训练时间足够我们日常使用了,并且给我们是否要继续使用该工具一个衡量的时间:

        还有一个点比较友好的是亚马逊云科技官网给我们提供了训练数据的具体教程,如果是初学者并且担心不会使用该服务的话,阅读官方文档给出的具体步骤之后,也可以轻松上手来训练数据以及部署MLOps,如下所示:

如果你想了解更多关于SageMaker AI方面的内容,可以访问 网址 来查看更多知识和内容:

Nova模型使用操作

        Amazon SageMaker AI推出一整套适用于Amazon Nova的定制功能,可以在模型训练的整个生命周期(包括预训练、有监督的微调和对齐阶段)对Nova Micro、Nova Lite 和 Nova Pro进行定制,这些技术以即用型Amazon SageMaker配方的形式提供,可无缝部署到Amazon Bedrock支持按需和预置吞吐量推理。

        Amazon Nova:基础模型为各行各业的多种生成式 AI 使用案例提供支持,随着用户扩大部署规模,他们需要能够反映专有知识、工作流程和品牌要求的模型。提示优化和检索增强生成(RAG)能很好地将通用基础模型集成到应用程序中,但业务关键型工作流程需要定制模型,以满足特定的准确性、成本和延迟要求。

        Amazon Nova模型支持一系列定制技术,包括:

1)有监督的微调;2)对齐;3)持续预训练;4)知识蒸馏。

        最佳选择取决于目标、使用案例的复杂性以及数据和计算资源的可用性。您也可以结合多种技术,以性能、成本和灵活性的理想组合实现预期成果。下面简单介绍一个使用现有偏好数据集,通过直接偏好优化定制Nova Micro模型的示例,为此可以使用Amazon SageMaker Studio,在 Amazon SageMaker AI 中启动您的 SageMaker Studio,然后选择JumpStart,这是一个机器学习(ML)中心,包含基础模型、内置算法和预构建的 ML 解决方案,只需点击几下即可部署,如下所示:

        然后选择 Nova Micro(这是一个仅文本模型,在 Nova 模型系列中以最低的每次推理成本提供最低延迟的响应),然后选择训练,如下所示:

        接下来可以选择一个微调配方,使用标记数据训练模型,以增强处理特定任务的性能并与期望的行为保持一致。选择直接偏好优化可根据您的偏好轻松调整模型输出,如下所示:

        当选择打开示例笔记本时,可以通过两个环境选项来运行该方案:在SageMaker训练作业上运行或者在SageMaker Hyperpod上运行,当不需要创建集群时,选择在SageMaker训练作业上运行配方,并通过选择JupyterLab空间,使用示例笔记本训练模型,如下所示:

        如果希望拥有一个为迭代训练过程优化的持久集群环境,请选择在SageMaker HyperPod上运行配方,可以选择一个至少有一个受限实例组(RIG)的 HyperPod EKS 集群以提供专门的隔离环境,这是此类Nova模型训练所必需的,然后选择您的JupyterLabSpace并打开示例笔记本,如下所示:

        该笔记本提供了使用带有配方的 SageMaker Nova 模型创建 SageMaker HyperPod 作业,并将其部署用于推理的端到端演练。借助 SageMaker HyperPod 配方可以简化复杂配置并无缝集成数据集以优化训练作业:

在SageMaker Studio中可以看到SageMaker HyperPod作业已成功创建,可以对其进行监控以了解后续进展,作业完成后,您可以使用基准测试方案评估定制模型处理代理任务的性能是否更好:

部署通用 LLM API接口服务

        很多客户在使用 Amazon SageMaker 做推理端点的时候经常会遇到前端应用兼容 OpenAI 的 API,却无法兼容 SageMaker API 调用的情况。如果你想让这些应用可以快速地使用部署到 Amazon Sagemaker 推理端点的模型服务,而又不希望修改其应用代码,那么可以使用此项目所实现的与 OpenAI API 兼容的服务,使用 Amazon SageMaker 作为后端来生成文本响应。服务支持流式响应,可以实时将生成内容返回给客户端,OpenAI Compatible API with Amazon SageMaker 的架构如下图所示:

这里我们可以下载项目代码:地址,然后创建一个.env 文件,设置以下环境变量:

# 客户端测试使用的环境变量
export OPENAI_BASE_URL="http://<ALB ADDRESS>/v1"  # API服务的负载均衡器地址
export OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxx"  # 调用API的密钥# 服务端配置使用的环境变量
export API_KEY_CACHE_TTL="3600"  # API密钥缓存时间,单位为秒
export AUTH_SECRET_ID="<AWS Secret Manager Secret ID for API Key>"  # AWS Secret Manager中存储API密钥的Secret ID
export MODEL="<Sagemaker Endpoint Name>"  # SageMaker端点名称
export AWS_REGION="<AWS REGION>"  # AWS区域
export AWS_ACCOUNT_ID="<AWS Account ID>"  # AWS账户ID

        先加载环境变量,然后构建 Docker 镜像并推送到 ECR,后面创建集群、任务定义、服务和负载均衡器设置,创建任务执行 IAM 角色,这个角色允许 ECS 任务拉取 ECR 镜像、访问 CloudWatch 日志等。如果还没有此角色,请创建:

cat > task-execution-role-trust-policy.json << EOF{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "ecs-tasks.amazonaws.com"},"Action": "sts:AssumeRole"}]}EOF# 创建角色aws iam create-role \--role-name ecsTaskExecutionRole \--assume-role-policy-document file://task-execution-role-trust-policy.json# 附加必要策略aws iam attach-role-policy \--role-name ecsTaskExecutionRole \--policy-arn arn:aws-cn:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy# 附加访问Secrets Manager的策略aws iam attach-role-policy \--role-name ecsTaskExecutionRole \--policy-arn arn:aws-cn:iam::aws:policy/SecretsManagerReadWrite# 附加访问SageMaker的策略aws iam attach-role-policy \--role-name ecsTaskExecutionRole \--policy-arn arn:aws-cn:iam::aws:policy/AmazonSageMakerFullAccess

        后面创建ECS服务,替换<TARGET-GROUP-ARN>为之前创建的目标组 ARN,更新相应的 subnet id 和 securityGroups,然后创建服务监控服务状态,如下图所示:命令会显示一个简洁的表格,包含服务名称、状态、期望任务数、运行中任务数和使用的任务定义版本:

后面执行测试脚本 OpenAI_Client_Test.debug.py,可用于验证 API 的功能,如下加载环境变量,然后运行测试脚本:

source .env
python openAI_client_test.debug.py

        脚本会使用环境变量中设置的`OPENAI_BASE_URL`、`OPENAI_API_KEY`和`MODEL`,发送一个简单的问候消息”Hello!”,并以流式方式接收和显示响应。输出如下所示,可以看到兼容 OpenAI 的代理功能,能帮助用户轻松将 OpenAI 应用轻松接入到 Amazon SageMaker 推理端点:

python OpenAI_Client_Test.debug.py[ec2-user@ip-172-31-10-156 openai-compatible-api-streaming]$ ./openAI_client_test.debug.py 
[10:07:14.328] 脚本开始执行
[10:07:14.328] 环境变量检查:
[10:07:14.328] OPENAI_BASE_URL = http://xxxxxxx.elb.amazonaws.com.cn/v1
[10:07:14.328] MODEL = deepseek-ai-DeepSeek-R1-Distill-Qwen-1-5B-250326-0342
[10:07:14.328] OPENAI_API_KEY = 已设置
[10:07:14.328] 初始化 OpenAI 客户端...
[10:07:14.401] 创建聊天完成请求,模型: deepseek-ai-DeepSeek-R1-Distill-Qwen-1-5B-250326-0342
[10:07:15.104] 开始接收流式响应...
Alright, the user said "Hello!" and I should respond warmly.I'll greet them and offer my help.Keeping it friendly and open-ended should work best.
</think>Hello! How can I assist you today?完整响应: Alright, the user said "Hello!" and I should respond warmly.I'll greet them and offer my help.Keeping it friendly and open-ended should work best.
</think>Hello! How can I assist you today?
[10:07:15.217] 脚本执行完毕

写在最后

        在AI和机器学习领域,Amazon SageMaker提供了一个强大且全面的解决方案,帮助开发者从数据准备、模型训练到部署的每个环节都能轻松掌控。凭借其端到端的功能和高度集成的工具,SageMaker大大降低了AI开发的门槛,使得复杂的机器学习流程变得更加简便和高效。无论是数据科学家还是开发者,都可以利用SageMaker实现从零开始到完整部署的快速迭代,并且其之处众多编程语言:

        作为亚马逊云科技的核心服务之一,SageMaker不仅加速了AI项目的实施,也为企业带来了更智能的决策支持工具。随着技术的进步Amazon SageMaker将继续推动AI领域的创新,高性能和低成本的特点,让每个开发者都能更轻松地将机器学习变成现实:

无论是初学者还是经验丰富的专家,Amazon SageMaker都能在AI开发旅程中的成为强大助手,感兴趣的朋友可以去尝试一下:地址 。

以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~

http://www.dtcms.com/a/333292.html

相关文章:

  • 【数据分享】上市公司创新韧性数据(2007-2023)
  • UDP与TCP协议的Python实现详解
  • C# 中的 string / StringBuilder / 值类型 / 引用类型 / CLR 总结
  • Vue模板引用(Template Refs)全解析1
  • ​​数字化时代的身份安全基石:4A平台如何重构企业访问控制体系​
  • excel中批量写sql时,选中日期列由数字转yyyy-mm-dd
  • es7.x中分片和节点关系以及查看节点数
  • Flink中基于时间的合流--双流联结(join)
  • MySQL(多表查询练习)
  • C++宏展开规则
  • 【数据可视化-90】2023 年城镇居民人均收入可视化分析:Python + pyecharts打造炫酷暗黑主题大屏
  • PyTorch 训练神经网络模型,并集成到springboot项目中
  • JavaScript 原型机制详解:从概念到实战(附个人学习方法)
  • 科普:Pygame 中,`pg.Surface` v.s. `screen`
  • 使用Docker容器化Python测试Pytest项目并配置GitHub Actions CI/CD流程
  • IgH初始化--未接从站
  • 一站式学会——进制转换与位运算符详解(通俗易懂)
  • ElasticSearch不同环境同步索引数据
  • 20250815在荣品RD-RK3588-MID开发板的Android13下调通TP芯片FT8206
  • linux安装docker-compose
  • STM32在使用DMA发送和接收时的模式区别
  • 使用C# 高效实现 Word 文档内容查找与替换的6种方法
  • Java 调用 Python 脚本:实现 HelloWorld
  • 数据驱动测试提升自动化效率
  • 车辆减振器异响测试系统
  • [Pyro] 基础构件 | 随机性sample | 可学习参数param | 批量处理plate
  • find命令解读
  • 重塑工业设备制造格局:明远智睿 T113-i 的破局之道
  • 2025北京世界机器人大会:技术、场景、生态实现三重跃迁
  • ARM+OpenPLC 组合详解及经典示例