

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

# Amazon SageMaker 人工智能模型的推理优化
<a name="model-optimize"></a>

Amazon SageMaker AI 提供了两种方法来优化您的生成式 AI 模型推理：
+ **推理建议。** SageMaker AI 会自动分析您的模型和工作负载，评估实例类型，应用优化，并返回带有真实性能指标的经过验证的部署就绪配置。对于大多数客户来说，这是推荐的方法。要开始使用，请参阅[经过优化的生成式 AI 推理建议](generative-ai-inference-recommendations.md)。
+ **手动优化。**对于想要自己动手的客户，你可以应用量化、推测性解码和编译等个性化优化技术。您可以选择要应用的技术，运行优化作业，然后自己评估结果。优化模型后，您可以运行评估，查看延迟、吞吐量和价格等性能指标。

对于许多模型， SageMaker AI 还提供了多个预先优化的版本，每个版本都可满足不同的应用程序对延迟和吞吐量的需求。对于此类模型，您可以部署其中一个优化版本，而无需先自行优化模型。

## 优化技术
<a name="optimization-techniques"></a>

Amazon SageMaker AI 支持以下优化技术。

### 编译
<a name="compilation"></a>

*编译*优化模型，使其在所选硬件类型上达到最佳性能，同时不降低精度。您可以应用模型编译来优化加速硬件（例如 GPU 实例、 Amazon Trainium 实例或 Amazon Inferentia 实例）的 LLM。

使用编译功能优化模型时，可以从超前编译中获益。当模型部署到新实例时，模型权重不需要即时编译，因此可以减少模型的部署时间和自动扩缩延迟。

如果您选择为 GPU 实例编译模型， SageMaker AI 会使用该 TensorRT-LLM库来运行编译。如果你选择为 Amazon Trainium 或 Amazon Inferentia 实例编译模型， SageMaker AI 会使用 Amazon Neuron SDK 来运行编译。

### 量化
<a name="quantization"></a>

*量化*是一种技术，通过使用不那么精确的权重和激活数据类型来降低模型的硬件要求。使用量化技术优化模型后，就可以将其托管到更便宜、可用性更高的 GPU 上。不过，量化模型的精确度可能会低于您优化的源模型。

 SageMaker AI 支持量化的数据格式因模型而异。支持的格式包括如下格式：
+ INT4-AWQ — 4 位数据格式。 Activation-aware 权重量化 (AWQ) 是一种针对 LLM 的量化技术，它高效、准确、低位且仅限权重。
+ FP8：8 位浮点数（FP8）是一种用于浮点数的低精度格式。它通过用比标准 FP16 浮点格式更少的位数表示值来平衡内存效率和模型精度。
+ INT8-SmoothQuant — 8 位数据格式。 SmoothQuant 是一种混合精度量化方法，它通过平衡激活量和权重的动态范围来共同缩放激活量和权重。

### 推测解码
<a name="speculative-decoding"></a>

*推测解码*是一种加快大型 LLM 解码过程的技术。它在不影响生成文本质量的前提下优化了延迟模型。

该技术使用了一个更小但更快的模型，称为*草图*模型。草图模型生成候选令牌，然后由更大但更慢的*目标*模型进行验证。每次迭代，草图模型都会生成多个候选令牌。目标模型会验证令牌，如果发现某个令牌不可接受，就会拒绝该令牌并重新生成。因此，目标模型既要验证令牌，又要生成少量令牌。

草图模型的速度明显快于目标模型。它能快速生成所有令牌，然后成批发送给目标模型进行验证。目标模型会并行评估它们，从而加快最终响应速度。

SageMaker AI 提供了一个预先构建的草稿模型供您使用，因此您不必自己构建。如果您更喜欢使用自己的自定义草稿模型， SageMaker AI 也支持此选项。

### 快速模型加载
<a name="fast-model-loading"></a>

*快速加载模型*技术可以准备 LLM，这样 SageMaker AI 就可以更快地将其加载到 ML 实例上。

为了准备模型， SageMaker AI 会提前对其进行分片，方法是将其分成多个部分，每个部分可以驻留在单独的 GPU 上进行分布式推理。此外， SageMaker AI 将模型权重存储在大小相等的区块中， SageMaker AI 可以同时加载到实例上。

当 SageMaker AI 将优化的模型加载到实例上时，它会将模型权重直接从 Amazon S3 流式传输到实例的 GPU。通过流式传输权重， SageMaker AI 省略了通常需要的几个耗时的步骤。这些步骤包括将模型构件从 Amazon S3 下载到磁盘，将模型构件加载到主机内存，以及在主机上对模型进行分片，然后最终将分片加载到 GPU。

优化模型以加快加载速度后，您可以更快地将其部署到 A SageMaker I 端点。此外，如果您将端点配置为使用自动扩缩，它就会更快地进行横向扩展以适应流量的增加。