🧑💻 面试官:HyDE 为什么要让模型先写一段“可能的答案”,再去搜索?
🙋♂️ 我:问题比较短,生成文档以后,检索内容会更丰富。
🧑💻 面试官:它先编了一条不存在的制度,那搜索不是更容易跑偏吗?
🙋♂️ 我:有这个风险,假设文档只能帮助检索,不能作为答案证据。
🧑💻 面试官:那你怎样确认它是在补足语义,而不是把问题带到另一个方向?
HyDE 的关键是「检索中介,不是事实来源」:先生成的内容用来找真实文档,不能因为它写得完整就直接交给用户。
面试速答(60 秒版)
HyDE 是 Hypothetical Document Embeddings,也就是假设文档嵌入。它先让大模型根据问题生成一段假设性的相关文档,再把这段文档转成向量,用来检索真实资料。
这样做可能有帮助,是因为用户的问题往往很短,而资料里的表达更完整。生成一段相关描述,可以让检索输入更接近文档的写法。
不过,假设文档可能包含错误细节,也可能引导检索偏离用户的问题。因此,它只是检索用的中间材料,最终答案必须依据真正取回的资料。
实际使用时,需要和直接问题检索作对照,检查证据召回是否改善,以及新增的生成延迟是否值得。型号、编号或明确条款这类问题,不一定需要先生成假设文档。

知识点详解:一段可能不真实的文档,为什么还能用来搜索?
问题和资料,可能用着不同的表达
假设用户问:“出差多住了一晚,这笔钱怎么报?”
公司的制度里可能写的是“行程延期”“额外住宿费用”“审批证明”。用户没有使用这些词,但问题与条款讨论的是同一类事情。
直接用问题向量检索,本来就有机会找到它;如果效果不好,HyDE 提供了另一条路线:先生成一段可能出现的制度说明,再用它的表示去找真实制度。
这里的假设文档可以包含“延期原因、住宿费用、审批”等语义。它的作用是提供一个更接近资料的检索输入,不是替公司制定报销政策。
从生成到回答,中间有两种不同材料
HyDE 原论文提出的基本过程,是生成假设文档、编码成向量,再到实际语料中寻找邻近文档。作者的实现可以用来核对这一流程。
咱们把它放回报销问题,可以看到以下顺序:
- 用户提出问题,保留原始条件。
- 模型生成一段假设性相关文档。
- 检索模型把假设文档转成向量。
- 用向量找公司知识库里的真实片段。
- 根据真实片段回答,并给出出处。
第二步的材料与第四步的资料,身份完全不同。第二步可以不真实;第四步才需要符合当前版本、权限和来源要求。
因此,应用最好把假设文档放在单独字段里,不和正式证据混在一起。回答模型如果能看到它,也必须明确知道它不是政策依据。更简单的做法是只在检索阶段使用,不把它作为回答证据传入。
生成得更丰富,也可能偏得更远
如果模型在假设文档里写了“延期两天以内不需要审批”,这个条件可能根本不存在。
接下来,检索就可能被“免审批”这类内容影响,找到不适用于当前问题的片段。问题虽然没变,检索入口却已经多了一条模型补出的限制。
因此,不要把“向量编码会过滤错误细节”理解成保证。即使编码保留了总体语义,错误假设仍然可能影响方向。
针对这类风险,可以保留直接问题检索作为另一条候选通道,再比较结果;也可以限制假设文本只描述问题主题,避免补入金额、期限和政策结论。但这些做法也需要验证,不能靠提示词一句话就认定偏移消失了。

哪些问题值得尝试,哪些不必绕这一圈?
口语问题和专业资料之间存在明显表达差距时,可以尝试 HyDE。例如用户说“多住了一晚”,文档说“行程延期产生的住宿费用”。
如果用户已经给出报销单编号、准确错误码或具体条款名,精确匹配与直接检索通常应该先做好。把准确编号扩写成一段通用说明,反而可能弱化最有用的线索。
因此,这不是“所有查询先生成一次”的标准流程。可以按问题类型启用,也可以只在直接检索效果不足时尝试。
怎么判断改善不是偶然?
准备相同的问题集与正确证据,比较直接检索和 HyDE 检索。保持知识库、向量模型、候选数量和回答要求一致。
分别统计相关证据是否找到、假设文本是否带偏,以及最终回答有没有引用假设内容。还要检查新增的一次模型调用,带来了多少等待和费用。
如果平均召回上升,但明确编号题变差,就不能只看总平均。可以只把它用于受益的那组问题。
面试官继续追问
HyDE 和查询改写有什么区别?
查询改写通常仍然产出搜索问题或关键词,HyDE 产出的是假设性文档,再用文档表示检索。它们都可能改善表达,也都可能偏离原条件,但中间材料的形式与用途不同。
能不能直接把假设文档作为最终答案?
不能把它当成已确认的知识库事实。那样就跳过了检索与证据验证,变成让模型根据自身知识猜答案。
多生成几份假设文档,会不会更好?
可能增加覆盖,也可能增加噪声、延迟和相似重复。需要明确如何编码、融合和筛选,再和一份文档及直接检索作对照,不按数量判断质量。
面试速记卡
- HyDE:生成假设文档,编码后检索真实语料。
- 可能收益:缩小短问题与完整文档之间的表达差距。
- 主要风险:模型补出的条件可能带偏搜索。
- 证据边界:假设文本用于检索,真实资料用于回答。
- 使用依据:按题型比较召回、偏移、延迟与费用。
