置信度分数
如果用户查询的匹配依据为一个项目(也称为知识库),自定义问题解答会返回相关答案和置信度分数。 此分数指明了答案是给定用户查询的正确匹配答案的置信度。
置信度分数是介于 0 和 100 之间的数字。 100 分表明很可能是完全匹配,而 0 分则表明找不到匹配答案。 分数越高,答案的置信度就越大。 对于给定查询,可能会返回多个答案。 在这种情况下,答案按置信度分数降序顺序返回。
下表指明了与给定分数关联的典型置信度。
分数值 | 分数含义 | 示例查询 |
---|---|---|
0.90 - 1.00 | 与用户查询和知识库问题几乎完全匹配 | |
> 0.70 | 高置信度 - 通常是能够完全回答用户查询的合理答案 | |
0.50 - 0.70 | 中等置信度 - 通常是应该能回答用户查询的主要意向的较合理答案 | |
0.30 - 0.50 | 低置信度 - 通常是部分回答用户意向的相关答案 | |
< 0.30 | 极低置信度 - 通常未回答用户查询,但有一些匹配字词或短语 | |
0 | 无匹配,因此未返回任何答案。 |
选择分数阈值
上表显示了在使用自定义问题解答进行查询时可能出现的分数范围。 不过,由于每个项目都不同,它们具有不同类型的字词、意向和目标,因此建议测试并选择最适合自己的阈值。 默认情况下,阈值设置为 0
,以便返回所有可能的答案。 适用于大多数项目的建议阈值为 50。
选择阈值时,请务必平衡“准确度”和“覆盖率”,并根据自己的需求来调整阈值 。
如果“准确度”(或精准率)对方案更为重要,请提高阈值。 这样,每次返回的答案的置信度都会更高,且更有可能就是用户所要找的答案。 在这种情况下,最终可能会导致更多问题没有答案。
如果“覆盖率”(或召回率)更为重要,且希望尽可能多地回答问题(即使答案与用户问题仅部分相关,也不例外),请降低阈值。 也就是说,可能会更多出现以下情况:答案并未回答用户实际查询,而是提供了其他一些相关答案。
设置阈值
将阈值分数设置为 REST API JSON 主体的属性。 这意味着要为每次 REST API 调用设置该分数。
提高置信度分数
要提高对用户查询的特定响应的置信度分数,可以将用户查询作为该响应的备用问题添加到项目。 还可以使用区分大小写的同义词向项目中的关键字添加同义词。
相似的置信度分数
当多个响应具有相似的置信度分数时,查询很可能过于通用,因此与多个答案匹配的可能性都相同。 尝试更好地构建 QnA,以便每个 QnA 实体都有不同的意向。
测试与生产的置信度分数差异
即使内容相同,在项目的测试版和部署版之间,答案的置信度分数也可能会发生微小的变化。 这是因为测试项目和已部署的项目的内容位于不同的 Azure AI 搜索索引中。
测试索引包含项目的所有问答对。 查询测试索引时,查询应用于整个索引,然后结果限制为该特定项目的分区。 如果测试查询结果对验证项目的能力产生负面影响,可以:
- 使用以下某一项来整理项目:
- 一个资源限于一个项目:将单个语言资源(以及生成的 Azure AI 搜索测试索引)限定于一个项目。
- 两个资源 - 一个用于测试,一个用于生产:有两个语言资源,一个用于测试(具有自己的测试和生产索引),另一个用于生产(也具有自己的测试和生产索引)
- 在查询测试项目和生产项目时,始终使用相同的参数。
部署项目时,项目的问答内容将从测试索引转移到 Azure 搜索中的生产索引。
如果不同区域都有项目,则每个区域都使用自己的 Azure AI 搜索索引。 因为使用的索引不同,所以得分并不完全相同。
找不到匹配项
当排名程序找不到良好的匹配项时,将返回置信度分数 0.0 或“None”,并返回默认的响应。 你可以更改默认的响应。