你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于在生产环境下进行推理的终结点

适用于:Azure CLI ml 扩展 v2 (当前)Python SDK azure-ai-ml v2 (当前)

训练机器学习模型或管道或从模型目录中查找合适的模型后,需要将其部署到生产环境,供其他人用于 推理。 推理是将新的输入数据应用于机器学习模型或管道,再生成输出的过程。 虽然这些输出通常称为“预测”,但推理可以为其他机器学习任务(如分类和聚类分析)生成输出。 在 Azure 机器学习中,使用 终结点执行推理。

终结点和部署

终结点是一个稳定且持久的 URL,可用于请求或调用模型。 向终结点提供所需的输入并接收输出。 Azure 机器学习支持标准部署、联机终结点和批处理终结点。 终结点提供:

  • 稳定且持久的 URL(如 endpoint-name.region.inference.ml.azure.com
  • 身份验证机制
  • 授权机制

部署是托管执行实际推理的模型或组件所需的一组资源和计算。 终结点包含部署。 对于联机终结点和批处理终结点,一个终结点可以包含多个部署。 部署可以托管独立的资产,并根据资产的需求使用不同的资源。 终结点还有一种路由机制,可将请求定向到其任何部署。

Azure 机器学习中的某些类型的终结点在其部署上使用专用资源。 若要运行这些终结点,你必须在 Azure 订阅上具有计算配额。 但是,某些模型支持无服务器部署,这样它们就可以从订阅中不使用配额。 对于无服务器部署,会根据使用情况计费。

Intuition

假设你正在处理一个应用程序,该应用程序预测照片中汽车的类型和颜色。 对于此应用程序,具有特定凭据的用户向 URL 发出 HTTP 请求,并在请求中提供了一张汽车图片。 作为回报,用户会收到一个响应,其中包含汽车的类型和颜色作为字符串值。 在此方案中,URL 充当 终结点

显示终结点概念的示意图。

现在假设数据科学家 Alice 正在实现该应用程序。 Alice 具有广泛的 TensorFlow 体验,并决定使用来自 TensorFlow 中心的 ResNet 体系结构的 Keras 顺序分类器实现模型。 测试模型后,Alice 对其结果感到满意,并决定使用模型来解决汽车预测问题。 该模型很大,需要 8 GB 内存和 4 个核心才能运行。 在此方案中,Alice 的模型和资源(如代码和计算)需要在 终结点下运行模型。

显示部署概念的示意图。

几个月后,组织发现应用程序在照明条件不佳的图像上表现不佳。 另一位数据科学家 Bob 在数据扩充技术方面具有专业知识,可帮助模型为这一因素构建稳健性。 但是,Bob 更喜欢使用 PyTorch 实现模型,并使用 PyTorch 训练新模型。 Bob 希望逐步在生产中测试此模型,直到组织准备好停用旧模型。 新模型在部署到 GPU 时性能也更好,因此部署需要包含 GPU。 在此方案中,Bob 的模型和资源(如代码和计算)在 相同的终结点下构成另一个部署

显示一个终结点和多个部署的概念的示意图。

终结点:标准部署、联机和批处理

Azure 机器学习支持 标准部署联机终结点批处理终结点

标准部署联机终结点 旨在进行实时推理。 调用终结点时,将在终结点的响应中返回结果。 标准部署不使用订阅中的配额;而是使用标准计费来计费。

批处理终结点 专为长时间运行的批处理推理而设计。 调用批处理终结点时,会生成执行实际工作的批处理作业。

何时使用标准部署、联机终结点和批处理终结点

标准部署

使用 标准部署 来使用大型基础模型来实时推断现成模型或微调此类模型。 并非所有模型都可以用于标准部署。 建议在以下情况下使用此部署模式:

  • 模型是基础模型或基础模型的微调版本,可用于标准部署。
  • 可以通过无配额部署受益。
  • 无需自定义用于运行模型的推理堆栈。

联机终结点

使用 联机终结点 作模型,以便在同步低延迟请求中实时推理。 建议在下列情况下使用它们:

  • 您的模型是基础模型或经过微调的基础模型版本,但在标准部署中不被支持。
  • 你没有低延迟要求。
  • 你的模型可以在相对较短的时间内响应请求。
  • 模型的输入适合请求的 HTTP 有效负载。
  • 你需要根据请求数量进行纵向扩展。

Batch 终结点

使用 批处理终结点 作模型或管道,以便进行长时间运行的异步推理。 建议在下列情况下使用它们:

  • 你具有需要较长时间才能运行的高开销模型或管道。
  • 你希望操作机器学习管道并重用组件。
  • 需要对分布在多个文件中的大量数据执行推理。
  • 没有低延迟要求。
  • 你的模型的输入存储在存储帐户或 Azure 机器学习数据资产中。
  • 可以利用并行化。

标准部署、联机终结点和批处理终结点的比较

所有标准部署、联机终结点和批处理终结点都基于终结点的想法,因此,可以轻松地从一个终结点过渡到另一个终结点。 联机终结点和批处理终结点还能够管理同一终结点的多个部署。

Endpoints

下表汇总了终结点级别标准部署、联机终结点和批处理终结点可用的不同功能。

Feature 标准部署 联机终结点 Batch 终结点
稳定的调用 URL Yes Yes Yes
支持多部署 No Yes Yes
部署的路由 None 流量拆分 切换到默认值
镜像流量以安全推出 No Yes No
Swagger 支持 Yes Yes No
Authentication Key 密钥和 Microsoft Entra ID(预览版) Microsoft Entra ID
专用网络支持(旧版) No Yes Yes
托管网络隔离 Yes Yes (请参阅所需的其他配置)
客户管理的密钥 NA Yes Yes
成本基础 每个终结点,每分钟1 None None

1按分钟的标准部署收费一小部分。 请参阅 部署 部分,了解与消耗相关的费用,这些费用按令牌计费。

Deployments

下表汇总了部署级别的标准部署、联机终结点和批处理终结点可用的不同功能。 这些概念适用于终结点下的每个部署(对于联机终结点和批处理终结点),并适用于标准部署(其中部署概念内置到终结点中)。

Feature 标准部署 联机终结点 Batch 终结点
部署类型 Models Models 模型和管道组件
MLflow 模型部署 否,只有目录中的特定模型 Yes Yes
自定义模型部署 否,只有目录中的特定模型 是,使用评分脚本 是,使用评分脚本
推理服务器 3 Azure AI 模型推理 API - Azure 机器学习推理服务器
-氚核
- 自定义(使用 BYOC)
Batch 推理
消耗的计算资源 无(无服务器) 实例或精细资源 群集实例
计算类型 无(无服务器) 托管计算和 Kubernetes 托管计算和 Kubernetes
低优先级计算 NA No Yes
将计算缩放为零 Built-in No Yes
自动缩放计算4 Built-in 是,基于资源使用情况 是,基于作业计数
产能过剩管理 Throttling Throttling Queuing
成本基础5 每个令牌 按部署:正在运行的计算实例 每个作业:作业中消耗的计算实例(上限为群集的最大实例数)
部署的本地测试 No Yes No

2推理服务器 是指采用请求、处理请求和创建响应的服务技术。 推理服务器还规定输入和预期输出的格式。

3自动缩放 是能够根据部署的负载动态纵向扩展或缩减部署的已分配资源。 联机部署和批处理部署使用不同的自动缩放策略。 联机部署根据资源利用率(如 CPU、内存、请求等...)进行纵向扩展和缩减,而批处理终结点根据创建的作业数进行纵向扩展或缩减。

4 由消耗的资源收取联机部署和批量部署费用。 在联机部署中,资源是在部署时预配的。 在批处理部署中,资源不会在部署时使用,而是在作业运行时使用。 因此,批部署本身没有相关的成本。 同样,已排队的作业也不会消耗资源。

开发人员接口

终结点旨在帮助组织在 Azure 机器学习中操作生产级工作负载。 终结点是可靠且可缩放的资源,提供实现 MLOps 工作流的最佳能力。

可以使用多个开发人员工具来创建和管理批处理终结点与联机终结点:

  • Azure CLI 和 Python SDK
  • Azure 资源管理器/REST API
  • Azure 机器学习工作室 Web 门户
  • Azure 门户(IT/管理员)
  • 使用 Azure CLI 接口和 REST/ARM 接口支持 CI/CD MLOps 管道