

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

# 利用 SageMaker Neo 优化模型性能
<a name="neo"></a>

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

如果您是 SageMaker Neo 的首次用户，我们建议您查看[边缘设备入门](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html)部分，获取有关如何编译和部署到边缘设备的分步说明。

## 什么是 SageMaker Neo？
<a name="neo-what-it-is"></a>

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

Neo 基于 Ambarella、ARM、Intel、Nvidia、NXP、Qualcomm、Texas Instruments 和 Xilinx 自动优化 Gluon、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite 和 ONNX 模型。Neo 已通过跨框架的 Model Zoo 中可用的计算机视觉模型进行了测试。SageMaker Neo 支持两个主要平台的编译和部署：云实例（包括 Inferentia）和边缘设备。

有关支持的框架和您可以部署到的云实例类型的更多信息，请参阅 [支持的实例类型和框架](neo-supported-cloud.md)以了解云实例。

有关 SageMaker AI Neo 为边缘设备测试过并支持的框架、边缘设备、操作系统、芯片架构和常用机器学习模型的更多信息，请参阅 [支持的框架、设备、系统和架构](neo-supported-devices-edge.md)以了解边缘设备。

## 工作方式
<a name="neo-how-it-works"></a>

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

![\[Neo 如何在 SageMaker AI 中运行。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/neo/neo_how_it_works.png)


您可以通过 SageMaker AI 控制台、Python 笔记本或 SageMaker AI SDK 创建 Neo 编译作业 AWS Command Line Interface (AWS CLI)。有关如何编译模型的信息，请参阅 [使用 Neo 进行模型编译](neo-job-compilation.md)。使用几个 CLI 命令、一次 API 调用或者几次单击，您可以为所选平台转换模型。您可以将模型快速部署到 SageMaker AI 端点或 AWS IoT Greengrass 设备上。

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

**Topics**
+ [什么是 SageMaker Neo？](#neo-what-it-is)
+ [工作方式](#neo-how-it-works)
+ [使用 Neo 进行模型编译](neo-job-compilation.md)
+ [云实例](neo-cloud-instances.md)
+ [边缘设备](neo-edge-devices.md)
+ [错误排查](neo-troubleshooting.md)