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

部署实时推理流

重要

本文介绍的某些功能可能仅在预览版中提供。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

生成提示流并正确对其进行测试后,可以将其部署为联机终结点。 部署托管在终结点内,可以接收来自客户端的数据并实时将响应发送回去。

可以调用终结点来对聊天、copilot 或其他生成式 AI 应用程序执行实时推理。 提示流支持从流或批量测试运行进行终结点部署。

本文介绍如何将流部署为托管联机终结点以便进行实时推理。 可采取以下步骤:

  • 测试流并准备好进行部署。
  • 创建联机部署。
  • 向终结点授予权限。
  • 测试终结点。
  • 使用终结点。

先决条件

若要将提示流部署为联机终结点,需要:

  • Azure 订阅。 如果没有订阅,请在开始之前创建一个免费帐户。
  • 一个 Azure AI Studio 项目。

创建联机部署

生成流并对其进行正确测试后,接下来可以创建联机终结点以进行实时推理。

按照以下步骤在 Azure AI Studio 中将提示流部署为联机终结点。

  1. 准备好一个可供部署的提示流。 如果你没有提示流,请参阅如何生成提示流

  2. 可选:选择“聊天”以测试流是否正常工作。 建议的最佳做法是在部署前测试流。

  3. 在流编辑器中选择“部署”。

    提示流编辑器中“部署”按钮的屏幕截图。

  4. 在部署向导中的“基本设置”页上提供请求的信息。

    部署向导中基本设置页的屏幕截图。

  5. 选择“查看 + 创建”以查看设置并创建部署。 否则,可以选择“下一步”转到高级设置页。

  6. 选择“创建”以部署提示流。

    审阅设置页的屏幕截图。

  7. 若要查看部署状态,请在左侧导航栏中选择“部署”。 成功创建部署后,可以选择该部署以查看详细信息。

    正在进行的部署状态的屏幕截图。

  8. 选择“使用”选项卡,以查看可用于在应用程序中使用已部署模型的代码示例。

    注意

    在此页上,还可以查看可用于使用终结点的终结点 URL。

    部署详细信息页的屏幕截图。

  9. 你可以直接使用 REST 终结点,也可以从此处所示的某个示例开始。

    部署终结点和代码示例的屏幕截图。

有关详细信息,请参见下方内容。

提示

有关如何部署基础模型的指南,请参阅使用 Azure AI Studio 部署模型

设置和配置

Requirements 文本文件

(可选)可以在 requirements.txt 中指定所需的额外包。 可以在流文件夹的根文件夹中找到 requirements.txt。 在 UI 中将提示流部署到托管联机终结点时,默认情况下,部署将使用基于 flow.dag.yaml 中指定的基础映像和流的 requirements.txt 中指定的依赖项创建的环境。

注意

必须基于提示流基础映像 mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version> 创建 flow.dag.yaml 中指定的基础映像,你可以在此处找到最新版本。 如果未在 flow.dag.yaml 中指定基础映像,则部署将使用默认的基础映像 mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:latest

在流的原始 yaml 文件中指定基本映像的屏幕截图。

流的要求文本文件的屏幕截图。

基本设置

使用此步骤可以配置部署的基本设置。

properties 说明
端点 可以选择是要部署新终结点还是更新现有终结点。
如果选择“新建”,则需要指定终结点名称
部署名称 - 在同一终结点中,部署名称应是唯一的。
- 如果选择了现有终结点并输入了现有部署名称,则该部署将被新配置覆盖。
虚拟机 用于部署的 VM 大小。
实例计数 用于部署的实例数。 请指定所需工作负载上的值。 为实现高可用性,建议将值至少设置为 3。 我们保留额外的 20% 来执行升级。
推理数据收集 如果启用此功能,流输入和输出将自动收集到 Azure 机器学习数据资产中,并可用于以后的监视。

完成基本设置后,可以直接选择“查看 + 创建”以完成创建,或选择“下一步”以配置高级设置。

高级设置 - 终结点

可为终结点指定以下设置。

高级终结点设置的屏幕截图。

在高级设置工作流中,还可以指定部署标记并选择自定义环境。

高级部署设置的屏幕截图。

身份验证类型

终结点的身份验证方法。 基于密钥的身份验证提供不会过期的主密钥和辅助密钥。 Azure 机器学习基于令牌的身份验证提供定期自动刷新的令牌。

标识类型

终结点需要访问 Azure 资源(例如 Azure 容器注册表或 Azure AI Studio 中心连接)进行推理。 可以通过向终结点的托管标识授予权限来允许终结点访问 Azure 资源。

系统分配的标识将在创建终结点后自动创建,而用户分配的标识则由用户创建。 详细了解托管标识。

系统分配

请注意,有一个选项用于指定是否强制访问连接机密(预览版)。 如果流使用连接,则终结点需要访问连接才能执行推理。 默认已启用该选项,如果你拥有连接机密读取者权限,Azure 机器学习工作区连接机密读取者角色将授权终结点自动访问连接。 如果禁用此选项,则你需要自行向系统分配的标识授予此角色,或向管理员寻求帮助。详细了解如何向终结点标识授予权限

用户分配

创建部署时,Azure 会尝试从 Azure AI Studio 中心的 Azure 容器注册表 (ACR) 拉取用户容器映像,并将用户模型和代码项目从 Azure AI 资源存储帐户装载到用户容器中。

如果使用用户分配的标识创建了关联的终结点,则在创建部署之前必须向用户分配的标识授予以下角色;否则,部署创建将会失败。

作用域 角色 为什么需要它
AI Studio 项目 Azure 机器学习工作区连接机密读取者角色具有 Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action 的自定义角色 获取项目连接
AI Studio 项目容器注册表 ACR 拉取 拉取容器映像
AI Studio 项目默认存储 存储 Blob 数据读者 从存储加载模型
AI Studio 项目 工作区指标写入者 部署终结点后,如果要监视与终结点相关的指标(如 CPU/GPU/磁盘/内存利用率),则需要向标识授予此权限。

可选

请参阅向终结点授予权限中有关如何向终结点标识授予权限的详细指导。

重要

如果你的流使用基于 Microsoft Entra ID 的身份验证连接,则无论使用系统分配的标识还是用户分配的标识,都始终需要向托管标识授予相应资源的适当角色,这样才能对该资源进行 API 调用。 例如,如果你的 Azure OpenAI 连接使用基于 Microsoft Entra ID 的身份验证,则你需要向终结点托管标识授予相应 Azure OpenAI 资源的“认知服务 OpenAI 用户”或“认知服务 OpenAI 参与者”角色

高级设置 - 输出和连接

在此步骤中,你可以查看所有流输出,并指定将包含在所部署终结点的响应中的输出。 默认情况下,选择所有流输出。

还可指定终结点在执行推理时使用的连接。 默认情况下,连接是从流继承的。

配置并查看上述所有步骤后,可以选择“查看 + 创建”以完成创建。

高级输出和连接设置的屏幕截图。

注意

终结点创建过程预计需要大约 15 分钟以上,因为此过程包含多个阶段,其中包括创建终结点、注册模型、创建部署等。

可通过提示流程部署启动的通知了解部署创建进度

通过打开 Application Insights 诊断来启用跟踪(预览版)

如果启用此功能,推理期间的跟踪数据和系统指标(如令牌计数、流延迟、流请求等)将收集到工作区链接的 Application Insights 中。 有关详细信息,请参阅提供跟踪数据和指标的提示流

向终结点授予权限

重要

仅向特定 Azure 资源的 所有者 授予权限(添加角色分配)。 可能需要向 IT 管理员寻求帮助。

建议在创建部署之前向用户分配的标识授予角色。 授予的权限可能需要超过 15 分钟才能生效。

可以通过以下步骤使用 Azure 门户 UI 授予所有权限。

  1. Azure 门户中转到 Azure AI Studio 项目概述页。

  2. 选择“访问控制”,然后选择“添加角色分配”。 访问控制的屏幕截图突出显示了添加角色分配。

  3. 选择“Azure 机器学习工作区连接机密读取者”,然后选择“下一步”

    注意

    Azure 机器学习工作区连接机密读取者角色是一个内置角色,有权获取中心连接。

    如果你要使用自定义角色,请确保自定义角色具有 Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action 权限。 详细了解如何创建自定义角色

  4. 选择“托管标识”,然后选择成员。

    对于“系统分配的标识”,请选择“系统分配的托管标识”下的“机器学习联机终结点”,然后按终结点名称进行搜索。

    对于“用户分配的标识”,请选择“用户分配的托管标识”,然后按标识名称进行搜索。

  5. 对于用户分配的标识,还需要向中心容器注册表和存储帐户授予权限。 可在 Azure 门户的中心概述页中找到容器注册表和存储帐户。

    概述页的屏幕截图突出显示了存储和容器注册表。

    转到“中心容器注册表概述”页,选择“访问控制”,然后选择“添加角色分配”,然后将“ACR 拉取 | 拉取容器映像”分配到终结点标识

    转到中心默认存储概述页,选择“访问控制”,再选择“添加角色分配”,然后将“存储 Blob 数据读取者”分配给终结点标识

  6. (可选)对于用户分配的标识,如果你要监视与终结点相关的指标(例如 CPU/GPU/磁盘/内存利用率),则还需要向标识授予中心的工作区指标写入者角色。

检查终结点的状态

完成部署向导后,将会有通知。 成功创建终结点和部署后,可以选择通知中的“查看详细信息”转到部署详细信息页。

还可以从左侧导航栏直接转到“部署”页,选择部署,然后检查状态。

测试终结点

在部署详细信息页中,切换到“测试”选项卡。

对于从标准流部署的终结点,可以在表单编辑器或 JSON 编辑器中输入值来测试终结点。

测试从聊天流部署的终结点

对于从聊天流部署的终结点,可以在沉浸式聊天窗口中对其进行测试。

在聊天流开发过程中设置了 chat_input。 可以在输入框中输入 chat_input 消息。 如果流包含多个输入,则可以使用右侧的“输入”面板指定除 chat_input 之外的其他输入的值。

使用终结点

在部署详细信息页中,切换到“使用”选项卡。可以找到用于使用终结点的 REST 终结点和密钥/令牌。 还有示例代码可供你使用不同语言版本的终结点。

使用终结点的示例代码的屏幕截图。

需要输入 RequestBodydataapi_key 的值。 例如,如果流有 2 个输入 locationurl,则需要按如下所示指定数据。

 {
"location": "LA",
"url": "<the_url_to_be_classified>"
}

清理资源

如果在完成此教程后你不打算使用终结点,则应该删除该终结点。

注意

完全删除可能需要大约 20 分钟。

后续步骤