使用 Neo 编译并部署模型 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用 Neo 编译并部署模型

Neo 是 Amazon SageMaker 的一项功能,使机器学习模型训练一次即可在云和边缘站点中的任何位置运行。

如果您是首次接触 SageMaker Neo 的用户,我们建议您查看 Edge Devices https://docs.amazonaws.cn/sagemaker/latest/dg/neo-getting-started-edge.html 入门部分,以获取有关如何编译和部署到 边缘设备的分步说明。

什么是 SageMaker Neo?

通常,优化机器学习模型以在多个平台上进行推理是困难的,因为您需要针对每个平台的特定硬件和软件配置手动调整模型。如果要为给定工作负载获得最佳性能,您需要知道硬件架构、指令集、内存访问模式和输入数据形状以及其他因素。对于传统软件开发,编译器和分析器简化了流程。对于机器学习,大多数工具特定于框架或硬件。这需要您手动完成不可靠的非生产性试错流程。

Neo 会自动优化 MXNetGluon、Keras、、PyTorch、TensorFlow、、、TensorFlow-Lite 和 ONNX 模型,以在 Android、Linux 和 Windows 计算机上基于来自 Ambarilla、ARM、Intel、Nvidia、NXP、Qualcomm、Texas Instruments 和 Xilinx 的处理器进行推理。Neo 已通过跨框架的模型 Zoo 中可用的计算机视觉模型进行测试。 SageMakerNeo 支持两个主要平台的编译和部署:云实例(包括 Inferentia)和边缘设备。

有关支持的框架和您可部署到的云实例类型的更多信息,请参阅适用于云实例支持的实例类型和框架的 。

有关 SageMaker Neo 测试的 边缘设备的受支持框架、边缘设备、操作系统、芯片架构和常见机器学习模型的更多信息,请参阅 支持的框架、设备、系统和架构 边缘设备。

工作方式

Neo 包含一个编译器和一个运行时。首先,Neo 编译 API 读取从不同框架导出的模型。它将框架特定的功能和操作转换为与框架无关的中间表示形式。接着,它会执行一系列优化。然后,它为优化操作生成二进制代码,将代码写入共享对象库,然后将模型定义和参数保存到单独的文件中。Neo 还为加载和执行所编译模型的各个平台提供运行时。

您可以从 SageMaker 控制台、 AWS Command Line Interface (AWS CLI)、Python 笔记本或 SageMaker 开发工具包创建 Neo 编译作业。有关如何编译模型的信息,请参阅使用 Neo 编译模型。使用几个 CLI 命令、一次 API 调用或者几次单击,您可以为所选平台转换模型。您可以将模型快速部署到 SageMaker 终端节点或 AWS IoT Greengrass 设备上。

Neo 可以使用 FP32 或量化为 INT8 或 FP16 位宽度的参数来优化模型。

Neo 示例笔记本

有关使用 SageMaker Neo 训练、编译、优化和部署机器学习模型以进行推理的示例笔记本,请参阅:

有关如何在 SageMaker 中运行这些示例笔记本的说明,请参阅示例笔记本. 如果您需要有关如何创建笔记本实例以运行这些示例的说明,请参阅使用 Amazon SageMaker 笔记本实例。要导航到笔记本实例中的相关示例,请选择 Amazon SageMaker Examples 选项卡以查看所有SageMaker示例的列表。要打开笔记本,请选择其 Use (使用) 选项卡,然后选择 Create copy (创建副本).