category
在Azure AI搜索中,语义排名是一项功能,通过使用微软的语言理解模型重新排列搜索结果,可以显著提高搜索相关性。这篇文章是一篇高层次的介绍。最后一节介绍了可用性和定价。
语义排序是一个高级功能,按使用计费。我们推荐这篇文章作为背景,但如果你想开始,请遵循以下步骤:
- 检查区域可用性
- 登录Azure门户以验证您的搜索服务是Basic或更高版本
- 启用语义排名并选择定价计划
- 在搜索索引中设置语义配置
- 设置查询以返回语义标题和亮点
- (可选)返回语义答案
笔记
语义排名不使用生成人工智能或向量。如果你正在寻找矢量支持和相似性搜索?有关详细信息,请参阅Azure AI搜索中的矢量搜索。
什么是语义排名?
语义排序器是查询端功能的集合,用于提高基于文本的查询的初始BM25排序或RRF排序搜索结果的质量。当您在搜索服务上启用它时,语义排名以两种方式扩展查询执行管道:
- 首先,它在使用BM25或RRF评分的初始结果集上添加了二级排名。该二级排名使用了改编自微软必应的多语言深度学习模型,以促进语义最相关的结果。
- 其次,它提取并返回响应中的标题和答案,您可以在搜索页面上呈现这些标题和答案以改善用户的搜索体验。
以下是语义重新排序器的功能。
Feature | Description |
---|---|
语义排名 | 使用查询的上下文或语义来计算预排序结果的新相关性得分。 |
语义字幕和亮点 | 从文档中逐字逐句地提取最能概括内容的句子和短语,并在关键段落上突出显示,便于扫描。当单个内容字段对于搜索结果页面来说过于密集时,总结结果的标题非常有用。高亮显示的文本提升了最相关的术语和短语,这样用户就可以快速确定为什么匹配被认为是相关的。 |
语义答案 | 从语义查询返回的可选和额外的子结构。它为看起来像问题的查询提供了直接的答案。它要求文档的文本具有答案的特征。 |
语义排序器的工作原理
语义排名将查询和结果提供给微软托管的语言理解模型,并扫描以获得更好的匹配。
下图解释了这一概念。考虑一下“资本”一词。根据上下文是金融、法律、地理还是语法,它有不同的含义。通过语言理解,语义排序器可以检测上下文并促进符合查询意图的结果。
上下文的矢量表示说明。
语义排名是资源和时间密集型的。为了在查询操作的预期延迟内完成处理,对语义排序器的输入被合并和减少,从而可以尽快完成重新排序步骤。
语义排名有两个步骤:总结和评分。输出包括重新搜索的结果、标题和答案。
如何收集和总结输入
在语义排序中,查询子系统将搜索结果作为输入传递给摘要和排序模型。由于排名模型具有输入大小约束,并且处理密集,因此必须对搜索结果进行大小调整和结构化(汇总),以实现高效处理。
- 语义排序从文本查询的BM25排序结果【BM25-ranked result 】或混合查询的RRF排序结果【RRF-ranked result】开始。在重新排序练习中只使用文本字段,并且只有前50个结果才能进行语义排序,即使结果包括50个以上。通常,语义排序中使用的字段是信息性的和描述性的。
- 对于搜索结果中的每个文档,摘要模型最多可接受2000个令牌,其中一个令牌约为10个字符。输入来自语义配置中列出的“标题”、“关键字”和“内容”字段。
- 对过长的字符串进行修剪,以确保总长度满足汇总步骤的输入要求。这就是为什么将字段按优先级顺序添加到语义配置中很重要的原因。如果您有非常大的文档,其中包含大量文本字段,则超过最大限制的任何内容都将被忽略。
Semantic field | Token limit |
---|---|
"title" | 128 tokens |
"keywords | 128 tokens |
"content" | remaining tokens |
摘要输出是每个文档的摘要字符串,由每个字段中最相关的信息组成。摘要字符串被发送到排序器进行评分,并被发送到机器阅读理解模型进行标题和答案。
传递给语义排序器的每个生成的摘要字符串的最大长度是256个令牌。
语义排序器的输出
机器阅读理解模型从每个摘要字符串中找到最具代表性的段落。
输出为:
- 文档的语义标题。每个标题都有纯文本版本和高亮显示版本,每个文档的字数通常少于200字。
- 一个可选的语义答案,假设您指定了answers参数,则查询被提出为一个问题,并且在长字符串中找到一段话,该段话提供了该问题的可能答案。
标题和答案始终是索引中的逐字文本。在这个工作流程中没有生成人工智能模型来创建或合成新内容。
如何对摘要进行评分
对标题以及填充256令牌长度的摘要字符串中的任何其他内容进行评分。
- 相对于所提供的查询,对字幕的概念相关性和语义相关性进行评估。
- 根据文档与给定查询的语义相关性,为每个文档分配@search.rerankerScore。分数范围从4到0(从高到低),其中分数越高表示相关性越高。
- 匹配项按分数降序列出,并包含在查询响应有效负载中。有效载荷包括答案、纯文本和突出显示的标题,以及您标记为可检索或在select子句中指定的任何字段。
笔记
对于任何给定的查询,@search.rerankerScore的分布可能会因基础设施级别的条件而略有变化。排名模型更新也会影响分布。出于这些原因,如果您正在为最小阈值编写自定义代码,或者为矢量查询和混合查询设置阈值属性,请不要使限制过于精细。
语义能力和局限性
语义排序器是一种较新的技术,因此设定对它能做什么和不能做什么的期望很重要。它能做些什么:
- 提升语义上更接近原始查询意图的匹配。
- 查找用作标题和答案的字符串。标题和答案会在响应中返回,并且可以在搜索结果页面上呈现。
语义排名所不能做的是在整个语料库上重新运行查询,以找到语义相关的结果。语义排名重新排列现有的结果集,该结果集由默认排名算法评分的前50个结果组成。此外,语义排序不能创建新的信息或字符串。字幕和答案是从你的内容中逐字提取的,所以如果结果不包括类似答案的文本,语言模型就不会产生一个。
尽管语义排名并非在所有情况下都有益,但某些内容可以从其功能中受益匪浅。语义排名中的语言模型在信息丰富且结构化为散文的可搜索内容上效果最好。知识库、在线文档或包含描述性内容的文档可以从语义排名功能中获得最大收益。
底层技术来自必应和微软研究,并作为附加功能集成到Azure人工智能搜索基础设施中。有关支持语义排名的研究和人工智能投资的更多信息,请参阅Bing的人工智能如何为Azure人工智能搜索提供动力(微软研究博客)。
以下视频概述了这些功能。
可用性和定价
语义排序器可在基础和更高级别的搜索服务上使用,但需视地区可用性而定。
启用语义排序器时,请为该功能选择定价计划:
- 在较低的查询量(每月1000次以下)下,语义排名是免费的。
- 如果查询量较大,请选择标准定价计划。
Azure AI搜索定价页面向您显示不同货币和间隔的计费率。
当查询请求包括queryType=semantic并且搜索字符串不为空时(例如,search=pet-friendly hotels in New York),将收取语义排名费用。如果您的搜索字符串为空(search=*),即使queryType设置为semantic,也不会向您收费。
另请参阅
- 登录 发表评论
- 9 次浏览
Tags
最新内容
- 1 week 5 days ago
- 2 weeks 6 days ago
- 3 weeks 2 days ago
- 3 weeks 2 days ago
- 3 weeks 5 days ago
- 3 weeks 6 days ago
- 4 weeks ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago