SageMaker Edge Manager - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

SageMaker Edge Manager

重要

SageMaker Edge Manager 已于 2024 年 4 月 26 日停用。有关继续将模型部署到边缘设备的更多信息,请参阅 SageMaker Edge Manager 终止使用

Amazon SageMaker Edge Manager 组件 (aws.greengrass.SageMakerEdgeManager) 会安装 SSageMaker Edge Manager 代理二进制文件。

SageMaker Edge Manager 为边缘设备提供模型管理,便于您在边缘设备实例集上优化、保护、监控和维护机器学习模型。SageMaker Edge Manager 组件在核心设备上安装和管理 SageMaker Edge Manager 代理的生命周期。您也可以使用 SageMaker Edge Manager 在 Greengrass 核心设备上打包和使用 SageMaker Neo 编译的模型作为模型组件。有关在核心设备上使用 SageMaker Edge Manager 代理的更多信息,请参阅在 Greengrass 核心设备上使用 Amazon SageMaker Edge Manager

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

注意

仅以下 Amazon Web Services 区域 区域提供 SageMaker Edge Manager 组件:

  • 美国东部(俄亥俄)

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

  • 美国西部(俄勒冈州)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • Asia Pacific (Tokyo)

版本

此组件具有以下版本:

  • 1.3.x

  • 1.2.x

  • 1.1.x

  • 1.0.x

类型

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

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

操作系统

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

  • Linux

  • Windows

要求

此组件具有以下要求:

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

  • 核心设备上已安装 Python 3.6 或更高版本,包括适用于您的 Python 版本的 pip

  • 已为 Greengrass 设备角色配置以下项:

    • 允许 credentials.iot.amazonaws.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" } ] }
    • AmazonSageMakerEdgeDeviceFleetPolicy IAM 托管策略。

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

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

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

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

端点和端口

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

Endpoint 端口 必需 描述

edge.sagemaker.region.amazonaws.com

443

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

*.s3.amazonaws.com

443

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

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

依赖项

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

1.3.5 and 1.3.6

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.13.0 软性
令牌交换服务 >=0.0.0 硬性
1.3.4

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.12.0 软性
令牌交换服务 >=0.0.0 硬性
1.3.3

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.11.0 软性
令牌交换服务 >=0.0.0 硬性
1.3.2

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.10.0 软性
令牌交换服务 >=0.0.0 硬性
1.3.1

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.9.0 软性
令牌交换服务 >=0.0.0 硬性
1.1.1 - 1.3.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.8.0 软性
令牌交换服务 >=0.0.0 硬性
1.1.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.6.0 软性
令牌交换服务 >=0.0.0 硬性
1.0.3

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.5.0 软性
令牌交换服务 >=0.0.0 硬性
1.0.1 and 1.0.2

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.4.0 软性
令牌交换服务 >=0.0.0 硬性
1.0.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.3.0 软性
令牌交换服务 >=0.0.0 硬性

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

配置

此组件提供您可以在部署组件时自定义的以下配置参数。

注意

本节介绍了您在组件中设置的配置参数。有关相应 SageMaker Edge Manager 配置的更多信息,请参《Amazon SageMaker 开发人员指南》中的 Edge Manager 代理

DeviceFleetName

包含 Greengrass 核心设备的 SageMaker Edge Manager 设备实例集的名称。

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

BucketName

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

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

注意

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

CaptureDataBatchSize

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

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

默认:10

CaptureDataBufferSize

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

默认:30

CaptureDataDestination

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

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

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

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

默认:Cloud

CaptureDataPeriodicUpload

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

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

默认:false

CaptureDataPeriodicUploadPeriodSeconds

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

默认:8

CaptureDataPushPeriodSeconds

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

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

默认:4

CaptureDataBase64EmbedLimit

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

默认:3072

FolderPrefix

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

默认:sme-capture

CaptureDataDiskPath

此功能适用于 SageMaker Edge Manager 组件的 v1.1.0 及更高版本。

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

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

LocalDataRootPath

此功能适用于 SageMaker Edge Manager 组件的 v1.2.0 及更高版本。

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

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

  • DeploymentEnable 设置为 true 时,此组件会自动下载的 SageMaker Neo 编译的模型。

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

DbEnable

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

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

默认:false

DeploymentEnable

此功能适用于 SageMaker Edge Manager 组件的 v1.2.0 及更高版本。

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

重要

要使用此功能,必须将 DbEnable 设置为 true。此功能使用本地数据库来跟踪从 Amazon Web Services 云 中检索的模型。

默认:false

DeploymentPollInterval

此功能适用于 SageMaker Edge Manager 组件的 v1.2.0 及更高版本。

(可选)此组件检查要下载的新模型之间的间隔时间(以分钟为单位)。此选项适用于将 DeploymentEnable 设置为 true 时。

默认值:1440(1 天)。

DLRBackendOptions

此功能适用于 SageMaker Edge Manager 组件的 v1.2.0 及更高版本。

(可选)在此组件使用的 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 替换为 Amazon 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 标志,以设置磁盘上缓存模型的大小限制。

改进
  • 改进了预测并发。这有助于更好地使用设备加速器引擎,例如 GPU。

1.2.0

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

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

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

1.1.1

版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。

1.1.0

新功能
  • 添加了对运行 Amazon Linux 2 的 Greengrass 核心设备的支持。

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

错误修复和改进
  • 版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。

1.0.3

版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。

1.0.2

错误修复和改进

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

1.0.1

版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。

1.0.0

初始版本。