借助 Amazon Elastic Inference,您可向任何 Amazon EC2 实例、Amazon SageMaker 实例或 ECS 任务连接所需量及的 GPU 驱动推理加速。也就是说,您现在可以选择最适合应用整体计算、内存和存储需求的 CPU 实例,然后单独配置所需量级的 GPU 驱动推理加速。
集成 Amazon SageMaker、Amazon EC2 和 Amazon ECS
可通过多种方式在 AWS 中运行推理工作负载:将您的模型部署在 Amazon SageMaker 中以获得完全托管体验,或者在 Amazon EC2 实例或 Amazon ECS 任务中运行并自行管理。Amazon Elastic Inference 可与 Amazon SageMaker、Amazon EC2 和 Amazon ECS 集成并无缝协作,您可在所有场景下增加推理加速功能。在 Amazon SageMaker 中创建模型的 HTTPS 终端节点、启动您的 Amazon EC2 实例及定义您的 Amazon ECS 任务时,您可以指定所需量级的推理加速。
TensorFlow、Apache MXNet 和 PyTorch 支持
Amazon Elastic Inference 旨在与 AWS 的 TensorFlow Serving 和 Apache MXNet 和 PyTorch 增强版本配合使用。这些增强功能使框架能够自动检测推理加速器的状态,在加速器 GPU 与实例 CPU 之间优化模型运行分布,并使用 AWS Identity and Access Management (IAM) 策略安全控制对加速器的访问。增强 TensorFlow Serving、MXNet 和 PyTorch 库在 Amazon SageMaker、AWS Deep Learning AMI 和 AWS Deep Learning Containers 中自动提供,您无需更改任何代码即可在生产环境中部署模型。您还可以按照此处的说明单独下载这些库。
开放神经网络交换 (ONNX) 格式支持
ONNX 是一种开放格式,可在深度学习框架中训练模型,然后将其传输到另一个框架进行推理。这样您便可以充分利用不同框架的相对优势。ONNX 集成了 PyTorch、MXNet、Chainer、Caffe2 和 Microsoft Cognitive Toolkit,还有适用于 TensorFlow 等许多其他框架的连接器。要配合使用 ONNX 模型和 Amazon Elastic Inference,您的训练模型需要传输到 AWS 优化版本的 Apache MXNet 以进行生产部署。
单一或混合精度运算选择
Amazon Elastic Inference 加速器同时支持单精度(32 位浮点)运算和混合精度(16 位浮点)运算。单精度可提供极大的数值范围来表示您的模型所使用的参数。但是,大多数模型实际上并不需要这么高的精度,计算数值时经常会造成不必要的性能损失。为避免这个问题,混合精度运算可将数值范围减少一半,并获得 8 倍的推理性能。
提供多种加速量级
Amazon Elastic Inference 提供多种吞吐量级别,每个加速器每秒浮点运算次数 (TFLOPS) 在 1 到 32 万亿之间,从而可以有效地加速广泛的推理模型,包括计算机视觉、自然语言处理和语音识别。与最低速度为 125 TFLOPS 的独立 Amazon EC2 P3 实例(目前最小的 P3 实例)相比,Amazon Elastic Inference 每个加速器的最低速度为 1 TFLOPS。因此您能够以适当的比例扩展推理加速。您还可以为复杂模型选择更大型的加速器,每个加速器的最大速度可达 32 TFLOPS。
Auto-Scaling
Amazon Elastic Inference 可以成为用于扩展 Amazon SageMaker、Amazon EC2 和 Amazon ECS 实例的 Amazon EC2 Auto Scaling 组的一部分。当 EC2 Auto Scaling 添加更多 EC2 实例来满足您的应用需求时,也会扩展每个实例所连接的加速器。同样,当 Auto Scaling 由于需求降低而减少 EC2 实例时,也会降级每个实例所连接的加速器。这就使您可以同时扩展推理加速和应用计算容量,从而满足应用需求。