查询增强常用的方法有4种

查询增强常用的方法有4种,分别是创建假设问题、假设文档嵌入、子查询和回溯提示。

名称 说明 缺点 举例
创建假设问题

利用大语言模型(LLM)主动生成与用户原始查询语义相关但表述多样的“假设性问题”,将这些新问题与原查询合并后用于检索,从而提升召回率与答案质量。

这种方法通过直接参与查询到查询的搜索,绕过了向量搜索过程中的跨域不对称问题,减轻了向量搜索的负担。

在生成假设问题时引入了额外的开销和不确定性。

用户问:“怎么减压”
生成的假设问题:1. 有哪些科学验证的职场压力缓解方法?
2. 每天10分钟能有效减压的小技巧有哪些?
3. 冥想和深呼吸对缓解急性工作压力有效吗?

假设文档嵌入(HyDE)

利用 LLM 制作一个"假设文档"或虚假答案,以回应没有上下文信息的用户查询。然后,这个假答案会被转换成向量嵌入,并用于查询向量数据库中最相关的文档块。随后,向量数据库会检索出 Top-K 最相关的文档块,并将它们传送给 LLM 和原始用户查询,从而生成最终答案。

这种方法在解决向量搜索中的跨域不对称问题方面与假设问题技术类似。

增加了计算成本和生成虚假答案的不确定性。

用户问题:“量子计算在药物研发中有哪些应用?”
生成的假设文档:大模型可能会生成一段文字:“量子计算通过模拟分子结构和化学反应,在药物发现领域展现出巨大潜力。它能够精确计算蛋白质折叠,加速先导化合物筛选,为研发新药提供了强大的计算工具。例如,某制药公司已利用量子算法成功模拟了……”

子查询 当用户查询过于复杂时,可以使用 LLM 将其分解为更简单的子查询,然后再将其传递给向量数据库和 LLM。 增加了计算成本

用户会问"Milvus 和 Zilliz Cloud 在功能上有什么不同?"这个问题相当复杂,在知识库中可能没有直接的答案。为了解决这个问题,可以将其拆分成两个更简单的子查询:
子查询 1:"Milvus 有哪些功能?"
子查询 2:"Zilliz Cloud 有哪些功能?"

回溯提示 使用 LLM 将复杂的用户查询抽象为"回溯问题"**。然后,向量数据库利用这些回溯问题来检索最相关的文档块。最后,LLM 根据这些检索到的文档块生成更准确的答案。  

原始用户查询:"我有一个包含 100 亿条记录的数据集,想把它存储到 Milvus 中进行查询。可以吗?

为了简化这个用户查询,可以使用 LLM 生成一个更直接的回溯问题:"Milvus 可以处理的数据集大小限制是多少?"

文章内容来自于于对Milvus官方教程中高级RAG章节的部分总结,回溯提示这个看的似懂非懂的,先记录后续周边知识增加或许就明白了,todo

posted @ 2026-03-04 21:44  干瘪咸鱼  阅读(0)  评论(0)    收藏  举报