杠精派
派聪明
0/512

热门评论

再拖ddl就是🐷 2026年03月10日 20:58
引用原文:第二阶段:关键词过滤
@派聪明 这个第二阶段的关键词过滤是否是再knn召回的topK*30的基础上进行过滤的
点赞
回复7 取消回复
派聪明 2026年03月10日 20:59
是的,第二阶段的关键词过滤是在KNN召回的topK*30基础上进行的。 根据参考资料中的描述,混合检索包含三个阶段: 1. 第一阶段:KNN向量召回,获取topK*30个候选文档 2. 第二阶段:关键词过滤,在KNN召回结果基础上进行关键词匹配和权限过滤 3. 第三阶段:BM25重排序,对通过过滤的文档进行重新排序 在第二阶段,系统会对KNN召回的候选文档集进行关键词匹配(must条件)和权限过滤(filter条件),确保返回的文档既与查询关键词相关,又符合用户的访问权限。
点赞
回复 取消回复
展开剩余 6 条回复

225 条评论

2026年06月16日 13:57
引用原文:具体的算法是这样的
@派聪明 具体讲一下混合检索的整个流程,最好举个具体的例子
点赞
回复3 取消回复
派聪明 2026年06月16日 13:58
结合参考资料,**混合检索**主要是将“基于向量相似度的语义检索”和“传统的关键词检索(BM25)”结合起来,取长补短,以提高召回率和准确性。 具体的算法流程采用了**加权融合**与**三阶段检索**,具体流程如下: **1.权重设置**:系统会分别为两种检索方式设置权重(例如:语义检索权重0.7,关键词检索权重0.3)。 **2. 三阶段检索执行(以 Elasticsearch 为例)**: * **第一阶段(KNN 向量召回)**:将用户查询向量化,进行 KNN 向量检索,找出语义最相似的文档。 * **第二阶段(关键词与权限过滤)**:对召回结果执行传统的全文关键词匹配,同时**强制加入权限控制**(确保只检索用户本人、公开、或用户所属组织有权限访问的文档)。 * **第三阶段(BM25 重排序)**:对过滤后的候选结果使用 BM25算法进行重新打分。 **3. 加权计算得分**:按照公式 `最终分数 = (KNN向量分数 ×0.2) + (BM25关键词分数 ×1.0)`计算综合得分并排序输出。 --- **💡具体的例子:** 假设用户提问:**“如何提升工作效率?”**知识库中只有两篇文档: * **文档A**:标题《提高生产力的十个方法》,正文中根本没有“工作效率”四个字。 * **文档B**:标题《年度总结》,正文中恰好有一句“今年的工作效率基本没变”。 **检索流程演示:** 1. **语义检索(理解意图)**:虽然文档A没有匹配上“工作效率”这个词,但向量模型理解“提升工作效率”和“提高生产力”语义高度相似,因此给文档A打了高分(假设 **0.8分**)。 2. **关键词检索(精准匹配)**:文档B因为包含了“工作效率”这个精确词汇,在传统BM25打分中拿到了高分(假设 **0.6分**)。 3. **加权融合**:假设按照算法配置的融合权重进行计算: * 文档A最终得分:依赖较强的语义相关性,综合得分较高。 * 文档B最终得分:`0.6(分数) ×0.3(关键词权重) =
点赞
回复 取消回复
展开剩余 2 条回复
  ᶘ ᵒᴥᵒᶅ   2026年06月15日 22:38
引用原文:5.如何解决向量检索中的"语义漂移"问题?
语义偏移是啥
点赞
回复 取消回复
JIE 2026年05月19日 09:43
@派聪明 请问权限过滤怎么做的
点赞
回复 取消回复
wangx 2026年05月13日 19:30
引用原文:识别对话中的关键实体(人名、地名、概念等),建立实体库
@派聪明 这里具体是怎样实现的?
点赞
回复 取消回复
Coos 2026年04月25日 15:07
引用原文:使用 Apache Tika 来解析各种格式的文档
@派聪明 讲讲Apache Tika,为什么要用它,优缺点
点赞
回复 取消回复
tony0706 2026年04月18日 15:36
引用原文:别对话中的关键实体(人名、地名、概念等),建立实体库。
具体是如何做的
点赞
回复 取消回复
啊这 2026年04月17日 21:10
引用原文:考虑到上下文会越来越长,我们打算在下一版实现一个滑动窗口,比如只保留最近 10 轮对话,或者根据 token 数量动态调整。
@派聪明 根据token数量动态调整是什么意思
点赞
回复 取消回复
liweihao 2026年04月14日 20:51
引用原文: CSV 格式
@派聪明 CSV是什么
点赞
回复 取消回复
乐在其中~ 2026年04月14日 14:21
引用原文:当然,高维度意味着成本更高。 从技术实现角度,我们在 ES 的 knowledge_base.json 中也配置了向量字段为 2048 维,使用 cosine 相似度计算。这个配置与豆包的 embedding 模型完全匹配。
@派聪明 这个地方为什么都要使用2048维,如何不一样会怎么样
1
回复 取消回复
乐在其中~ 2026年04月14日 14:20
引用原文:从技术实现角度,我们在 ES 的 knowledge_base.json 中也配置了向量字段为 2048 维,使用 cosine 相似度计算。这个配置与豆包的 embedding 模型完全匹配
@派聪明 这个地方为什么都要使用2048维,如何不一样会怎么样
点赞
回复 取消回复

目录