知识库召回功能更新:使用“多路召回”替代 “N 选 1 召回”
为了提升 Dify 知识库的检索精确度,我们决定对知识库检索策略进行升级和调整:
自 2024 年 9 月 1 日起,我们将停用“N 选 1 召回”策略,取而代之的是支持灵活配置的“多路召回”策略。我们建议你切换到多路召回方案,并重新调试应用的召回效果。
? 为什么停用“N 选 1 召回”策略?
之所以做出这个决定,是因为在实际使用中,大家逐渐发现“N 选 1 召回”策略的局限性越来越明显。简单来说,这种策略只匹配一个知识库,而且匹配结果严重依赖大模型对知识库描述的理解。检索时,模型可能会做出不合理的判断,导致结果要么不全面,要么不准确,最终无法提供高质量的查询答案。这也是社区里反馈比较集中的一个问题。

考虑到这些显而易见的短板,我们决定从 2024 年 9 月起正式停止对“N 选 1 召回”功能的支持,转而采用一个更灵活、更全面的检索方案。
? 一个更好的检索方案:可配置的“多路召回”
这次更新的重点,就是对“多路召回”能力进行了大幅升级,让你能获得更好的检索效果。具体来说,有几个关键的改进点:
你可以自己决定是否要用 Rerank 策略,完全看业务需求。
新增了语义和关键词的权重设置功能,可以手动调整两者之间的平衡,以便找到最合适的检索效果。
虽然 Rerank 现在变成可选项了,但强烈推荐你还是配置一个 Rerank Model API(比如 Cohere、Jina 等模型),这样通常能获得最佳效果。
所以,强烈建议你现在就开始用新的多路召回配置,让检索结果更精确。
? 你需要做什么?
☁️ 对于 Dify Cloud 用户:
如果你创建的应用关联了知识库,并且之前选的是“N 选 1 召回”方案,现在可以通过以下路径手动调整:上下文(Context)—> 召回策略(Retrieval Setting)。
注意:如果你在 2024 年 9 月 1 日前没来得及调整,系统会自动帮你切换到新的多路召回配置(默认配置)。
? 对于 Dify 社区版或本地部署的企业版用户:
在 2024 年 9 月 1 日之后发布的新版本中,将不再支持“N 选 1 召回”功能。届时,我们会提供数据迁移脚本来帮助升级。请多留意后续的 release 公告。
?️ 如何使用“多路召回” Rerank 设置?
多路召回下的 Rerank 设置,核心就是两个配置项:权重设置和 Rerank 模型。在权重设置里,你可以通过调整关键词和语义的比例,来不断调试,直到找到最适合自己场景的召回策略。
- 这时只使用关键词检索。当用户知道确切的信息或术语时,这种方式能快速准确地返回结果,而且计算资源消耗较低,适合在包含大量文档的知识库里进行快速检索。
关键词权重设为 1:
- 这时只使用语义检索。语义检索能理解查询背后的概念,借助 Embedding 模型,即使知识库中没有出现查询里的确切词汇,也能返回相关信息,大大提高了检索的深度。处理多语言内容时,它也能捕捉不同语言之间的意义转换,提供更准确的跨语言搜索结果。这在跨语言、语义转换等模糊或复杂的检索场景下特别好用。
语义值权重设为 1:
- 除了单独使用,我们还提供了灵活的自定义权重设置。你可以不断调试两者的权重,找到最符合业务场景的黄金比例,这在一些独特的需求场景或复杂知识结构的召回中尤其适用。
自定义关键词和语义的权重:
当然,如果追求最高的检索精确度,还是建议使用 Rerank 模型来配置你的召回策略。详细内容可以查看我们的帮助文档。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名