RAG的HyDE技术到底是什么
问RAG优化里经常提到HyDEHypothetical Document Embeddings说是能提升检索效果。这到底是什么技术适合什么场景有没有副作用答HyDE的核心思路是让大模型先“想象”一份回答用户问题的理想文档再用这份想象出来的文档去向量库里检索。而不是直接用用户的问题去检索。一、HyDE的工作原理传统RAG的检索流程是用户提问 → 将问题向量化 → 用问题向量在知识库中检索相似文档HyDE的检索流程是用户提问 → 让大模型生成一份假设的答案文档 → 将这份假设答案向量化 → 用假设答案向量在知识库中检索相似文档为什么多这一步反而有效因为问题和答案在向量空间里的位置往往不同。举个例子。用户问“采购金额超过多少需要总经理审批”这个问题的向量表示可能会靠近“采购”“金额”“总经理”“审批”这几个词的语义中心。而知识库里真正包含答案的文档片段是“采购金额超过50万元须经总经理审批签字。”“问题”和“答案”在向量空间里并不在同一个位置。用问题去检索可能只得到一堆包含“采购”和“审批”但没说出金额的文档。而用假设答案去检索——假设答案是“采购金额超过50万元需要总经理审批”——向量表示更接近真实答案文档的位置命中率更高。二、HyDE的适用条件HyDE不是所有场景都适用。它需要满足以下条件知识库文档是陈述性的——规章制度、操作规程、技术手册这类文档。如果知识库是聊天记录或会议纪要HyDE效果有限。问题的答案可以被“想象”出来——用户问“怎么请假”大模型能想象出一份包含请假流程的假设答案。如果问的是“昨天A客户的订单号是多少”大模型想象不出来。可以接受额外延迟——HyDE需要先调用大模型生成假设答案再执行检索。会增加一次模型调用通常延迟增加0.5-1秒。对实时性要求不高的场景如企业内部知识问答可以接受。三、两个常见副作用副作用一大模型“想象”出不存在的内容HyDE依赖大模型生成假设答案。如果大模型对某个领域不够了解它生成的假设答案可能与事实偏差较大。用这个偏差较大的假设答案去检索反而可能导致召回率下降。解决方案在生成假设答案时Prompt里写清楚“请基于你对XX领域的通用知识生成一份可能的答案如果不知道请诚实地说不知道”——减少模型“编造”的可能性。副作用二HyDE和Query改写不要同时用Query改写是把口语化问题转成书面化问句。HyDE是把问句转成假设答案。两者在一条检索链路里同时用中间那个环节出了问题会影响另一环的效果。FAQQHyDE适合所有RAG系统吗A不是。文档质量高、用户提问相对规范的场景如企业内部制度问答HyDE的边际收益很小——因为问题本身就能直接命中相关文档。文档结构松散、提问模糊的场景HyDE的收益更明显。QHyDE的假设答案会泄露给用户吗A不会。假设答案只用于检索不展示给用户。最终展示的答案是检索后基于真实文档生成的。一句话总结HyDE让大模型先“想象”一份答案再检索因为假设答案的向量比问题本身更接近真实答案的位置。适合结构松散的知识库和模糊提问场景但会增加一次模型调用延迟且不适合事实性问题。