HyDE 了解下↓ #ai##程序员#
传统 RAG 和 HyDE(Hypothetical Document Embedding ) 方法区别
传统 RAG 系统的一个关键问题是**问题与答案之间的语义不相似**。
例如,当你想找类似 "What is ML?" 的句子时,"What is AI?" 的相似度可能比 "Machine learning is fun." 更高。
这种语义差异会导致在检索步骤中获取到许多不相关的上下文。
HyDE 方法可以很好地解决这个问题。
工作原理如下:
1. 使用大语言模型(LLM)为查询(Q)生成一个假设答案(H),不要求完全正确。
2. 使用对比学习训练的 Bi-Encoder(如 contriever 模型)对答案进行嵌入,生成 E。
3. 用嵌入 E 查询向量数据库,检索到相关上下文(C)。
4. 将假设答案 H、检索到的上下文 C 和原始查询 Q 一起传递给 LLM,生成最终答案。
虽然生成的假设答案可能包含“幻觉”(虚假的细节),但这不会严重影响性能,因为 contriever 模型在嵌入时会过滤掉虚假细节。
这个模型利用对比学习,作为一种无损压缩器,确保生成的嵌入比问题本身更接近真实文档的嵌入,从而提高检索性能。
HyDE 的优势:
- 研究表明,相比传统嵌入模型,HyDE 提高了检索性能。
不足之处:
- 延迟增加
- 需要更多 LLM 调用
ChatGPT
传统 RAG 和 HyDE(Hypothetical Document Embedding ) 方法区别
传统 RAG 系统的一个关键问题是**问题与答案之间的语义不相似**。
例如,当你想找类似 "What is ML?" 的句子时,"What is AI?" 的相似度可能比 "Machine learning is fun." 更高。
这种语义差异会导致在检索步骤中获取到许多不相关的上下文。
HyDE 方法可以很好地解决这个问题。
工作原理如下:
1. 使用大语言模型(LLM)为查询(Q)生成一个假设答案(H),不要求完全正确。
2. 使用对比学习训练的 Bi-Encoder(如 contriever 模型)对答案进行嵌入,生成 E。
3. 用嵌入 E 查询向量数据库,检索到相关上下文(C)。
4. 将假设答案 H、检索到的上下文 C 和原始查询 Q 一起传递给 LLM,生成最终答案。
虽然生成的假设答案可能包含“幻觉”(虚假的细节),但这不会严重影响性能,因为 contriever 模型在嵌入时会过滤掉虚假细节。
这个模型利用对比学习,作为一种无损压缩器,确保生成的嵌入比问题本身更接近真实文档的嵌入,从而提高检索性能。
HyDE 的优势:
- 研究表明,相比传统嵌入模型,HyDE 提高了检索性能。
不足之处:
- 延迟增加
- 需要更多 LLM 调用
ChatGPT