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

使用自定义策略控制模型部署

将 Azure AI Foundry(以前已知的 Azure AI 服务)和 Azure OpenAI 中的模型与 Azure AI Foundry 配合使用时,可能需要使用自定义策略来控制哪些 类型的部署 选项可供用户使用,或者哪些特定模型可供用户部署。 本文介绍如何使用 Azure Policies 创建策略来控制模型部署。

提示

本文中的步骤适用于 Foundry 项目和基于中心的项目。

先决条件

创建自定义策略

按照以下步骤创建并分配用于控制模型部署的示例自定义策略:

  1. Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”

  2. 在 Azure Policy 仪表板左侧,选择“编写”、“定义”,然后从页面顶部选择“+ 策略定义”。

    显示如何在 Azure Policies 中创建新策略定义的屏幕截图。

  3. 在“策略定义”窗体中使用以下值

    • 定义位置:选择要在其中存储策略定义的订阅或管理组
    • 名称:为策略定义输入唯一的名称。 例如,Custom allowed Azure AI services and Azure OpenAI models
    • 说明:输入策略定义的说明
    • 类别:可以创建新类别,也可以使用现有类别。 例如“AI 模型治理”。
  4. 策略规则上,以 JSON 格式输入策略规则详细信息。 选择比较适用于你的用例的方案:

    通过以下策略,可以控制哪些特定模型和版本可用于部署。 可以根据需求在不同级别强制实施此策略。

    {
          "mode": "All",
          "policyRule": {
            "if": {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.CognitiveServices/accounts/deployments"
                },
                {
                  "not": {
                    "value": "[concat(field('Microsoft.CognitiveServices/accounts/deployments/model.name'), ',', field('Microsoft.CognitiveServices/accounts/deployments/model.version'))]",
                    "in": "[parameters('allowedModels')]"
                  }
                }
              ]
            },
            "then": {
              "effect": "deny"
            }
          },
          "parameters": {
            "allowedModels": {
              "type": "Array",
              "metadata": {
                "displayName": "Allowed AI models",
                "description": "The list of allowed models to be deployed."
              }
            }
        }
    }
    

    提示

    Azure AI 服务最初名为“Azure 认知服务”。 此名称仍由 Azure 在内部使用,例如此自定义策略中显示了 Microsoft.CognitiveServices 值。 Azure OpenAI 是 Azure AI 服务的一部分,因此此策略也适用于 Azure OpenAI 模型。

  5. 选择“保存”以保存策略定义。 保存后,你将进入策略定义的概述页面。

  6. 在策略定义的概述页面中,选择“分配策略”以分配策略定义

  7. 在“分配策略”页面上,在“基本信息”选项卡中使用以下值

    • 范围:选择策略的分配范围。 范围可以是管理组、订阅或资源组。
    • 策略定义:此字段中已预先填充了你先前创建的策略定义的标题
    • 分配名称:为分配输入唯一的名称
    • 策略执行:确保“策略执行”字段设置为“已启用”。 如果未启用,则不会执行该策略。

    选择页面底部的“下一步”,或选择页面顶部的“参数”选项卡

  8. 配置策略的参数(如果有):

    在“参数”选项卡中,将“允许的 AI 模型”设置为你要允许的模型列表。 该列表应为模型名称和已批准版本的逗号分隔列表,并括在方括号中。 例如,["gpt-4,0613", "gpt-35-turbo,0613"]

    提示

    可以在 Azure AI Foundry 模型目录中找到模型名称及其版本。 选择要查看详细信息的模型,然后在标题中复制模型名称及其版本。

  9. (可选)选择页面顶部的“不合规消息”选项卡,然后设置不合规的自定义消息

  10. 选择“查看 + 创建”选项卡并验证策略分配是否正确。 准备就绪后,选择“创建”以分配策略

  11. 通知您的开发人员该策略已实施。 如果他们尝试部署不在允许模型列表中的模型,他们会收到错误消息。

验证策略分配

若要验证策略是否已分配,请导航到 Azure 门户中的“策略”,然后在“编写”下选择“分配”。 应该能看到策略列表。

监测合规性

若要监视对策略的遵从性,请执行以下步骤:

  1. Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”

  2. 在 Azure Policy 仪表板左侧,选择“合规性”。 每项策略分配均与合规性状态一起列出。 若要查看更多详细信息,请选择该策略分配。 以下示例显示了阻止全局标准类型的部署的策略的符合性报告。

    屏幕截图显示一个阻止全局标准部署 SKU 的策略所涉及的政策符合性报告示例。

更新策略分配

若要用新模型更新现有模型的策略分配,请执行以下步骤:

  1. Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”
  2. 在 Azure Policy 仪表板左侧,选择“分配”并找到现有的策略分配。 选择该分配旁边的省略号 (...),然后选择“编辑分配”
  3. 在“参数”选项卡中,更新新模型的“允许的模型”参数
  4. 在“检查 + 保存”选项卡中,选择“保存”以更新策略分配

最佳做法

  • 精细范围定义:在适当的范围内分配策略,在控制能力与灵活性之间实现平衡。 例如,在订阅级别应用策略可以控制订阅中的所有资源,在资源组级别应用策略可以控制特定组中的资源。
  • 策略命名:对策略分配使用一致的命名约定,以便更轻松地识别策略的用途。 在名称中包含用途和范围等信息。
  • 文档记录:保留策略分配和配置的记录以用于审核目的。 记录一段时间内对策略所做的任何更改。
  • 定期评审:定期评审策略分配,确保其符合组织的要求
  • 测试:在将策略应用于生产资源之前,先在非生产环境中对其进行测试
  • 沟通:确保开发人员知道现行的策略,并了解其对开发人员工作的影响