如何使用 Azure AI Studio 中的模型实现集成矢量化

重要

根据补充使用条款,此功能以公共预览版提供。 2024-05-01-Preview REST API 支持此功能。

本文介绍如何在 Azure AI 搜索中的索引编制期间和查询中访问 Azure AI Studio 模型目录中的嵌入模型以进行矢量转换。

工作流包括模型部署步骤。 模型目录包括来自于 Azure OpenAI、Cohere 和 OpenAI 的嵌入模型。 部署模型按每个提供商的计费结构计费。

部署模型后,可以在索引期间将其用于集成矢量化,也可以与 AI Studio 矢量器配合使用来进行查询。

从 Azure AI Studio 模型目录部署嵌入模型

  1. 打开 Azure AI Studio 模型目录

  2. 应用筛选器,以便仅显示嵌入模型。 在“推理任务”下,选择“嵌入”

    该屏幕截图显示了 Azure AI Studio 模型目录页,其中突出显示了如何按嵌入模型筛选。

  3. 选择要用于实现内容矢量化的模型。 然后选择“部署”并选择部署选项

    通过 Azure AI Studio 模型目录部署终结点的屏幕截图。

  4. 填写必需的信息。 选择或创建新的 AI 项目,然后选择“部署”。 部署详细信息因所选模型而异。

  5. 通过监视“预配状态”,等待模型完成部署。 该状态应从“正在预配”更改为“正在更新”,再更改为“成功”。 可能需要每隔几分钟选择“刷新”才能查看状态更新

  6. 复制 URL、主键和模型 ID 字段,并将其放在一边供以后使用。 你需要将这些值用于搜索索引中的矢量器定义,以及用于在索引期间调用模型终结点的技能集。

    (可选)可以更改终结点以使用令牌身份验证,而不是密钥身份验证。 如果启用令牌身份验证,只需复制 URL 和模型 ID,并记下部署模型的区域。

    该屏幕截图显示了 AI Studio 中已部署的终结点,其中突出显示了要复制和保存以供后续使用的字段。

  7. 现在可以配置搜索索引和索引器来使用已部署的模型。

示例 AML 技能有效负载

Azure AI Studio 模型目录中部署嵌入模型时,可以使用 Azure AI 搜索中的 AML 技能连接到这些模型,为工作负载编制索引。

本部分介绍 AML 技能定义和索引映射。 其中包括已配置为使用其相应部署终结点的示例有效负载。 有关这些有效负载工作原理的更多技术详细信息,请阅读技能上下文和输入注释语言

此 AML 技能有效负载适用于 AI Studio 中的以下模型:

  • OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32
  • OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336

它假定你要使用文本拆分技能对内容进行分块,并且要矢量化的文本位于 /document/pages/* 路径中。 如果文本来自其他路径,请相应地更新对 /document/pages/* 路径的所有引用。

从目录部署模型时,便会生成 URI 和密钥。 有关这些值的详细信息,请参阅如何使用 Azure AI Studio 部署大型语言模型

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "{YOUR_MODEL_URL_HERE}",
  "key": "{YOUR_MODEL_KEY_HERE}",
  "inputs": [
    {
      "name": "input_data",
      "sourceContext": "/document/pages/*",
      "inputs": [
        {
          "name": "columns",
          "source": "=['image', 'text']"
        },
        {
          "name": "index",
          "source": "=[0]"
        },
        {
          "name": "data",
          "source": "=[['', $(/document/pages/*)]]"
        }
      ]
    }
  ],
  "outputs": [
    {
      "name": "text_features"
    }
  ]
}

示例 AI Studio 矢量器有效负载

与 AML 技能不同,AI Studio 矢量化器经过专门定制,仅适用于可通过 AI Studio 模型目录部署的嵌入模型。 主要区别在于,你不必担心请求和响应有效负载,但必须提供 modelName,这对应于在 AI Studio 中部署模型后复制的“模型 ID”。

以下是一个示例有效负载,演示如何在给定从 AI Studio 复制的属性的情况下在索引定义上配置矢量器。

对于 Cohere 模型,不应像使用技能那样将 /v1/embed 路径添加到 URL 末尾。

"vectorizers": [
    {
        "name": "{YOUR_VECTORIZER_NAME_HERE}",
        "kind": "aml",
        "amlParameters": {
            "uri": "{YOUR_URL_HERE}",
            "key": "{YOUR_PRIMARY_KEY_HERE}",
            "modelName": "{YOUR_MODEL_ID_HERE}"
        },
    }
]

使用令牌身份验证进行连接

如果无法使用基于密钥的身份验证,可改为通过 Azure 上的基于角色的访问控制来配置 AML 技能和 AI Studio 矢量器连接,以进行令牌身份验证。 搜索服务必须具有系统或用户分配的托管标识,并且该标识必须具有 AML 项目工作区的所有者或参与者权限。 然后,可以从技能定义和矢量器定义中删除键字段,并将其替换为 resourceId 字段。 如果 AML 项目和搜索服务位于不同区域,则还要提供区域字段。

"uri": "{YOUR_URL_HERE}",
"resourceId": "subscriptions/{YOUR_SUBSCRIPTION_ID_HERE/resourceGroups/{YOUR_RESOURCE_GROUP_NAME_HERE}/providers/Microsoft.MachineLearningServices/workspaces/{YOUR_AML_WORKSPACE_NAME_HERE}/onlineendpoints/{YOUR_AML_ENDPOINT_NAME_HERE}",
"region": "chinanorth", // Only need if AML project lives in different region from search service

后续步骤