RAG

RAG优化技术:HyDE

HyDE(Hypothetical Document Embeddings,假设性文档嵌入) 是一种创新的 RAG 增强技术。它的核心思想是:不要让用户问题直接去匹配答案,而是先让大模型“想象”一个假设的答案,然后用这个“假设答案”…

TL;DR

HyDE(Hypothetical Document Embeddings,假设性文档嵌入) 是一种创新的 RAG 增强技术。它的核心思想是:不要让用户问题直接去匹配答案,而是先让大模型“想象”一个假设的答案,然后用这个“假设答案”…

HyDE(Hypothetical Document Embeddings,假设性文档嵌入) 是一种创新的 RAG 增强技术。它的核心思想是:不要让用户问题直接去匹配答案,而是先让大模型“想象”一个假设的答案,然后用这个“假设答案”去知识库中寻找最相关的真实文档。 它主要解决的问题是: - 词汇不匹配:用户的查询用语和知识库中文档的用语可能完全不同,尽管它们语义相似。 - 用户问:“感觉心情持续低落,对什么都提不起兴趣,怎么办?” - 知识库有:“重度抑郁障碍的临床表现与治疗策略”。 - 虽然两者高度相关,但直接基于字面相似度的检索可能无法匹配。 - 问题过于简短或模糊:用户的问题可能很短,缺乏足够的上下文信息,导致检索系统难以理解其真实意图。 传统 RAG 是 “问题 -> 检索 -> 答案” 的流程,而 HyDE 在其中增加了一个关键的“想象”步骤。 这听起来有点反直觉,但效果竟然还不错!?

HyDE的工作流程

第一步:生成假设答案 - 收到用户的原始查询后,不直接进行检索。 - 而是先将查询发送给LLM,并要求它生成一个假设性的、高质量的答案。 PS:这个答案是基于模型自身的知识“编造”的,它可能正确,也可能不准确或包含事实错误。我们并不关心它的正确性,只关心它的语义和风格。 比如用户想要查询:“如何给自行车链上油?” LLM 生成的假设答案:“给自行车链上油是一个简单的维护任务,可以显著提升骑行体验并延长链条寿命。首先,您需要准备专用的自行车链条油和一块干净的布。然后将自行车档位调到中间,以便可以顺畅地转动踏板,让链条移动。接着,在链条的每个关节处滴上少量的油,同时缓慢地倒转踏板,确保油均匀分布。最后,用布擦去链条上多余的油,防止吸附灰尘。” (注意:这个回答完全是模型自己“想”出来的,可能漏掉关键步骤或推荐了错误的产品,但这没关系!) 第二步:用假设答案进行检索 - 拿到上一步生成的“假设答案”后,我们将其转换成一个向量。 - 用这个“假设答案”的向量(而不是用户原始问题的向量)去向量数据库中进行相似度搜索,找出最相关的文档片段。 因为“假设答案”通常比原始问题更长、包含更多相关的关键词和上下文。例如,它包含了“链条油”、“倒转踏板”、“擦去多余的油”等具体术语,这些术语更有可能与知识库中正确的指导文档匹配。 而且“假设答案”的文本风格与知识库中的真实文档风格可能是一致的,而用户问题则未必。这使得向量相似度计算更加精准。 第三步:合成最终答案 - 检索系统返回一组与“假设答案”高度相关的真实、可靠的文档片段。 - 将这些真实文档和用户的原始问题一起交给 LLM,让它生成一个事实准确、有据可循的最终答案。

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。