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

将模型部署为无服务器 API

本文介绍如何将模型目录中的模型部署为无服务器 API,并采用基于即用即付令牌的计费方式。

重要

预览版的模型在模型目录中的模型卡上标记为“预览”。

模型目录中的某些模型可以部署为即用即付的无服务器 API。 这种部署可以将模型作为 API 使用,而无需将它们托管在自己的订阅上,同时保持组织所需的企业安全性和合规性。 此部署选项不需要来自订阅的配额。

本文使用 Meta Llama 模型部署进行说明。 但是,可以使用相同的步骤部署模型目录中任何可用于无服务器 API 部署的模型

先决条件

  • 具有有效付款方式的 Azure 订阅。 不能使用免费或试用 Azure 订阅。 如果没有 Azure 订阅,请先创建一个付费的 Azure 帐户

  • 一个 Azure AI Studio 中心

  • 一个 Azure AI Studio 项目

  • Azure 基于角色的访问控制 (Azure RBAC) 用于授予对 Azure AI Studio 中的操作的访问权限。 若要执行本文中的步骤,必须为用户帐户分配资源组的“Azure AI 开发人员”角色。 有关权限详细信息,请参阅 Azure AI Studio 中基于角色的访问控制

  • 需要安装以下软件才能使用 Azure AI Studio:

    可以使用任何兼容的 Web 浏览器来导航 Azure AI Studio

在模型目录中查找模型和模型 ID

  1. 登录到 Azure AI Studio
  2. 如果你尚未进入项目,请先选择它。
  3. 从左侧导航窗格中选择“模型目录”。

注意

对于通过 Azure 市场提供的模型,请确保你的帐户对资源组具有“Azure AI 开发人员”角色权限,或者你满足订阅模型产品所需的权限

非 Microsoft 提供商提供的模型(例如 Llama 和 Mistral 模型)通过 Azure 市场计费。 对于此类模型,需要将项目订阅到特定的模型产品/服务。 Microsoft 提供的模型(例如 Phi-3 模型)没有此要求,因为计费方式不同。 有关模型目录中无服务器模型部署的计费的详细信息,请参阅无服务器 API 的计费

  1. 选择要部署的模型的模型卡。 在本文中,请选择“Meta-Llama-3-8B-Instruct”模型

    1. 如果使用 Azure CLI、Python 或 ARM 部署模型,请复制“模型 ID”

      重要

      复制“模型 ID”时不要包括版本。 无服务器 API 终结点始终部署模型的最新可用版本。 例如,对于模型 ID azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/3,请复制 azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct

    显示模型详细信息页面的屏幕截图。

下一部分介绍将项目订阅到模型产品/服务的步骤。 如果你将部署 Microsoft 模型,可跳过本部分,并转到“将模型部署到无服务器 API 终结点”。

将项目订阅到模型产品/服务

无服务器 API 终结点可以部署 Microsoft 和非 Microsoft 提供的模型。 对于 Microsoft 模型(例如 Phi-3 模型),无需创建 Azure 市场订阅,并且可以将其直接部署到无服务器 API 终结点以使用其预测。 对于非 Microsoft 模型,首先需要创建订阅。 如果这是你首次在项目中部署模型,则必须从 Azure 市场订阅项目以获取特定模型产品/服务。 每个项目都自己的订阅,以访问特定 Azure 市场中的模型产品/服务,可用于控制和监视支出。

提示

如果要部署 Phi-3 系列模型中的模型,请跳过此步骤。 将模型直接部署到无服务器 API 终结点

注意

通过 Azure 市场提供的模型可部署到特定区域的无服务器 API 终结点。 检查无服务器 API 部署的模型和区域可用性以验证哪些模型和区域可用。 如果需要的终结点未列出,可以部署到受支持区域中的工作区,然后使用来自不同工作区的无服务器 API 终结点

  1. 创建模型的市场订阅。 创建订阅即表示你接受与模型产品/服务相关的条款和条件。

    1. 在模型的“详细信息”页上,选择“部署”。 此时会打开“部署选项”窗口,让你能够在无服务器 API 部署和使用托管计算的部署之间进行选择。

      注意

      对于只能通过无服务器 API 部署来部署的模型,在从模型的详细信息页中选择“部署”后,会立即打开无服务器 API 部署向导。

    2. 选择“具有 Azure AI 内容安全的无服务器 API (预览版)”,打开无服务器 API 部署向导。

    3. 选择要在其中部署模型的项目。 若要使用无服务器 API 模型部署产品/服务,项目必须属于支持对特定模型进行无服务器部署的区域之一。

      显示如何使用无服务器 API 选项部署模型的屏幕截图。

    4. 如果看到注释“你已拥有此项目的 Azure 市场订阅”,则无需创建订阅,因为你已经拥有订阅。 可以继续将模型部署到无服务器 API 终结点

    5. 在部署向导中,选择“Azure 市场条款”的链接,了解有关使用条款的详细信息。 还可以选择“定价和条款”选项卡了解所选模型的定价

    6. 选择“订阅和部署”。

  2. 订阅特定 Azure 市场产品/服务的项目后,同一项目中同一产品/服务的后续部署不需要再次订阅。

  3. 随时可以查看项目当前订阅的模型产品/服务:

    1. 转到 Azure 门户

    2. 导航到项目所属的资源组。

    3. 在“类型”筛选器中选择“SaaS”

    4. 可以看到当前订阅的所有产品/服务。

    5. 选择任何资源以查看详细信息。

将模型部署到无服务器 API 终结点

为非 Microsoft 模型创建订阅后,可将关联的模型部署到无服务器 API 终结点。 对于 Microsoft 模型(如 Phi-3 模型),无需创建订阅。

通过无服务器 API 终结点,可以将模型作为 API 使用,你无需将它们托管在自己的订阅上,同时又能保持组织所需的企业安全性和合规性。 此部署选项不需要来自订阅的配额。

在本部分中,创建一个名为“meta-llama3-8b-qwerty”的终结点

  1. 创建无服务器终结点

    1. 若要部署不需要订阅模型产品/服务的 Microsoft 模型:

      1. 选择“部署”,然后选择“具有 Azure AI 内容安全的无服务器 API(预览版)”以打开部署向导
      2. 选择要在其中部署模型的项目。 请注意,并非所有区域都受支持。
    2. 或者,对于需要模型订阅的非 Microsoft 模型,如果你刚在上一部分中将项目订阅到了模型产品/服务,请继续选择“部署”。 或者,选择“继续部署”(如果部署向导显示备注“你已拥有此项目的 Azure 市场订阅”)

      显示已订阅产品/服务的项目的屏幕截图。

    3. 为部署命名。 此名称将成为部署 API URL 的一部分。 此 URL 必须在每个 Azure 区域中唯一。

      显示如何指定要创建的部署名称的屏幕截图。

      提示

      默认情况下,“内容筛选器(预览)”选项处于启用状态。 请保留该服务的默认设置,以检测有害内容,例如仇恨、自残、性和暴力内容。 有关内容筛选(预览版)的详细信息,请参阅 Azure AI Studio 中的内容筛选

    4. 选择“部署”。 部署准备就绪后,你将被重定向到“部署”页面。

  2. 随时可以查看部署到项目的终结点:

    1. 转到您的项目。

    2. 在“我的资产”部分中,选择“模型 + 终结点”。

    3. 将显示无服务器 API 终结点。

  3. 创建的终结点使用密钥身份验证进行授权。 使用以下步骤获取与给定终结点关联的密钥。

    可以选择部署,并记下终结点的“目标 URI”和“密钥”。 使用它们来调用部署并生成预测。

    注意

    使用 Azure 门户时,默认情况下,资源组上不会显示无服务器 API 终结点。 使用“显示隐藏的类型”选项可将其显示在资源组上

  4. 此时,终结点可供使用。

  5. 如果需要从不同的项目或中心使用此部署,或者计划使用提示流生成智能应用程序,则需要创建与无服务器 API 部署的连接。 若要了解如何在新项目或中心配置现有无服务器 API 终结点,请参阅使用来自不同项目或提示流的已部署无服务器 API 终结点

    提示

    如果在部署部署的同一项目或中心内使用提示流,则仍然需要创建连接。

使用无服务器 API 终结点

通过 Azure 机器学习和 Azure AI Studio 部署在无服务器 API 终结点中的模型支持 Azure AI 模型推理 API,该 API 公开一组针对基础模型的通用功能,供开发人员用来以统一且一致的方式使用来自一组不同模型的预测。

详细了解此 API 的功能以及如何在生成应用程序时使用它

网络隔离

部署为无服务器 API 的模型终结点将遵循具有部署所在的项目的 AI Studio 中心的公用网络访问 (PNA) 标志设置。 若要保护 MaaS 终结点,请在 AI Studio 中心上禁用 PNA 标志。 可以使用中心的专用终结点来保护从客户端到终结点的入站通信。

若要为 Azure AI Studio 中心设置 PNA 标志,请执行以下操作:

  1. 转到 Azure 门户
  2. 搜索中心所属的资源组,并在针对此资源组列出的资源中选择“Azure AI 中心”
  3. 在中心“概述”页面上的左侧菜单中,选择“设置”>“网络”
  4. 在“公共访问”选项卡下,可以配置公用网络访问标志的设置。
  5. 保存所做更改。 你所做的更改最多可能需要五分钟才能传播。

删除终结点和订阅

可以删除模型订阅和终结点。 删除模型订阅会使任何关联的终结点变得不正常且无法使用

若要删除无服务器 API 终结点,请执行以下操作:

  1. 转到 Azure AI Studio

  2. 转到您的项目。

  3. 在“我的资产”部分中,选择“模型 + 终结点”。

  4. 打开要删除的部署。

  5. 选择“删除”。

若要删除关联的模型订阅,请执行以下操作:

  1. 转到 Azure 门户

  2. 导航到项目所属的资源组。

  3. 在“类型”筛选器中选择“SaaS”

  4. 选择要删除的订阅。

  5. 选择“删除”。

部署为无服务器 API 终结点的模型的成本和配额注意事项

配额是按部署管理的。 每个部署的速率限制为每分钟 200,000 个令牌和每分钟 1,000 个 API 请求。 但是,我们目前的限制为每个项目每个模型一个部署。 如果当前速率限制不能满足你的方案,请联系 Microsoft Azure 支持部门。

Microsoft 模型的成本

将 Microsoft 模型(如 Phi-3 模型)部署为无服务器 API 终结点时,可在部署向导的“定价和条款”选项卡上找到定价信息

非 Microsoft 模型的成本

部署为无服务器 API 终结点的非 Microsoft 模型通过 Azure 市场提供,并与 Azure AI Studio 集成以供使用。 部署或微调这些模型时,可找到 Azure 市场定价。

每次项目从 Azure 市场订阅给定产品/服务时,都会创建一个新资源来跟踪与其消耗相关的成本。 同一资源用于跟踪与推理和微调相关的成本。但是,可以使用多个计量器来独立跟踪每个方案。

有关如何跟踪成本的详细信息,请参阅监视通过 Azure 市场提供的模型的成本

显示与不同模型产品/服务及其关联计量对应的不同资源的屏幕截图。

订阅模型产品/服务所需的权限

Azure 基于角色的访问控制 (Azure RBAC) 用于授予对 Azure AI Studio 中的操作的访问权限。 若要执行本文中的步骤,必须为用户帐户分配 Azure 订阅的“所有者”、“参与者”或“Azure AI 开发人员”角色。 或者,可以为帐户分配具有以下权限的自定义角色:

  • 在 Azure 订阅中,将工作区订阅到 Azure 市场产品/服务的权限,每个工作区每个产品/服务一次:

    • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
    • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.SaaS/register/action
  • 在资源组上,创建和使用 SaaS 资源的权限:

    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write
  • 在工作区中,部署终结点的权限(Azure 机器学习数据科学家角色已包含这些权限):

    • Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
    • Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*

有关权限详细信息,请参阅 Azure AI Studio 中基于角色的访问控制