Amazon SageMaker AI 模型推理优化 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon SageMaker AI 模型推理优化

借助 Amazon SageMaker AI,您可以通过应用推理优化技术来提高生成式人工智能模型的性能。通过优化模型,您可以获得更高的使用成本效益。当您优化一个模型时,您可以选择应用哪种支持的优化技术,包括量化、推测解码和编译。优化模型后,您可以运行评估,查看延迟、吞吐量和价格等性能指标。

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

优化技术

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

编译

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

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

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

量化

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

SageMaker AI 支持量化的数据格式因模型而异。支持的格式包括如下格式:

  • INT4-AWQ:4 位数据格式。激活感知权重量化(AWQ)是一种用于 LLM 的量化技术,具有高效、精确、低位和只加权的特点。

  • FP8:8 位浮点数(FP8)是一种用于浮点数的低精度格式。它通过用比标准 FP16 浮点格式更少的位数表示值来平衡内存效率和模型精度。

  • INT8-SmoothQuant:8 位数据格式。SmoothQuant 是一种混合精度量化方法,它通过平衡激活值和权重的动态范围来共同缩放激活值和权重。

推测解码

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

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

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

SageMaker AI 提供了一个预制草稿模型,您可以使用它,这样就不必建立自己的草稿模型了。如果您希望使用自己的自定义草稿模型,SageMaker AI 也支持该选项。

快速模型加载

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

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

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

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