Amazon SageMaker 人工智能模型的推理优化 - 亚马逊 SageMaker AI

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

Amazon SageMaker 人工智能模型的推理优化

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

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

优化技术

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

编译

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

当你通过编译来优化模型时,你会从 ahead-of-time编译中受益。您可以减少模型的部署时间和自动缩放延迟,因为当模型部署到新实例时,模型权重不需要 just-in-time编译。

如果你选择为 GPU 实例编译模型, SageMaker AI 会使用 Tensorrt-llm 库来运行编译。如果你选择为 AWS Trainium 或 AWS Inferentia 实例编译模型, SageMaker AI 会使用 AWS Neuron SDK 来运行编译。

量化

量化是一种技术,通过使用不那么精确的权重和激活数据类型来降低模型的硬件要求。使用量化对模型进行优化后,您可以将其托管在成本更低、可用 GPUs性更高的服务器上。不过,量化模型的精确度可能会低于您优化的源模型。

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

  • INT4-AWQ — 一种 4 位数据格式。激活感知权重量量化 (AWQ) 是一种高效、准确、低位 LLMs 且仅限权重的量化技术。

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

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

推测解码

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

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

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

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

快速加载模型

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

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

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

优化模型以加快加载速度后,您可以更快地将其部署到 A SageMaker I 端点。此外,如果您将终端节点配置为使用 auto Scaling,它会更快地扩展以适应流量的增加。