Meet YOLO26: next-gen vision AI.

Link to this section在 Amazon SageMaker 端点上部署 YOLO26 的指南#

在 Amazon SageMaker 端点上部署 计算机视觉 模型(如 Ultralytics' YOLO26)为各种 机器学习 应用打开了广阔的可能性。有效使用这些模型的关键在于理解它们的设置、配置和部署流程。当 YOLO26 与 Amazon SageMaker(AWS 提供的一种强大且可扩展的机器学习服务)无缝集成时,它将变得更加强大。

本指南将引导你逐步完成在 Amazon SageMaker 端点上部署 YOLO26 PyTorch 模型的整个过程。你将学习准备 AWS 环境、正确配置模型以及使用 AWS CloudFormation 和 AWS Cloud Development Kit (CDK) 进行部署的基本要素。

Link to this sectionAmazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker 是来自 Amazon Web Services (AWS) 的一项机器学习服务,它简化了构建、训练和部署机器学习模型的过程。它提供了一系列广泛的工具,用于处理机器学习工作流的各个方面。这包括用于调优模型的自动化功能、大规模训练模型的选项,以及将模型部署到生产环境的简便方法。SageMaker 支持主流的机器学习框架,为各种项目提供了所需的灵活性。其功能还涵盖数据标注、工作流管理和性能分析。

Link to this section在 Amazon SageMaker 端点上部署 YOLO26#

在 Amazon SageMaker 上部署 YOLO26 让你可以使用其托管环境进行实时推理,并利用自动伸缩等功能。请参考下方的 AWS 架构图。

AWS SageMaker YOLO training architecture

Link to this section第一步:设置你的 AWS 环境#

首先,请确保已满足以下先决条件:

  • AWS 账户:如果你还没有账户,请注册一个 AWS 账户。

  • 配置 IAM 角色:你需要一个具有 Amazon SageMaker、AWS CloudFormation 和 Amazon S3 所需权限的 IAM 角色。该角色应具有允许其访问这些服务的策略。

  • AWS CLI:如果尚未安装,请下载并安装 AWS 命令行界面 (CLI),并使用你的账户详细信息进行配置。请按照 AWS CLI 说明 进行安装。

  • AWS CDK:如果尚未安装,请安装 AWS Cloud Development Kit (CDK),它将用于部署脚本编写。请按照 AWS CDK 说明 进行安装。

  • 充足的服务配额:确认你在 Amazon SageMaker 中为两个独立的资源拥有足够的配额:一个用于终端节点使用的 ml.m5.4xlarge,另一个用于笔记本实例使用的 ml.m5.4xlarge。每个资源至少需要一个配额值。如果当前配额低于此要求,请务必为每个资源申请增加配额。你可以按照 AWS 服务配额文档 中的详细说明来申请增加配额。

Link to this section第二步:克隆 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

Link to this section第三步:设置 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

Link to this section第四步:创建 AWS CloudFormation 堆栈#

  • 合成 CDK 应用程序:从你的 CDK 代码生成 AWS CloudFormation 模板:

    cdk synth
  • 引导 CDK 应用程序:为 CDK 部署准备你的 AWS 环境:

    cdk bootstrap
  • 部署堆栈:这将创建必要的 AWS 资源并部署你的模型:

    cdk deploy

Link to this section第五步:部署 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):
        """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 端点的过程。

Link to this section第六步:测试你的部署#

现在你的 YOLO26 模型已部署完毕,测试其性能和功能非常重要。

  • 打开测试笔记本:在同一个 Jupyter 环境中,找到并打开同样位于 sm-notebook 目录下的 2_TestEndpoint.ipynb 笔记本。

  • 运行测试笔记本:按照笔记本中的说明测试已部署的 SageMaker 端点。这包括向端点发送图像并运行推理。然后,你将绘制输出结果以直观地显示模型的性能和 准确性,如下所示。

Testing Results YOLO26

  • 清理资源:测试笔记本还将引导你完成清理端点和托管模型的过程。如果你不打算立即使用已部署的模型,这是一个管理成本和资源的重要步骤。

Link to this section第七步:监控与管理#

测试完成后,对已部署的模型进行持续的监控和管理至关重要。

  • 使用 Amazon CloudWatch 进行监控:使用 Amazon CloudWatch 定期检查 SageMaker 端点的性能和健康状况。

  • 管理端点:使用 SageMaker 控制台对端点进行持续管理。这包括根据需要进行扩展、更新或重新部署模型。

完成这些步骤后,你将成功在 Amazon SageMaker 端点上部署并测试了 YOLO26 模型。此过程不仅让你获得了在机器学习部署中使用 AWS 服务的实践经验,也为将来部署其他先进模型奠定了基础。

Link to this section总结#

本指南带你逐步完成了使用 AWS CloudFormation 和 AWS Cloud Development Kit (CDK) 在 Amazon SageMaker 端点上部署 YOLO26 的过程。该流程包括克隆必要的 GitHub 存储库、设置 CDK 环境、使用 AWS 服务部署模型以及在 SageMaker 上测试其性能。

有关更多技术细节,请参阅 AWS 机器学习博客上的 这篇文章。你还可以查看官方的 Amazon SageMaker 文档,以了解有关各种功能和特性的更多见解。

你有兴趣了解更多关于不同 YOLO26 集成的信息吗?访问 Ultralytics 集成指南页面 以发现更多可以增强你机器学习项目的工具和功能。

Link to this section常见问题解答#

Link to this section如何将 Ultralytics YOLO26 模型部署到 Amazon SageMaker 端点上?#

要将 Ultralytics YOLO26 模型部署到 Amazon SageMaker 端点上,请按照以下步骤操作:

  1. 设置你的 AWS 环境:确保拥有 AWS 账户、具有必要权限的 IAM 角色以及配置好的 AWS CLI。如果尚未安装 AWS CDK,请先进行安装(参考 AWS CDK 说明)。
  2. 克隆 YOLO26 SageMaker 存储库
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
  3. 设置 CDK 环境:创建 Python 虚拟环境,激活它,安装依赖项并升级 AWS CDK 库。
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
  4. 使用 AWS CDK 进行部署:合成并部署 CloudFormation 堆栈,引导环境。
    cdk synth
    cdk bootstrap
    cdk deploy

有关更多详细信息,请查看 文档部分

Link to this section在 Amazon SageMaker 上部署 YOLO26 的先决条件是什么?#

要在 Amazon SageMaker 上部署 YOLO26,请确保具备以下先决条件:

  1. AWS 账户:有效的 AWS 账户(点击此处注册)。
  2. IAM 角色:配置了具有 SageMaker、CloudFormation 和 Amazon S3 访问权限的 IAM 角色。
  3. AWS CLI:已安装并配置好 AWS 命令行界面(AWS CLI 安装指南)。
  4. AWS CDK:已安装 AWS Cloud Development Kit(CDK 设置指南)。
  5. 服务配额:终端节点和笔记本实例使用所需的 ml.m5.4xlarge 实例配额充足(申请增加配额)。

有关详细设置,请参考 此部分

Link to this section我为什么要使用 Amazon SageMaker 上的 Ultralytics YOLO26?#

在 Amazon SageMaker 上使用 Ultralytics YOLO26 具有以下优势:

  1. 可扩展性和管理:SageMaker 提供了一个带有自动伸缩等功能的托管环境,这有助于满足实时推理需求。
  2. 与 AWS 服务的集成:与 S3(数据存储)、CloudFormation(基础设施即代码)和 CloudWatch(监控)等其他 AWS 服务无缝集成。
  3. 部署简便:使用 AWS CDK 脚本简化了设置,并优化了部署流程。
  4. 高性能:利用 Amazon SageMaker 的高性能基础设施,高效运行大规模推理任务。

简介部分 中探索更多关于使用 SageMaker 的优势。

Link to this section我可以在 Amazon SageMaker 上自定义 YOLO26 的推理逻辑吗?#

可以,你可以在 Amazon SageMaker 上自定义 YOLO26 的推理逻辑:

  1. Modify inference.py: Locate and customize the output_fn function in the inference.py file to tailor output formats.

    import json
    
    def output_fn(prediction_output):
        """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()
            # Add more processing logic if necessary
        return json.dumps(infer)
  2. 部署更新后的模型:确保使用提供的 Jupyter 笔记本 (1_DeployEndpoint.ipynb) 重新部署模型,以包含这些更改。

参考部署修改后模型的 详细步骤

Link to this section如何测试部署在 Amazon SageMaker 上的 YOLO26 模型?#

要测试部署在 Amazon SageMaker 上的 YOLO26 模型:

  1. 打开测试笔记本:在 SageMaker Jupyter 环境中找到 2_TestEndpoint.ipynb 笔记本。
  2. 运行笔记本:按照笔记本中的说明操作,向端点发送图像,执行推理并显示结果。
  3. 可视化结果:使用内置的绘图功能来可视化性能指标,例如在检测到的物体周围绘制边界框 (BBox)。

如需全面的测试说明,请访问 测试部分

评论