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

用于生产中的推理的终结点

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

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

终结点和部署

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

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

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

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

直觉

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

展示终端概念的图示。

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

显示部署概念的图示。

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

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

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

Azure 机器学习支持 标准部署在线终结点批量终结点

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

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

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

标准部署

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

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

在线终结点

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

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

批处理终结点

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

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

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

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

端点

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

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

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

部署

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

功能 标准部署 联机终结点 Batch 终结点
部署类型 模型 模型 模型和管道组件
MLflow 模型部署 否,只有目录中的特定模型 是的 是的
自定义模型部署 否,只有目录中的特定模型 是,使用评分脚本 是,使用评分脚本
推理服务器 2 Azure AI 模型推理 API - Azure 机器学习推理服务器
- 特里顿
- 自定义(使用 BYOC)
批量推理
消耗的计算资源 无(无服务器) 实例或精细资源 群集实例
计算类型 无(无服务器) 托管计算和 Kubernetes 托管计算和 Kubernetes
低优先级计算 不适用 是的
将计算资源调整为零 内置 是的
自动缩放计算3 内置 是,基于资源使用 是,基于作业计数
产能过剩管理 节流 节流 排队机制
成本基础4 每个令牌 按部署:正在运行的计算实例 每个作业:作业中消耗的计算实例(上限为群集的最大实例数)
部署的本地测试 是的

2推理服务器 指一种接收请求、处理请求并创建响应的服务技术。 推理服务器还指示输入和预期输出的格式。

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

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

开发人员接口

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

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

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