深夜赶论文,你只记得一个模模糊糊的问题——“穿越火线到底讲什么”,却要找一本几百页的军事史。如果你直接用这个模糊问题去问图书管理员,他大概率一头雾水:是要游戏攻略、战术教材,还是战争史?问题太短,而书架上的书又长又具体,两者根本“对不上频道”。这时,一位聪明的助理站出来:他先根据你的模糊提问,快速写出两三百字的“参考答案”——假设这本书大概会怎么写——然后拿着这篇“假答案”去图书馆检索。管理员看到的是完整的段落、正式的行文,瞬间明白你要找的方向,精准带你到对应的书架。这个“先写一篇假答案,再用答案去查资料”的思路,就是今天的主角:HyDE(Hypothetical Document Embeddings,假设文档嵌入)。它用大语言模型把短查询扩写成“假设文档”,再把这份文档编码成向量去检索,不需要训练任何模型,即可显著提升零样本场景下的检索质量。
对 AI 从业者而言,HyDE 是 RAG 系统里成本最低、见效最快的召回增强利器——无需微调却能在新领域立刻提升检索命中率,是面试与实战中的高频考点。
可视化演示
展示HyDE方法:查询经LLM生成假设文档,向量化后进行密集检索,弥合查询-文档语义鸿沟,提升零样本召回质量。
本节配有交互动效(进入视口后自动加载,约 3KB)。
HyDE假设文档 查询输入短文本语义稀疏 假设文档向量化后更接近目标 Sim(hyde,doc)>Sim(query,doc) 零样本无需训练
语义鸿沟困境
深夜,你在图书馆前台比划:“我想找一本讲穿越火线的书。”管理员愣住了——“穿越火线”可能是一本游戏攻略、一本军事战史,又或者是某本小说的绰号?你的问题太短,而书架上的每本书都有完整的标题、目录和章节。问题与文档,一个像便条,一个像论文,两者之间的“信息落差”,就是检索领域常说的语义鸿沟。
在技术世界里,这种鸿沟表现为:用户查询通常只有几个词或一两句话,而目标文档动辄数百上千字。向量检索模型会试图把查询和文档都编码成向量,再计算相似度。但短查询的向量往往只覆盖很少的语义维度,内容高度稀疏;长文档则信息密集、覆盖广泛。两个向量的“方向”很难对齐,余弦相似度自然偏低。
更麻烦的是,查询和文档还经常使用不同的词汇。用户说“看病贵”,文档写的是“医保报销比例与自付费用结构”。字面上毫无重叠,语义上明明相关,传统的稀疏检索(如 BM25)或单纯字面匹配的向量检索都会在这里失效。这正是传统检索系统的典型短板:它理解不了“表面不同、内在相同”的表述。
回到图书馆的比喻:管理员只靠一张“便条”去对“整本书”,自然举步维艰。真正有效的办法,是先把便条扩写成一篇“像书一样的短文”——这正是 HyDE 要做的事。
- 查询向量入场用户查询被编码为向量,记为 \(q=(q_1,q_2,\ldots,q_n)\),每个维度代表一个语义特征。
- 文档向量对应文档被编码成同维度的向量 \(d=(d_1,d_2,\ldots,d_n)\),但其取值来自长文本,覆盖的语义方向更多。
- 分子对齐\(\displaystyle \sum_{i=1}^{n} q_i d_i\) 计算两个向量在各维度上的对齐强度,共同方向越多,分子越大。
- 分母归一化分母 \(\displaystyle \sqrt{\sum q_i^{2}}\sqrt{\sum d_i^{2}}\) 消除长度差异,只保留方向信息。
HyDE核心思想
那位聪明的助理没有继续向管理员解释“穿越火线”是什么,而是转身坐到桌前,花两分钟写出一篇三百字的短文:“本报告旨在梳理穿越火线这一战术概念在近代战争中的应用,重点分析其火力配置与阵地布置……”然后把这篇文章交给管理员。管理员一看就懂:哦,你要的是军事史资料!先写答案,再查资料,这就是 HyDE 的灵魂。
技术上,HyDE 借助大语言模型(LLM)完成这一步。它把用户查询 \(q\) 和一段指令(prompt)一起喂给 LLM,让模型生成一段“假设性答案文档”。这段文档不需要是事实准确的,它只需要具备两个特征:长度和风格接近目标文档,内容围绕查询的核心语义展开。为了让生成的文档更多样,实践中通常会使用较高的采样温度多次生成,再取平均向量。
你可能会问:为什么不直接让 LLM 回答用户问题,而要生成“文档”?因为 HyDE 的目标不是回答,而是建模——它要模拟“一篇真正相关的文档长什么样”。当假设文档与真实文档在语义空间中的分布接近时,用假设文档的向量做检索,就好比拿着“同类物品的照片”去找同款,比捏着几个关键词靠谱得多。而且整个过程中,检索模型本身完全不动,只是查询侧换了一个更“懂行”的输入。
助理的“范文”写完后,真正的检索才刚刚开始——接下来要解决的是:怎样把这篇范文变成图书馆里可用的“索书号”。
- 原始查询\(q\) 表示用户输入的短查询,例如“穿越火线”。
- 大模型生成器\(\mathrm{LLM}\) 代表大语言模型,它根据输入文本续写出风格自然的长段落。
- 指令约束提示中的“指令”要求模型输出“一段报告式文档”,而不是一句简短回答。
- 假设文档输出生成结果 \(q_{\text{pseudo}}\) 是一段完整段落,语义上贴近目标文档的分布。
编码检索流程
助理拿着写好的范文走到编目室,把它交给负责查索引的管理员。管理员并不直接朗读范文,而是先用一套编目规则(编码器)把范文压缩成一串数字“指纹”,再拿着指纹去比对全馆文档的指纹数据库。指纹相近的书,就按接近程度排好序输出。整个过程行云流水,前后不过几秒。
在 HyDE 中,这套“编目规则”就是嵌入编码器 \(E(\cdot)\)。它把文本映射为稠密向量。假设文档 \(q_{\text{pseudo}}\) 被编码成查询向量 \(E(q_{\text{pseudo}})\),文档库 \(D\) 中的每篇文档 \(d\) 也早已被编码成向量 \(E(d)\)。接下来计算余弦相似度,取出相似度最高的 Top-K 篇文档。这里的 K 通常取 10~20,后续可以由重排序模型进一步精排。
有趣的是,HyDE 在真实系统中经常与传统的 BM25 结合使用:BM25 负责字面精确匹配,HyDE 负责语义模糊匹配,两者结果合并后再排序。这种“双路召回”策略在实践中非常稳健。由于假设文档已经天然具备长文本的语义密度,它的向量在文档空间中往往能“落”在正确的区域附近,从而把原本被漏掉的相关文档捞回来。
范文成了“索书号”,检索系统顺利找到了对应的书架。更重要的是,整个过程不需要改变编目规则——这正是 HyDE 零样本特性的起点。
- 假设文档编码用编码器 \(E\) 把假设文档 \(q_{\text{pseudo}}\) 转为稠密向量。
- 文档向量库文档库中每篇文档 \(d\) 同样被编码为向量,构成候选集合 \(\mathcal{D}\)。
- 余弦相似度\(\displaystyle \cos\big(E(q_{\text{pseudo}}), E(d)\big)\) 计算两向量夹角,数值越大越相似。
- 取最大值\(\arg\max\) 在全部文档中挑出相似度分数最高的那篇。
零样本优势
如果每次换一座图书馆,都得重新培训一批管理员,那代价就太高了。HyDE 的聪明之处在于:它不需要换管理员,也不需要培训,只需要助理临时写一篇范文。 无论你走进的是军事图书馆、医学资料库还是商业档案馆,助理都能用他的通用知识写出对应风格的范文,而管理员原有的编目规则照常使用。
这种“不训练直接用”的能力,被称为零样本(zero-shot)密集检索增强。传统做法中,要让检索模型适配一个新领域,通常需要收集大量的“查询-相关文档”标注对来微调模型;而在政策、医学等专业领域,标注数据往往稀缺且昂贵。HyDE 直接绕过了这一步:大语言模型本身就积累了海量文本知识,能够生成与目标领域风格相近的假设文档;检索编码器则是通用的,不需要为新领域做任何参数调整。
为什么能做到零样本?核心在于 HyDE 把“领域适配”的任务转移给了 LLM 的生成能力,而不是检索模型的参数。LLM 读过无数政策报告、医学文献、商业分析,它知道这些文档“长什么样”。当它生成的假设文档在风格和内容上都接近目标文档时,通用编码器自然能把两者映射到相近的向量区域,从而在零训练的前提下获得接近有监督方法的召回水平。
零样本带来极大的工程便利,但这份“便利”是有代价的——范文写得好,检索如虎添翼;范文写偏了,检索就可能南辕北辙。
- 初始参数\(\theta_{0}\) 表示预训练好的通用编码器参数。
- 检索后参数\(\theta^{*}\) 表示完成 HyDE 检索后的编码器参数,与初始值完全相同。
- 零更新量\(\Delta\theta = 0\) 表示整个流程没有任何梯度更新或微调。
- 零样本含义参数的零变化意味着可以随时在任意新领域“即插即用”。
效果与局限
助理不是万能的。有一次,你问的是“量子计算对密码学的影响”,助理却把范文写成了“量子健康养生与磁场疗法”,管理员拿着这篇范文满图书馆找保健类书籍,完全跑偏。假设文档的质量,直接决定了 HyDE 检索效果的上限。 如果 LLM 生成的假设文档与目标文档分布相差太大,检索效果甚至不如直接用短查询。
这种“假设偏差”是 HyDE 最核心的风险。此外,HyDE 还有两个明显的工程代价:一是每次查询都要调用 LLM 生成文档,带来额外的推理延迟和 token 开销;二是生成质量高度依赖 LLM 本身的领域知识,如果 LLM 对某个专业领域一无所知,它生成的“范文”只是空话套话,对检索毫无帮助。因此,是否需要使用 HyDE,必须先判断查询的特性和文档库的形态。
从分布角度看,假设文档的语义分布 \(P_h\) 与目标文档的真实分布 \(P_d\) 之间的差距,可以用 KL 散度来度量。当两者分布接近时,HyDE 的优势最为明显;当分布偏移过大,KL 散度升高,检索精度随之下降。这提醒我们:HyDE 不是“万能药”,而是一种需要根据场景判断是否使用的工程技巧。
理解了假设偏差的代价,我们就能更理性地选择 HyDE 的适用场景——那些查询模糊、文档规范、缺乏标注数据的领域,正是它的最佳舞台。
- 真实分布\(P_{d}(x)\) 表示目标文档在语义点 \(x\) 上的分布概率。
- 假设分布\(P_{h}(x)\) 表示 LLM 生成的假设文档在 \(x\) 上的分布概率。
- 逐点对数比\(\displaystyle \log \frac{P_{d}(x)}{P_{h}(x)}\) 衡量同一个语义点上的分布差异,差异越大值越大。
- 加权求和对所有语义点按真实分布加权求和,得到总差异;散度越大,HyDE 检索越容易失效。
典型应用场景
助理的“范文库”里存着各行各业的写作模板:写政策报告像政策研究员,写医学综述像医学编辑,写竞品分析像商业分析师。每当你遇到一个模糊问题,他都能按对应领域的口吻先写一篇范文,再拿去检索。这种“见人说人话”的能力,让 HyDE 在多个专业场景中落地生根。
政策评估是 HyDE 的典型舞台。政策研究者经常需要检索历史政策文件,但他们手中的线索往往只是一句模糊表述,比如“老旧小区改造的绩效如何”。政策文件的行文高度规范,包含大量专业术语,短查询和文件正文之间存在严重的词汇断层。HyDE 生成一段“政策评估式”的假答案后,检索系统能立刻锁定相关文件,大大提升调研效率。
医学文献检索同样受益。医生或科研人员提出“PD-1 抑制剂在肺癌中的副作用”,而医学文献的标题和摘要行文严谨、信息密度高。HyDE 把口语化查询改写为“医学论文摘要式”的假设文档,再用向量检索召回相关临床试验。商业决策中,分析师用“新能源市场格局变化”这类模糊问题检索行业报告,HyDE 同样能通过生成“商业分析式”文档来提升召回率。在 RAG 问答系统中,HyDE 常被用作召回阶段的前置增强模块。
无论是政策文件、医学论文还是行业报告,HyDE 都能用“一篇假答案”撬动整个文档库。它用一种极其朴素的方式,绕过了多年来困扰检索领域的语义鸿沟问题。
- K 的含义\(K\) 表示系统一次返回的候选文档数量。
- 分子计数分子统计前 K 篇结果中真正与用户需求相关的文档篇数。
- 比值计算分子除以 K,得到召回率的直观度量。
- 评估意义Recall@K 越高,说明相关文档越容易被“捞”进前 K 条,检索系统越可靠。
AI 应用场景
政策研究员的历史文件检索
阶段:RAG 中的召回前置增强
解决的问题:政策研究员手头只有一句模糊的工作要求,比如“老旧小区改造的实施效果”,但目标文档是数千份行文规范、术语密集的政策文件。传统关键词检索因词汇断层而大量漏检;人工翻阅又耗时巨大。HyDE 先用 LLM 生成一段“政策评估意见式”的假设文档,再以其向量检索政策库,显著提升相关文件的召回率。
具体案例:某政策评估团队在撰写“十四五”城市更新评估报告时,需要对 2015 年以来的地方政策文件做全面检索。他们用 HyDE 为每个评估问题生成假设文档,再结合 BM25 双路召回,将相关文件的召回率从 41% 提升到 68%,节省了约三个工作日的案头调研时间。
医学研究者的零样本文献探索
阶段:医学文献检索与知识库构建
解决的问题:医学文献数量庞大且专业术语密集,研究者常用的口语化查询(如“靶向药耐药机制”)与论文摘要之间存在显著语义鸿沟。且医学检索领域标注数据稀缺,微调成本极高。HyDE 无需训练即可投入新课题的文献检索,快速建立初步文献地图。
具体案例:某肿瘤研究团队探索“PD-1 抑制剂耐药”这一新兴议题时,使用 HyDE 构建检索管线,从 PubMed 的 3 万篇候选文献中高效筛出 120 篇核心论文,帮助团队在两天内完成文献综述初稿,而传统方法通常需要两周。
商业智能中的竞品情报收集
阶段:商业报告检索与摘要生成
解决的问题:商业分析师想了解“新能源汽车价格战对供应链的影响”,但行业报告、新闻稿和券商研报的表达方式千差万别。HyDE 生成一段“行业分析式”的假设文档,将模糊的战略问题转化为报告风格的长文本,提升跨来源信息的检索一致性。
具体案例:某咨询公司为新能源汽车客户做供应链风险分析,用 HyDE 增强内部知识库检索,将原先分散在 500 份报告中的相关信息快速聚拢,形成了结构化的竞品情报周报。
Python 演示
# -*- coding: utf-8 -*-# 一个极简 HyDE 流程演示: 模拟 LLM 生成假设文档, 再做向量检索import math class CharBigramEmbedder: """字符二元组编码器: 把中文文本转成规范化向量""" def __init__(self, corpus_texts): self.vocab = {} for text in corpus_texts: for i in range(len(text) - 1): g = text[i:i + 2] if g not in self.vocab: self.vocab[g] = len(self.vocab) def embed(self, text): vec = [0.0] * len(self.vocab) for i in range(len(text) - 1): g = text[i:i + 2] if g in self.vocab: vec[self.vocab[g]] += 1.0 norm = math.sqrt(sum(v * v for v in vec)) return [v / norm for v in vec] if norm else vec def cosine(a, b): return sum(x * y for x, y in zip(a, b)) # 模拟大模型: 把短查询扩写成一段"假设答案文档"def fake_llm_answer(query): return ( "关于{}的调研显示, 医保报销比例调整后, " "患者自付费用明显下降, 建议查阅相关报告." ).format(query) CORPUS = [ "医保局公布试点城市报销比例提升, 参保人自付费用显著下降", "靶向药物三期临床数据表明患者无进展生存期延长", "新能源汽车渗透率突破百分之四十, 行业竞争格局生变", "检索增强生成综述: 大模型外挂知识库的架构与测评方法",] EMB = CharBigramEmbedder(CORPUS)DOC_VECS = [EMB.embed(d) for d in CORPUS] QUERY = "医疗支出减少"HYPOTHETICAL = fake_llm_answer(QUERY) # 对比直接检索与 HyDE 检索的 Top-2 结果print("=== 直接检索(短查询) ===")direct = sorted([(cosine(EMB.embed(QUERY), v), i) for i, v in enumerate(DOC_VECS)], reverse=True)[:2]for s, i in direct: print("{:.3f} {}".format(s, CORPUS[i])) print("=== HyDE 检索(假设文档) ===")hyde = sorted([(cosine(EMB.embed(HYPOTHETICAL), v), i) for i, v in enumerate(DOC_VECS)], reverse=True)[:2]for s, i in hyde: print("{:.3f} {}".format(s, CORPUS[i]))
class CharBigramEmbedder:定义一个极简向量化器,把中文文本按相邻字符拆成特征,模拟真实嵌入模型。self.vocab[g] = len(self.vocab)构建“字符二元组”词典,这是向量维度的来源。norm = math.sqrt(sum(v * v for v in vec))计算向量长度,用于归一化,使余弦相似度只反映方向。def fake_llm_answer(query)模拟大模型:根据短查询生成一段“报告式”假设文档。QUERY = "医疗支出减少"短查询文本,与文档库没有任何字面重叠词。HYPOTHETICAL = fake_llm_answer(QUERY)生成假设文档,其中包含“报销比例”“自付费用”等与目标文档重叠的词。direct = sorted(...)[:2]对短查询向量与所有文档向量求余弦相似度,取前 2 名,观察漏检情况。hyde = sorted(...)[:2]改用假设文档向量检索,验证 HyDE 是否成功找回相关文档。
常见误区
误区HyDE 效果这么好,肯定要在专门的文档库上做微调吧?就像每个新项目都要先训一个检索模型,否则怎么保证效果?
正解恰恰相反,HyDE 的灵魂就是“零训练”。流程中唯一的主体是已有的 LLM 和现成的文本编码器,两者参数全程不变。LLM 负责生成假设文档,编码器负责把文档映射成向量,整个流程像一个即插即用的插件。它之所以能在新领域生效,靠的是 LLM 预训练时积累的通用知识,而不是针对当前文档库的额外学习。若真要“训练”,那训练的是你对提示词的设计能力。
为何常见:机器学习领域“效果好 = 需要训练”的思维定势太强,大家默认一个方法要适配新领域就必须更新参数,忽略了生成端增强的可能性。
误区HyDE 让大模型生成了一段答案文档,那用户问的问题,直接把这篇文章返回不就行了?何必还要去检索?
正解假设文档在 HyDE 中只是“检索的钥匙”,不是“开门的房间”。它由 LLM 生成,可能是编造的、过时的、不准确的,绝不能当作事实答案返回。真正的答案必须是文档库中真实存在的文档内容。HyDE 的做法很克制:LLM 负责“猜一个方向”,检索器负责“找到真实材料”,两者各司其职。把假设文档直接返回用户,等于放弃了对事实的校验。
为何常见:因为 LLM 生成的文本读起来很流畅自然,人们容易把它和真实检索结果混为一谈,忽略了生成内容与库中文档的本质区别。
误区既然短查询语义不够,那就让大模型生成越长越详细的假设文档,信息越丰富,检索应该越准吧?
正解过长的假设文档会稀释核心语义,引入大量与目标文档无关的噪声;同时 token 开销爆炸式增长,每次查询都变得昂贵。理想情况下,假设文档的长度、格式和用词风格应尽量贴近目标文档的真实形态——如果库中的文档平均 300 字,就生成 300 字左右的段落;如果文档是结构化摘要,就生成摘要风格。盲目追求长度,只会让向量“漂”到无关语义区域。
为何常见:直觉上“信息越多越好”,但向量检索的相似度计算受方向影响,多余信息会拉扯向量方向,反而让目标文档失焦。
误区只要给所有查询都加上 HyDE,召回效果一定全面提升,反正又不用训练,何乐而不为?
正解HyDE 并非万能。对于关键词明确、字面匹配充分的查询——比如“Python 列表去重方法”——短查询本身就能命中目标文档,再用 HyDE 反而增加延迟和成本。此外,如果底层编码器质量一般,或目标领域的文档风格极端特殊(如代码仓库、表格数据),假设文档未必能带来增益。工程上应该先用简单检索做基线,再评估 HyDE 的边际收益,而不是无条件引入。
为何常见:看到零样本、免训练的优点后容易“一招鲜”思维,忽略了检索问题本身的多样性和场景适配判断的必要性。
面试题
Q1. HyDE 的核心创新是什么?
- A.用更长的查询词替换原查询
- B.用大模型生成假设答案文档← 正确答案
- C.对文档库进行无监督聚类
- D.用小模型压缩全部文档
答案:B。HyDE 的关键是让大模型根据短查询生成一段“假设答案文档”,再以这段文档作为检索输入。A 只是“加词”的朴素想法,C 和 D 与 HyDE 无关。B 准确描述了“先写假答案再检索”的创新点。
Q2. HyDE 中用向量做检索时,查询侧输入是什么?
- A.原始查询编码向量
- B.假设文档编码向量← 正确答案
- C.文档平均编码向量
- D.查询词频编码向量
答案:B。HyDE 将生成的假设文档输入编码器,得到查询向量。原始查询向量和词频向量都太短太稀疏,文档平均向量则与具体查询无关。只有假设文档向量兼具“查询语义”和“文档形态”,是最合适的桥梁。
Q3. 短查询直接做向量检索效果不佳的根本原因是什么?
- A.查询向量包含太多噪声维度
- B.查询与文档的语义分布不一致← 正确答案
- C.文档编码器过于复杂
- D.文档库规模通常太大
答案:B。短查询信息量少,其向量所在的语义分布与长文档差异巨大,两者方向难以对齐。这不是噪声维度多或文档库规模的问题,而是查询和文档之间天然存在的“语义鸿沟”。
Q4. HyDE 的主要流程包含下列哪些步骤?
- A.大模型生成假设答案文档← 正确答案
- B.对假设文档执行向量编码← 正确答案
- C.与文档向量计算相似度← 正确答案
- D.对编码器进行反向传播调参
答案:ABC。HyDE 的三步是:生成假设文档、编码为向量、与文档向量计算相似度。D 是传统微调检索模型的做法,属于 HyDE 明确避免的步骤,因此错误。
Q5. HyDE 的“零样本”特性指的是什么?
- A.不需要任何大语言模型
- B.检索模型无需针对语料训练← 正确答案
- C.文档库中不存在任何样本
- D.查询不需要经过向量化
答案:B。零样本指在目标语料上没有任何标注训练的情况下,检索编码器参数不发生任何更新,即可直接使用。A 错误,HyDE 恰恰依赖大模型;C、D 则是对零样本的曲解。
Q6. 假设文档在 HyDE 中扮演的角色是什么?
- A.充当返回给用户的最终答案
- B.充当查询与文档之间的桥梁← 正确答案
- C.替换文档库中的真实文档
- D.充当训练用的标注数据
答案:B。假设文档是检索的“中间钥匙”,它的用途是弥合短查询与长文档的语义鸿沟,而不是直接作为答案返回,更不会替换文档库。它也不是训练数据,因为 HyDE 不需要训练。
Q7. 下列哪些属于 HyDE 的已知局限?
- A.生成质量差会导致假设偏移← 正确答案
- B.需要额外的大模型推理开销← 正确答案
- C.无法消除编码器自身缺陷← 正确答案
- D.只能用于英文检索场景
答案:ABC。HyDE 的效果受限于 LLM 生成质量,并带来额外推理成本;底层编码器的质量同样决定上限。D 错误,HyDE 的机制不依赖语言,中英文等场景都适用。
Q8. 你在为“2023 年欧洲能源价格波动与新能源转型关系”撰写政策简报,文档库是英文政策文献。使用 HyDE 最恰当的指令是?
- A.让模型罗列与主题无关的随性联想
- B.让模型用英文写一段可被文献引用的综述式答案← 正确答案
- C.让模型把查询翻译成中文长句再检索
- D.让模型直接输出文档库中的最佳标题
答案:B。HyDE 的假设文档应在语言和风格上与目标文档一致,选项 B 生成英文综述式段落,最贴近政策文献形态。A 无意义,C 改变语言造成错配,D 让模型“偷看”文档库,违背假设文档的生成原则。
Q9. 在 RAG 系统中,HyDE 通常被用在哪个阶段?
- A.文档切分阶段
- B.前置召回增强阶段← 正确答案
- C.大模型采样阶段
- D.答案评估阶段
答案:B。RAG 分“召回-重排-生成”三段,HyDE 属于召回阶段的前置增强模块:先改写查询、再检索。它不参与文档切分、采样和评估环节。
Q10. 下列哪些场景适合引入 HyDE?
- A.用户查询模糊但目标文档表述规范← 正确答案
- B.新领域无标注数据且需快速上线检索← 正确答案
- C.短查询引发语义鸿沟的开放域问答← 正确答案
- D.关键词完全匹配即可满足的数据库查询
答案:ABC。HyDE 擅长处理模糊查询、零样本迁移和语义鸿沟问题,A、B、C 三种场景都能发挥优势。D 中关键词精确匹配的数据库查询用传统方法效率更高,引入 HyDE 反而徒增成本。