在 Amazon SageMaker 端点上部署 YOLO26 指南#
在 Amazon SageMaker 端点上部署 Ultralytics YOLO26 等先进的计算机视觉模型,可为各种机器学习应用带来丰富的可能性。要有效使用这些模型,关键在于了解其设置、配置和部署流程。将 YOLO26 与 AWS 提供的强大且可扩展的机器学习服务 Amazon SageMaker 无缝集成后,YOLO26 的能力将更上一层楼。
本指南将逐步介绍如何在 Amazon SageMaker 端点上部署 YOLO26 PyTorch 模型。你将了解准备 AWS 环境、正确配置模型,以及使用 AWS CloudFormation 和 AWS 云开发工具包 (CDK) 等工具进行部署的基本方法。
Amazon SageMaker#
Amazon SageMaker 是 Amazon Web Services (AWS) 提供的一项机器学习服务,可简化机器学习模型的构建、训练和部署流程。它提供了各种工具,帮助你处理机器学习工作流的多个环节,包括用于调整模型的自动化功能、用于大规模训练模型的选项,以及将模型部署到生产环境的简便方法。SageMaker 支持常用的机器学习框架,为各种项目提供所需的灵活性。它的功能还涵盖数据标注、工作流管理和性能分析。
在 Amazon SageMaker 端点上部署 YOLO26#
在 Amazon SageMaker 上部署 YOLO26,可以使用其托管环境进行实时推理,并利用自动扩缩等功能。请查看下方的 AWS 架构图。
步骤 1:设置 AWS 环境#
首先,确保已满足以下先决条件:
-
AWS 账户:如果你还没有 AWS 账户,请注册一个。
-
已配置的 IAM 角色:你需要一个具备 Amazon SageMaker、AWS CloudFormation 和 Amazon S3 所需权限的 IAM 角色。该角色应附加允许其访问这些服务的策略。
-
AWS CLI:如果尚未安装,请下载并安装 AWS 命令行界面 (CLI),并使用你的账户信息进行配置。请按照 AWS CLI 安装说明进行安装。
-
AWS CDK:如果尚未安装,请安装 AWS 云开发工具包 (CDK),以便编写部署脚本。请按照 AWS CDK 安装说明进行安装。
-
充足的服务配额:确认你在 Amazon SageMaker 中为两种不同资源预留了足够的配额:一种用于端点,配额项为
ml.m5.4xlarge;另一种用于笔记本实例,配额项为ml.m5.4xlarge。这两种资源的配额值都至少需要为 1。如果当前配额低于此要求,请务必分别申请增加。你可以按照 AWS 服务配额文档中的详细说明申请增加配额。
步骤 2:克隆 YOLO26 SageMaker 仓库#
下一步是克隆包含在 SageMaker 上部署 YOLO26 所需资源的 AWS 专用仓库。该仓库托管在 GitHub 上,包含必要的 CDK 脚本和配置文件。
-
克隆 GitHub 仓库:在终端中执行以下命令,克隆 host-yolov8-on-sagemaker-endpoint 仓库:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
进入克隆后的目录:将当前目录切换到克隆的仓库:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
步骤 3:设置 CDK 环境#
现在你已获得所需代码,可以设置使用 AWS CDK 进行部署的环境。
-
创建 Python 虚拟环境:这可以隔离你的 Python 环境和依赖项。运行:
python3 -m venv .venv -
激活虚拟环境:
source .venv/bin/activate -
安装依赖项:安装项目所需的 Python 依赖项:
pip3 install -r requirements.txt -
升级 AWS CDK 库:确保使用最新版本的 AWS CDK 库:
pip install --upgrade aws-cdk-lib
步骤 4:创建 AWS CloudFormation 堆栈#
-
合成 CDK 应用:根据你的 CDK 代码生成 AWS CloudFormation 模板:
cdk synth -
引导 CDK 应用:为 AWS 环境做好 CDK 部署准备:
cdk bootstrap -
部署堆栈:这将创建所需的 AWS 资源并部署模型:
cdk deploy
步骤 5:部署 YOLO 模型#
开始阅读部署说明之前,请务必查看 Ultralytics 提供的 YOLO26 模型。这将帮助你根据项目需求选择最合适的模型。
创建 AWS CloudFormation 堆栈后,下一步就是部署 YOLO26。
-
打开笔记本实例:前往 AWS 控制台并导航到 Amazon SageMaker 服务。在控制面板中选择“笔记本实例”,然后找到 CDK 部署脚本创建的笔记本实例。打开该笔记本实例以访问 Jupyter 环境。
-
访问并修改 inference.py:在 Jupyter 中打开 SageMaker 笔记本实例后,找到 inference.py 文件。按下方所示编辑 inference.py 中的 output_fn 函数,并保存脚本更改,确保没有语法错误。
import json def output_fn(prediction_output, content_type): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() if result.masks is not None: infer["masks"] = result.masks.numpy().data.tolist() if result.keypoints is not None: infer["keypoints"] = result.keypoints.numpy().data.tolist() if result.obb is not None: infer["obb"] = result.obb.numpy().data.tolist() if result.probs is not None: infer["probs"] = result.probs.numpy().data.tolist() return json.dumps(infer) -
使用 1_DeployEndpoint.ipynb 部署端点:在 Jupyter 环境中,打开 sm-notebook 目录中的 1_DeployEndpoint.ipynb 笔记本。按照笔记本中的说明运行单元格,下载 YOLO26 模型,将模型与更新后的推理代码打包,并将其上传到 Amazon S3 存储桶。该笔记本将指导你创建并部署 YOLO26 模型的 SageMaker 端点。
步骤 6:测试部署#
现在 YOLO26 模型已完成部署,接下来要测试其性能和功能。
-
打开测试笔记本:在同一个 Jupyter 环境中,找到并打开同样位于 sm-notebook 目录中的 2_TestEndpoint.ipynb 笔记本。
-
运行测试笔记本:按照笔记本中的说明测试已部署的 SageMaker 端点,包括向端点发送图像并运行推理。然后,按照下方所示绘制输出结果,以直观地查看模型的性能和准确率。
- 清理资源:测试笔记本还会指导你清理端点和托管模型。有效管理成本和资源非常重要,尤其是在你暂时不打算使用已部署模型的情况下。
步骤 7:监控和管理#
测试完成后,持续监控和管理已部署的模型至关重要。
-
使用 Amazon CloudWatch 进行监控:定期使用 Amazon CloudWatch 检查 SageMaker 端点的性能和运行状况。
-
管理端点:使用 SageMaker 控制台持续管理端点,包括根据需要扩缩、更新或重新部署模型。
完成这些步骤后,你就成功在 Amazon SageMaker Endpoints 上部署并测试了 YOLO26 模型。这个过程不仅让你积累了使用 AWS 服务部署机器学习模型的实践经验,也为你今后部署其他先进模型奠定了基础。
总结#
本指南逐步介绍了如何使用 AWS CloudFormation 和 AWS 云开发工具包(CDK)在 Amazon SageMaker Endpoints 上部署 YOLO26。整个过程包括克隆所需的 GitHub 代码库、设置 CDK 环境、使用 AWS 服务部署模型,以及在 SageMaker 上测试模型性能。
如需了解更多技术细节,请参阅 AWS Machine Learning Blog 上的这篇文章。你也可以查看官方的 Amazon SageMaker 文档,进一步了解各种功能。
你想进一步了解不同的 YOLO26 集成吗?访问 Ultralytics 集成指南页面,了解可增强机器学习项目的其他工具和功能。
常见问题#
要在 Amazon SageMaker Endpoints 上部署 Ultralytics YOLO26 模型,请按以下步骤操作:
- 设置 AWS 环境:确保你拥有 AWS 账户、具有必要权限的 IAM 角色,并已配置 AWS CLI。如果尚未安装 AWS CDK,请先安装(参阅 AWS CDK 说明)。
- 克隆 YOLO26 SageMaker 代码库:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk - 设置 CDK 环境:创建并激活 Python 虚拟环境、安装依赖项,并升级 AWS CDK 库。
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - 使用 AWS CDK 部署:合成并部署 CloudFormation 堆栈,然后引导初始化环境。
cdk synth cdk bootstrap cdk deploy
如需了解更多详情,请参阅文档部分。
要在 Amazon SageMaker 上部署 YOLO26,请确保满足以下前提条件:
- AWS 账户:有效的 AWS 账户(在此注册)。
- IAM 角色:已配置具有 SageMaker、CloudFormation 和 Amazon S3 权限的 IAM 角色。
- AWS CLI:已安装并配置 AWS 命令行界面(AWS CLI 安装指南)。
- AWS CDK:已安装 AWS 云开发工具包(CDK 设置指南)。
- 服务配额:
ml.m5.4xlarge实例的配额充足,可用于端点和笔记本(申请提高配额)。
如需了解详细的设置步骤,请参阅此部分。
在 Amazon SageMaker 上使用 Ultralytics YOLO26 有以下优势:
- 可扩展性和管理:SageMaker 提供托管环境和自动扩缩等功能,有助于满足实时推理需求。
- 与 AWS 服务集成:可与其他 AWS 服务无缝集成,例如用于数据存储的 S3、用于基础设施即代码的 CloudFormation,以及用于监控的 CloudWatch。
- 便于部署:借助 AWS CDK 脚本简化设置,并让部署流程更加顺畅。
- 性能:利用 Amazon SageMaker 的高性能基础设施,高效运行大规模推理任务。
在介绍部分中进一步了解使用 SageMaker 的优势。
可以,你可以自定义 YOLO26 在 Amazon SageMaker 上的推理逻辑:
-
修改
inference.py:在inference.py文件中找到并自定义output_fn函数,以调整输出格式。import json def output_fn(prediction_output, content_type): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # 如有必要,添加更多处理逻辑 return json.dumps(infer) -
部署更新后的模型:确保使用提供的 Jupyter 笔记本(
1_DeployEndpoint.ipynb)重新部署模型,以纳入这些更改。
参阅详细步骤,了解如何部署修改后的模型。
-
要在 Amazon SageMaker 上测试已部署的 YOLO26 模型,请执行以下操作:
- 打开测试笔记本:在 SageMaker Jupyter 环境中找到
2_TestEndpoint.ipynb笔记本。 - 运行笔记本:按照笔记本中的说明向端点发送图像、执行推理并显示结果。
- 可视化结果:使用内置绘图功能展示性能指标,例如在检测到的对象周围绘制边界框。
如需全面的测试说明,请访问测试部分。
- 打开测试笔记本:在 SageMaker Jupyter 环境中找到