首页/AI/提示词工程速查/假设文档检索(HyDE 思路)
模式与框架50 条

假设文档检索(HyDE 思路)

让模型先写一段“假设能回答问题的文档”,用它的向量去检索,再基于真实检索结果作答;用于短查询与长文档之间的语义鸿沟。

提示词工程速查AI更新于 2026-10-13

假设文档检索(HyDE)

HyDE 的思路是让模型先针对问题写一段「假设能回答这个问题的文档」,再用这段文字的向量去检索真实文档,最后只依据真实检索结果作答。它的作用在于弥合短查询与长文档之间的语义鸿沟:问题只有几个词,向量稀疏;一段假设文档的措辞、句式与真实资料更接近,检索命中率更高。

基本信息

原理假设文档与真实文档在语义空间更接近
两步问题 → 假设文档 → 检索 → 作答
边界假设文档仅用于检索,不能作为答案来源
不适用精确匹配类查询(订单号、错误码)

典型使用场景

  • 短问题检索长文档:用户只问一句,资料是几页说明
  • 跨领域术语对齐:用户用口语,资料用专业表述
  • 零样本检索:没有标注数据时提升召回
  • 多轮问答中的追问:追问往往很短,需要先扩展语义
  • 与查询改写互补:改写改文本,HyDE 造向量

两步结构

两步结构
第 1 步(问题 → 假设文档)
针对问题写一段 100-150 字的答案草稿,
只求语义接近,不要求事实正确。
语气与句式尽量贴近目标资料库的写作风格。

第 2 步(检索 → 作答)
用这段草稿的向量检索真实文档,
再「仅依据检索结果与引用」回答原问题;
检索结果不足时说明无法回答。

# 关键纪律:假设文档只进检索环节,绝不进答案环节

两步的职责与风险

环节职责风险
假设文档生成一段语义接近的草稿用于检索被误当作答案来源,输出编造内容
检索用草稿向量召回真实文档语料风格差异大时收益变小
作答仅依据检索结果与引用回答不声明依据来源时无法核对
适用判断短查询、语义鸿沟大的场景精确匹配类查询收益为负
HyDE 与查询改写解决的是不同问题:改写是换一套更好的查询文本,HyDE 是造一个新的向量。两者可以叠加,但叠加上线时要分开评估各自贡献,否则说不清收益来自哪一步。
带编号、错误码、人名这类精确匹配的查询,HyDE 会让检索偏向语义相近但实体不同的文档,效果往往不如直接检索。按查询类型分流使用更稳。

易错点

  • 把假设文档当答案来源,输出一段看起来合理却没有任何依据的内容,属于典型编造
  • 对订单号、错误码这类精确匹配查询也套用 HyDE,召回了语义相似但实体错误的文档
  • 假设文档的写作风格与目标语料差异过大,向量空间不接近,检索提升不明显
  • 两步同时上线且不分步评估,无法判断收益来自假设文档还是其他改动

数据来源与参考

  • Precise Zero-Shot Dense Retrieval without Relevance Labels(Gao et al., ACL 2023)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌