SageMaker 边缘管理器 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SageMaker 边缘管理器

重要

SageMaker 边缘管理器已于 2024 年 4 月 26 日停产。有关继续将模型部署到边缘设备的更多信息,请参阅 Edg SageMaker e Manager 生命周期终止

Amazon SageMaker Edge Manager 组件 (aws.greengrass.SageMakerEdgeManager) 安装 SageMaker 边缘管理器代理二进制文件。

SageMaker Edge Manager 为边缘设备提供模型管理,因此您可以优化、保护、监控和维护边缘设备队列上的机器学习模型。边 SageMaker 缘管理器组件在您的核心设备上安装和管理边 SageMaker 缘管理器代理的生命周期。您还可以使用 SageMaker Edge Manager 在 Greengrass 核心设备上打包和使用 SageMaker Neo 编译的模型作为模型组件。有关在核心设备上使用 SageMaker Edge Manager 代理的更多信息,请参阅在 Green SageMaker grass 核心设备上使用亚马逊 Edge Manager

SageMaker Edge Manager 组件 v1.3.x 安装边缘管理器代理二进制 v1.20220822.836f3023。有关 Edge Manager 代理二进制版本的更多信息,请参阅边缘管理器代理

注意

边 SageMaker 缘管理器组件仅在以下版本中可用 AWS 区域:

  • 美国东部(俄亥俄)

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • Asia Pacific (Tokyo)

版本

此组件有以下版本:

  • 1.3.x

  • 1.2.x

  • 1.1.x

  • 1.0.x

类型

组件是一个通用组件 (aws.greengrass.generic)。Greengrass 核心运行组件的生命周期脚本。

有关更多信息,请参阅 组件类型

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

要求

此组件具有以下要求:

  • 在亚马逊 Linux 2、基于 Debian 的 Linux 平台(x86_64 或 Armv8)或 Windows(x86_64)上运行的 Greengrass 核心设备。如果没有,请参阅教程:AWS IoT Greengrass V2 入门

  • 安装在核心设备上的 Pyth@@ on 3.6 或更高版本,包括pip适用于你的 Python 版本。

  • Greengrass 设备角色配置如下:

    • 一种允许credentials.iot.amazonaws.com.rproxy.goskope.comsagemaker.amazonaws.com担任角色的信任关系,如以下IAM策略示例所示。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    • AmazonSageMakerEdgeDeviceFleetPolicyIAM托管策略。

    • s3:PutObject操作,如以下IAM策略示例所示。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
  • 与您的 Greengrass 核心设备 AWS 区域 相同 AWS 账户 且创建的 Amazon S3 存储桶。 SageMaker Edge Manager 需要一个 S3 存储桶来创建边缘设备队列,并存储在设备上运行推理的示例数据。有关创建 S3 存储桶的信息,请参阅 Amazon S3 入门

  • 使用与 Greengrass 核心设备相同的 AWS IoT 角色别名的 SageMaker 边缘设备队列。有关更多信息,请参阅 创建边缘设备队列

  • 您的 Greengrass 核心设备在您的 Edge 设备群中注册为边缘设备。 SageMaker 边缘设备名称必须与核心设备 AWS IoT 的事物名称相匹配。有关更多信息,请参阅 注册你的 Greengrass 核心设备

端点和端口

除了基本操作所需的端点和端口外,此组件还必须能够对以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙

Endpoint 端口 必需 描述

edge.sagemaker.region.amazonaws.com

443

检查设备注册状态并将指标发送到 SageMaker。

*.s3.amazonaws.com

443

将捕获数据上传到您指定的 S3 存储桶。

您可以将*替换为上传数据的每个存储桶的名称。

依赖项

部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及定义每个依赖项的组件版本的语义版本限制。您还可以在AWS IoT Greengrass 控制台中查看组件每个版本的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

1.3.5 and 1.3.6

下表列出了此组件版本 1.3.5 和 1.3.6 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.13.0 软性
代币兑换服务 >=0.0.0 硬性
1.3.4

下表列出了此组件版本 1.3.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.12.0 软性
代币兑换服务 >=0.0.0 硬性
1.3.3

下表列出了此组件版本 1.3.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.11.0 软性
代币兑换服务 >=0.0.0 硬性
1.3.2

下表列出了此组件版本 1.3.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.10.0 软性
代币兑换服务 >=0.0.0 硬性
1.3.1

下表列出了此组件版本 1.3.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.9.0 软性
代币兑换服务 >=0.0.0 硬性
1.1.1 - 1.3.0

下表列出了此组件版本 1.1.1-1.3.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.8.0 软性
代币兑换服务 >=0.0.0 硬性
1.1.0

下表列出了此组件版本 1.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.6.0 软性
代币兑换服务 >=0.0.0 硬性
1.0.3

下表列出了此组件版本 1.0.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.5.0 软性
代币兑换服务 >=0.0.0 硬性
1.0.1 and 1.0.2

下表列出了此组件版本 1.0.1 和 1.0.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.4.0 软性
代币兑换服务 >=0.0.0 硬性
1.0.0

下表列出了此组件版本 1.0.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.3.0 软性
代币兑换服务 >=0.0.0 硬性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署该组件时对其进行自定义。

注意

本节介绍您在组件中设置的配置参数。有关相应 SageMaker 边缘管理器配置的更多信息,请参阅《亚马逊 SageMaker 开发者指南》中的 Edge Manager 代理

DeviceFleetName

包含你的 Green SageMaker grass 核心设备的 Edge Manager 设备队列的名称。

部署此组件时,必须在配置更新中为此参数指定一个值。

BucketName

将捕获的推理数据上传到的 S3 存储桶的名称。存储桶名称必须包含字符串sagemaker

如果设置CaptureDataDestinationCloud,或者设置CaptureDataPeriodicUploadtrue,则在部署此组件时,必须在配置更新中为此参数指定一个值。

注意

捕获数据是一项用于将推理输入、推理结果和其他推理数据上传到 S3 存储桶或本地目录以供将来分析的 SageMaker 功能。有关在 SageMaker Edge Manager 中使用捕获数据的更多信息,请参阅 Amazon SageMaker 开发者指南中的管理模型

CaptureDataBatchSize

(可选)代理处理的一批捕获数据请求的大小。此值必须小于您在中指定的缓冲区大小CaptureDataBufferSize。我们建议不要超过缓冲区大小的一半。

当缓冲区中的请求数量达到该数量时,或者经过CaptureDataPushPeriodSeconds间隔时(以先发生者为准),代理会处理请求批处理。CaptureDataBatchSize

默认:10

CaptureDataBufferSize

(可选)存储在缓冲区中的最大捕获数据请求数。

默认:30

CaptureDataDestination

(可选)存储捕获数据的目的地。此参数可以具有以下值:

  • Cloud— 将捕获的数据上传到您在中指定的 S3 存储桶。BucketName

  • Disk— 将捕获的数据写入组件的工作目录。

如果您指定Disk,也可以通过将设置CaptureDataPeriodicUpload为来选择定期将捕获的数据上传到您的 S3 存储桶true

默认:Cloud

CaptureDataPeriodicUpload

(可选)指定是否定期上传捕获数据的字符串值。支持的值为 truefalse

true如果设置为,则将此参数设置CaptureDataDestinationDisk,并且还希望代理定期将捕获的数据上传到您的 S3 存储桶。

默认:false

CaptureDataPeriodicUploadPeriodSeconds

(可选) SageMaker 边缘管理器代理将捕获的数据上传到 S3 存储桶的时间间隔(以秒为单位)。如果设置CaptureDataPeriodicUpload为,则使用此参数true

默认:8

CaptureDataPushPeriodSeconds

(可选) SageMaker Edge Manager 代理处理来自缓冲区的一批捕获数据请求的时间间隔(以秒为单位)。

当缓冲区中的请求数量达到该数量时,或者经过CaptureDataPushPeriodSeconds间隔时(以先发生者为准),代理会处理请求批处理。CaptureDataBatchSize

默认:4

CaptureDataBase64EmbedLimit

(可选) SageMaker Edge Manager 代理上传的捕获数据的最大大小(以字节为单位)。

默认:3072

FolderPrefix

(可选)代理将捕获的数据写入的文件夹的名称。如果设置CaptureDataDestinationDisk,则代理将在指定的目录中创建文件夹CaptureDataDiskPath。如果您设置CaptureDataDestinationCloud,或者设置为 CaptureDataPeriodicUploadtrue,则代理将在您的 S3 存储桶中创建文件夹。

默认:sme-capture

CaptureDataDiskPath

此功能在 v1.1.0 及更高版本的 SageMaker Edge Manager 组件中可用。

(可选)代理创建捕获的数据文件夹的文件夹路径。如果设置CaptureDataDestinationDisk,则代理将在此目录中创建捕获的数据文件夹。如果您未指定此值,代理将在组件的工作目录中创建捕获的数据文件夹。使用FolderPrefix参数指定捕获的数据文件夹的名称。

默认:/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager/capture

LocalDataRootPath

此功能在 v1.2.0 及更高版本的 SageMaker Edge Manager 组件中可用。

(可选)此组件在核心设备上存储以下数据的路径:

  • 设置DbEnable为时,运行时数据的本地数据库true

  • SageMaker 新编译的模型,当您设置DeploymentEnable为时,此组件会自动下载这些模型。true

默认:/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager

DbEnable

(可选)您可以启用此组件以将运行时数据存储在本地数据库中,以便在组件出现故障或设备断电时保留数据。

此数据库需要在核心设备的文件系统上有 5 MB 的存储空间。

默认:false

DeploymentEnable

此功能在 v1.2.0 及更高版本的 SageMaker Edge Manager 组件中可用。

(可选)您可以启用此组件以自动检索您上传到 Amazon S3 的 SageMaker Neo 编译模型。将新模型上传到 Amazon S3 后,使用 SageMaker Studio 或将新模型部署 SageMaker API到该核心设备。启用此功能后,无需创建部署即可将新模型 AWS IoT Greengrass 部署到核心设备。

重要

要使用此功能,必须将设置DbEnabletrue。此功能使用本地数据库来跟踪从中检索的 AWS Cloud模型。

默认:false

DeploymentPollInterval

此功能在 v1.2.0 及更高版本的 SageMaker Edge Manager 组件中可用。

(可选)此组件检查要下载的新模型的间隔时间(以分钟为单位)。当您设置为时,此选项适DeploymentEnabletrue

默认:1440(1 天)

DLRBackendOptions

此功能在 v1.2.0 及更高版本的 SageMaker Edge Manager 组件中可用。

(可选)要在此组件使用的DLR运行DLR时中设置的运行时标志。您可以设置以下标志:

  • TVM_TENSORRT_CACHE_DIR— 启用 Tensorrt 模型缓存。指定具有读/写权限的现有文件夹的绝对路径。

  • TVM_TENSORRT_CACHE_DISK_SIZE_MB— 分配 Tensorrt 模型缓存文件夹的上限。当目录大小超过此限制时,使用最少的缓存引擎将被删除。默认值为 512 MB。

例如,您可以将此参数设置为以下值以启用 Tensorrt 模型缓存并将缓存大小限制为 800 MB。

TVM_TENSORRT_CACHE_DIR=/data/secured_folder/trt/cache; TVM_TENSORRT_CACHE_DISK_SIZE_MB=800
SagemakerEdgeLogVerbose

(可选)指定是否启用调试日志记录的字符串值。支持的值为 truefalse

默认:false

UnixSocketName

(可选) SageMaker Edge Manager 套接字文件描述符在核心设备上的位置。

默认:/tmp/aws.greengrass.SageMakerEdgeManager.sock

例 示例:配置合并更新

以下示例配置指定核心设备属于 MyEdgeDeviceFleet 并且代理会将捕获数据写入设备和 S3 存储桶。此配置还启用调试日志记录。

{ "DeviceFleetName": "MyEdgeDeviceFleet", "BucketName": "amzn-s3-demo-bucket", "CaptureDataDestination": "Disk", "CaptureDataPeriodicUpload": "true", "SagemakerEdgeLogVerbose": "true" }

本地日志文件

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
Windows
C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。替换/greengrass/v2C:\greengrass\v2 包含 AWS IoT Greengrass 根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log -Tail 10 -Wait

更改日志

下表描述了该组件的每个版本中的更改。

版本

更改

1.3.6

Greengrass nucleus 2.12.5 版本的版本已更新。

1.3.5

Greengrass nucleus 版本 2.12.0 版本的版本已更新。

1.3.4

Greengrass nucleus 版本 2.11.0 版本的版本已更新。

1.3.3

Greengrass nucleus 版本 2.10.0 版本的版本已更新。

1.3.2

Greengrass nucleus 版本 2.9.0 版本的版本已更新。

1.3.1

Greengrass nucleus 版本 2.8.0 版本的版本已更新。

1.3.0

新功能
  • 增加了对 Tensorrt 缓存磁盘大小管理的支持。

    • 在DLRBackendOptions参数中添加可选TVM_TENSORRT_CACHE_DISK_SIZE_MB标志,以设置磁盘上缓存模型的大小限制。

改进
  • 提供改进的预测并发性。这有助于更好地使用设备加速器引擎,例如GPUs。

1.2.0

新功能
  • 添加对该组件的支持,以自动检索您上传到 Amazon S3 的 SageMaker Neo 编译模型。启用此功能后,无需创建部署即可将新模型 AWS IoT Greengrass 部署到核心设备。

  • 添加了对备份数据库的支持,该组件使用该数据库来保存运行时数据,以防组件出现故障或设备断电。

  • 添加了对您在配置此组件DLR时配置运行时标志的支持。

1.1.1

Greengrass nucleus 版本 2.7.0 版本的版本已更新。

1.1.0

新功能
  • 增加了对运行亚马逊 Linux 2 的 Greengrass 核心设备的支持。

  • 添加新的CaptureDataDiskPath配置参数。您可以使用此参数来指定设备上捕获的数据文件夹的路径。

错误修复和改进
  • Greengrass nucleus 版本 2.5.0 版本的版本已更新。

1.0.3

Greengrass nucleus 版本 2.4.0 版本的版本已更新。

1.0.2

错误修复和改进

更新组件生命周期中的安装脚本。在部署此组件之前,您的核心设备现在必须在设备上安装 Python 3.6 或更高版本(包括pip您的 Python 版本)。

1.0.1

Greengrass nucleus 版本 2.3.0 版本的版本已更新。

1.0.0

初始版本。