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

Azure AI 搜索中的语义排名

注意

Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。

在Azure AI 搜索中,semantic 排名器是一项功能,它通过使用Microsoft的语言理解模型来重新检索搜索结果,可衡量地提高搜索相关性。 语义排名器还内置于 代理检索中。 本文是一个高级简介,可帮助你了解语义排名器的行为和优势。

语义排序器是按使用情况计费的高级功能,但可以在免费层的服务限制下免费使用。 我们建议您阅读本文以了解背景信息,但如果您想直接开始操作,请按照以下步骤操作。

什么是语义排名?

语义排名器是查询端功能的集合,可提高基于文本的查询、矢量查询的文本部分和混合查询的初始 BM25 排名 或 RRF 排名 搜索结果的质量。 语义排名以三种方式扩展查询执行管道:

  • 首先,它始终在使用 BM25 或倒数排序融合 (RRF) 进行评分的初始结果集上添加辅助排名。 此辅助排名使用从Microsoft 必应改编的多语言深度学习模型,以提升与语义上最相关的结果。

  • 其次,它会返回标题,并选择性地提取响应中的答案,你可以在搜索页面上呈现这些答案,以提高用户的搜索体验。

  • 第三,如果启用查询重写,它会将初始查询字符串扩展到多个语义上相似的查询字符串。

辅助排名和“答案”适用于查询响应。 查询重写是查询请求的一部分。

语义排名器具有以下功能:

能力 描述
L2 排名 使用查询的上下文或语义含义,在预先排序的结果上计算新的相关性分数。
语义标题和突出显示 从最能汇总内容的字段中提取逐字句子和短语,并突出显示关键段落以便于扫描。 当单个内容字段对于搜索结果页过于密集时,汇总结果的标题非常有用。 突出显示的文本可提升最相关的字词和短语,以便用户能够快速确定为何将匹配视为相关。
语义答案 从语义查询返回的可选和额外的子结构。 它对看似问题的查询提供了直接答案。 它要求文档具有具有答案特征的文本。
查询重写(预览版) 使用文本查询或矢量查询的文本部分,语义排名器最多创建 10 个查询变体,可能更正拼写错误或拼写错误,或者使用生成的同义词重新排列查询。 重写的查询在搜索引擎上运行。 结果使用 BM25 或 RRF 评分进行评分,然后使用语义排名器进行重新评分。

语义排名器的工作原理

语义排名器接收查询和结果,然后将它们发送到由微软托管的语言理解模型。 它会系统地扫描以寻找更好的匹配项。

下图说明了这一概念。 考虑术语“capital”。 它有不同的含义,具体取决于上下文是财务、法律、地理还是语法。 通过语言理解,语义排名器检测上下文并提升适合查询意向的结果。

上下文矢量表示形式的插图。

语义排名使用大量资源和时间。 为了在查询操作的预期延迟内完成处理,系统将合并和减少语义排名器的输入。 此方法有助于尽快完成重新调整步骤。

语义排名有三个步骤:

  1. 收集和汇总输入
  2. 使用语义排名器对结果进行评分
  3. 输出重新记录的结果、标题和答案

系统如何收集和汇总输入

在语义排名中,查询子系统将搜索结果作为汇总和排名模型的输入传递。 由于排名模型具有输入大小约束且处理强度高,因此需要对搜索结果进行大小调整和结构化(总结),以实现高效处理。

  1. 语义排名器从文本查询的 BM25 排名结果 或矢量或混合查询的 RRF 排名结果 开始。 重新调整过程仅使用文本。 即使结果包含超过 50 个结果,也只有前 50 个结果进入语义排名。 通常,语义排名使用信息字段和描述性字段。

  2. 对于搜索结果中的每个文档,摘要模型最多接受 2,000 个令牌,其中令牌大约为 10 个字符。 模型会从 语义配置中列出的“title”“keywords”和“content”字段汇集输入内容。

  3. 系统剪裁过多的字符串,以确保总长度满足汇总步骤的输入要求。 此剪裁练习演示了为什么必须按优先级顺序向语义配置添加字段。 如果你有非常大的文档,且包含文本密集型字段,则系统会忽略最大限制后的任何内容。

    语义域 令牌限制
    标题 128 个令牌
    关键词 128 个令牌
    内容 剩余令牌
  4. 摘要输出是每个文档的摘要字符串,由每个字段中最相关的信息组成。 系统将摘要字符串发送到排序器进行评分,并发送到计算机阅读理解模型,以生成字幕和答案。

    截至 2024 年 11 月,传递给语义排名器的每个生成的摘要字符串的最大长度为 2,048 个标记。 以前,它的数量是 256 个标记。

如何对结果进行评分

系统根据标题和摘要字符串中填充 2048 个令牌长度的任何其他内容对结果进行评分。

  1. 相对于你提供的查询,系统评估概念性和语义相关性的标题。

  2. 系统根据给定查询文档的语义相关性为每个文档分配 @search.rerankerScore 。 分数范围从 4 到 0(高到低),其中更高的分数表示更高的相关性。

    得分 意义
    4.0 文档高度相关,并完全回答问题,但段落可能包含与问题无关的额外文本。
    3.0 文档是相关的,但缺少使其完整的详细信息。
    2.0 文档有点相关;它部分或仅回答问题的某些方面。
    1.0 文档与问题相关,它回答了其中的一小部分。
    0.0 文档无关紧要。
  3. 系统按分数按降序列出匹配项,并将其包含在查询响应有效负载中。 数据负载包括答案、纯文本和突出显示的标题,以及标记为“可检索”或在选择子句中指定的任何字段。

注意

对于任何给定的查询, @search.rerankerScore 的分布可能会因基础结构级别的条件而出现轻微变化。 排名模型更新还会影响分发。 出于这些原因,如果要为最小阈值编写自定义代码或为矢量和混合查询 设置阈值属性 ,请不要使限制过于精细。

语义排名器输出

从每个摘要字符串中,计算机读取理解模型查找最有代表性的段落。

输出包括:

  • 文档的 语义标题 。 每个标题以纯文本版本和突出显示版本提供,并且每个文档的字数通常少于 200 个。

  • 一个可选的 语义答案,假设你指定 answers 了参数,查询被提出为问题,并在提供问题可能答案的长字符串中找到一个段落。

标题和答案始终是索引中的逐字文本。 此工作流中没有可创建或撰写新内容的生成 AI 模型。

语义功能和限制

语义排名器 可以 执行的操作:

  • 提升语义上更接近原始查询意向的匹配项。

  • 查找要用作标题和答案的字符串。 响应返回标题和答案,你可以在搜索结果页上呈现这些标题和答案。

语义排名器 无法 执行的操作是在整个语料库上重新运行查询,以查找与语义相关的结果。 语义排名重新评估现有结果集,由默认排名算法评分的前 50 个结果组成。 此外,语义排名器无法创建新的信息或字符串。 语言模型从内容中提取字幕和答案,因此,如果结果不包含类似答案的文本,它们不会生成一个。

尽管语义排名在每个方案中都不起作用,但某些内容可以从其功能中获益。 语义排名器中的语言模型最适用于信息丰富且结构化为散文的可搜索内容。 包含描述性内容的知识库、联机文档或文档从语义排名器功能中受益最大。

基础技术来自必应和Microsoft研究,并作为附加功能集成到Azure AI 搜索基础结构中。 有关支持语义排名器的研究和 AI 投资的详细信息,请参阅 必应 AI 如何为Azure AI 搜索提供支持(Microsoft研究博客)。

以下视频概述了这些功能。

语义排名器如何使用同义词映射

如果启用对与搜索索引中的 字段关联的同义词映射 的支持,并在 语义排名器配置中包含该字段,则语义排名器会在重新调用过程中自动应用配置的同义词。

可用性和定价

语义排名器在 选择区域中可用。 它可以用作独立功能,也可以用作 代理检索的内置组件。 每个功能都是独立计费的。

语义排序器提供一个默认的免费计划,其中包含每月免费请求额度;在用完免费额度后,用户可选择即用即付的标准计划。 有关详细信息,请参阅 “启用或禁用语义排名器计费”。

当查询请求包含 queryType=semantic 且搜索字符串不为空(例如 search=pet friendly hotels in New York)时,将产生语义排序器费用。 如果搜索字符串为空(search=*),则不会收费,即使 queryType 设置为语义。

如何开始

  1. 检查区域可用性。

  2. (可选) 切换到标准计费计划 ,以超出免费每月配额。

  3. 在搜索索引中配置语义排名器。

  4. 设置查询以返回语义标题和突出显示。

  5. (可选) 返回语义答案。