Amazon SageMaker Neo

随处运行 ML 模型,性能提升高达 25 倍

Amazon SageMaker Neo 使开发人员能够优化机器学习 (ML) 模型,以便在云中的 SageMaker 和 边缘的支持设备上进行推理。

ML 推理是使用经训练的机器学习模型进行预测的过程。在对模型进行高精度训练之后,开发人员通常会花费大量时间和精力来调整模型以实现高性能。在云中推理时,开发人员经常以较高成本转向内存高和处理能力强的大型实例,以实现更好的吞吐量。为了在计算和内存有限的边缘设备上进行推理,开发人员通常花费数月时间手动调优模型,以在设备硬件限制内实现可接受的性能。

Amazon SageMaker Neo 会自动优化机器学习模型,以便在云实例和边缘设备上进行推理,从而以更快的速度运行而不会损失准确性。首先,选择一个已使用 DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX 或 XGBoost 构建并在 Amazon SageMaker 中或其他任何地方训练过的机器学习模型。 然后,选择目标硬件平台,该平台可以是 SageMaker 托管实例,也可以是基于 Ambarella、Apple、ARM、Intel、MediaTek、Nvidia、NXP、Qualcomm、RockChip 或 Texas Instruments 处理器的边缘设备。只需单击一下,SageMaker Neo 即可优化训练后的模型并将其编译为可执行文件。编译器使用机器学习模型来应用性能优化,从而为您的模型在云实例或边缘设备上提取最佳可用性能。然后,您可以将模型部署为 SageMaker 终端节点或部署在支持的边缘设备上,并开始进行预测。

在云中推理时,SageMaker Neo 通过在SageMaker 托管中创建推理优化容器来加快推理速度并节省成本。在边缘推理时,SageMaker Neo 通过自动调优所选操作系统和处理器硬件的模型,为开发人员节省数月的手动调优时间。

Amazon SageMaker Neo 使用 Apache TVM 和合作伙伴提供的编译器和加速库为给定模型和硬件目标提供最佳可用性能。根据 Apache 软件许可,AWS 将编译器代码贡献给 Apache TVM 项目,将运行时代码贡献给 Neo-AI 开源项目,以使处理器供应商和设备制造商在通用的紧凑运行时上快速创新。

工作原理

Amazon SageMaker Neo 工作原理

优势

提升性能高达 25 倍

Amazon SageMaker Neo 可自动优化机器学习模型,可提高处理速度高达 25 倍,同时不会影响准确性。SageMaker Neo 使用最适合您的模型和目标硬件平台的工具链,同时提供用于模型编译的简单标准 API。



不到 1/10 的运行时轨迹

Amazon SageMaker Neo 运行时仅消耗相当于TensorFlow 或 PyTorch 等深度学习框架 1/10 的轨迹。无需将框架安装在目标硬件上,而是将紧凑型 Neo 运行时库加载到 ML 应用程序中。与 TensorFlow-Lite 之类的紧凑框架不同,Neo 运行时可以运行在 Neo 编译器所支持的任何框架中训练的模型。

更快的生产时间

只需在 Amazon SageMaker 控制台中单击几下,Amazon SageMaker Neo 即可轻松准备模型,在几乎任何硬件平台上部署。您可以毫不费力地获得手动调优的所有优势。

主要功能

优化推理而不会影响准确性
Amazon SageMaker Neo 在机器学习编译器中使用研究主导的技术,针对目标硬件优化模型。SageMaker Neo 自动应用这些系统的优化技术,可在不降低准确性的情况下加快模型的速度。

支持常用的机器学习框架
Amazon SageMaker Neo 将模型从 DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX 或 XGBoost 等特定于框架的格式转换为通用表示形式,优化计算并为目标 SageMaker 托管实例或边缘设备生成硬件特定的可执行文件。

通过标准 API 提供紧凑的运行时
Amazon SageMaker Neo 运行时占用 1MB 的存储空间和 2MB 的内存,比框架的存储和内存占用空间小许多倍,同时提供一个简单的通用 API 来运行源自任何框架的已编译模型。

支持常用的目标平台
Android、Linux 和 Windows 操作系统以及 Ambarella、ARM、Intel、Nvidia、NXP、Qualcomm 和 Texas Instruments 的处理器上均支持 Amazon SageMaker Neo 运行时。SageMaker Neo 还可以将 PyTorch 和 TensorFlow 模型转换为 Core ML 格式,以便在 Apple 设备上的 macOS、iOS、iPadOS、watchOS 和 tvOS 上进行部署。

针对 Amazon SageMaker 托管实例的推理优化容器
在云中推理时,Amazon SageMaker Neo 提供推理优化容器,其中包括与 Neo 运行时集成的MXNet、PyTorch 和 TensorFlow。之前,SageMaker Neo 可能无法编译使用不受支持运算符的模型。现在,SageMaker Neo 优化了每个模型,也就是说,编译器支持模型中的运算符,并使用该框架运行未编译模型的其余部分。因此,您可以在推理优化容器中运行任何MXNet、PyTorch 或 TensorFlow 模型,同时获得可编译模型的更好性能。

异构硬件的模型分区
Amazon SageMaker Neo 利用合作伙伴提供的加速器库为具有硬件加速器和 CPU 的异构硬件平台上的深度学习模型提供最佳可用性能。Ambarella CV Tools、Nvidia Tensor RT 和 Texas Instruments TIDL 等加速库均支持一组特定的功能和运算符。SageMaker Neo 会自动对模型进行分区,以便具有加速器支持的运算符的零件可以在加速器上运行,而其余模型则在 CPU 上运行。通过这种方式,SageMaker Neo 充分利用了硬件加速器,增加了可在硬件上运行的模型类型,同时提高了模型的性能,也就是说,加速器支持其运算符。

支持 Amazon SageMaker INF1 实例
Amazon SageMaker Neo 现在可以为 Amazon SageMaker INF1 实例目标编译模型。SageMaker 托管为基于 INF1 实例(基于 AWS Inferentia 芯片)的推理提供托管服务。SageMaker Neo 使用幕后原理的 Inferentia 处理器专用 Neuron 编译器,同时提供标准模型编译API,从而简化了准备在 SageMaker INF1 实例上部署模型的任务,同时提供 INF1 实例的最佳可用性能和成本节约优势。

博客

Amazon SageMaker Neo