

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

# 多模型端点部署的实例建议
<a name="multi-model-endpoint-instance"></a>

为多模型终端节点选择 A SageMaker I ML 实例类型时，需要考虑以下几点：
+ 为需要服务的所有模型预置充足的 [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) 容量。
+ 平衡性能（最大限度地减少冷启动）和成本（不要过度预配置实例容量）。有关 SageMaker AI 为终端节点和多模型终端节点的每种实例类型附加的存储卷大小的信息，请参阅[实例存储卷](host-instance-storage.md)。
+ 对于配置为以 `MultiModel` 模式运行的容器，为其实例预置的存储卷比默认 `SingleModel` 模式时更大。这样，与 `SingleModel` 模式相比，可以在实例存储卷上缓存更多模型。

选择 A SageMaker I ML 实例类型时，请考虑以下因素：
+ 目前，所有 CPU 实例类型和单 GPU 实例类型都支持多模型端点。
+ 要为在多模型端点后托管的模型进行流量分配（访问模式）并确定模型数量（实例上可加载到内存中的模型数），请记住以下信息。
  + 将实例上的内存量视为要加载模型的缓存空间，将 v 的数量CPUs 视为对加载的模型进行推断的并发限制（假设调用模型与 CPU 绑定）。
  + 对于 CPU 支持的实例，v 的数量会CPUs 影响每个实例的最大并发调用次数（假设调用模型与 CPU 绑定）。使用较大的 v CPUs 可以同时调用更多独特的模型。
  + 对于 GPU 支持的实例，更大的实例和 GPU 内存使您可以加载更多模型，并准备好响应推理请求。
  + 对于 CPU 和 GPU 支持的实例，都请提供一定的“松弛”内存以便卸载未使用的模型，特别是具有多个实例的多模型端点。如果实例或可用区发生故障，这些实例上的模型将被重新路由到端点后的其他实例。
+ 确定你对 loading/downloading 时间的容忍度：
  + d 实例类型系列（例如 m5d、c5d 或 r5d）和 g5s 均配有 NVMe（非易失性存储器快速）固态硬盘，该固态硬盘可提供高 I/O 性能，并且可以缩短将模型下载到存储卷以及容器从存储卷加载模型所需的时间。
  + 由于 d 和 g5 实例类型附带 NVMe SSD 存储，因此 SageMaker AI 不会将 Amazon EBS 存储卷附加到托管多模型终端节点的这些 ML 计算实例。当模型大小相似且同质（也即，它们具有相似的推理延迟和资源要求）时，自动扩缩的效果最佳。

您还可以使用以下指南来帮助优化多模型端点上的模型加载：

**选择无法在内存中容纳所有目标模型的实例类型**

在某些情况下，您可以选择一种无法同时在内存中容纳所有目标模型的实例类型，从而降低成本。 SageMaker AI 会在内存耗尽时动态卸载模型，以便为新目标模型腾出空间。对于请求频率不高的模型，您可以牺牲动态加载延迟。在延迟需求更严格的情况下，您可以选择更大的实例类型或更多实例。提前投入时间进行性能测试和分析，可以帮助您成功地进行生产部署。

**评估您的模型缓存命中率**

Amazon CloudWatch 指标可以帮助您评估您的模型。有关可用于多模型端点的指标的更多信息，请参阅[CloudWatch 多模型端点部署指标](multi-model-endpoint-cloudwatch-metrics.md)。

 您可以使用 `ModelCacheHit` 指标的 `Average` 统计数据来监控已加载模型的请求比率。您可以使用 `ModelUnloadingTime` 指标的 `SampleCount` 统计数据来监控在一段时间内发送到容器的卸载请求数。如果模型卸载频率过高（*颠簸*指示器，由于工作模型集的缓存空间不足，因此将卸载并重新加载模型），请考虑使用具有更多内存的更大实例类型，或者增加多模型端点后的实例数。对于具有多个实例的多模型端点，请注意可以在多个实例上加载一个模型。