前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【RAG论文】HyDE:Precise Zero-Shot Dense Retrieval without Relevance Labels

【RAG论文】HyDE:Precise Zero-Shot Dense Retrieval without Relevance Labels

作者头像
致Great
发布于 2024-11-23 02:54:49
发布于 2024-11-23 02:54:49
12800
代码可运行
举报
文章被收录于专栏:自然语言处理自然语言处理
运行总次数:0
代码可运行

paper:https://arxiv.org/pdf/2212.10496 code:https://github.com/texttron/hyde

这篇文章主要做zero-shot场景下的稠密检索,通过借助LLM的力量不需要Relevance Labels,开箱即用。作者提出Hypothetical Document Embeddings (HyDE)方法,即“假设”文档嵌入。具体的做法是通过GPT生成虚构的文档,并使用无监督检索器对其进行编码,并在其嵌入空间中进行搜索,从而不需要任何人工标注数据。

模型结构如下图所示,HyDE将密集检索分解为两个任务,即 instruction-following的LM生成任务和对比编码器执行的文档相似性任务。

  • 首先生成一个问题的答案对于给定一个query,将由InstructGPT生成一个能回答该query的假设文档,即a hypothetical document。
  • 使用生成的答案进行检索:使用无监督的稠密检索模型(Contriever)把该文档表示为稠密向量。
  • 最后基于最近邻从语料库中找到相似的文档,作为支撑信息然后进行问答。

实现

https://github.com/gomate-community/GoMate/blob/main/gomate/modules/rewriter/hyde_rewriter.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
from tqdm import tqdm
import os
from gomate.modules.generator.llm import GLMChat
from gomate.modules.retrieval.dense_retriever import DenseRetriever, DenseRetrieverConfig
from gomate.modules.rewriter.base import BaseRewriter
from gomate.modules.rewriter.promptor import Promptor
from gomate.modules.document.common_parser import CommonParser

class HydeRewriter(BaseRewriter):
    def __init__(self, promptor, generator, retriever):
        self.promptor = promptor
        self.generator = generator
        self.retriever = retriever

    def prompt(self, query):
        return self.promptor.build_prompt(query)

    def rewrite(self, query):
        prompt = self.promptor.build_prompt(query)
        hypothesis_document, _ = self.generator.chat(prompt, llm_only=True)
        return hypothesis_document

    def retrieve(self, query, top_k=5):
        hypothesis_document = self.rewrite(query)
        hits = self.retriever.retrieve(hypothesis_document, top_k=top_k)
        return {'hypothesis_document': hypothesis_document, 'retrieve_result': hits}

检索效果对比:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RAG (Retrieval-Augmented Generation) 教程
在自然语言处理(NLP)领域,生成式 AI(如 GPT-4)在文本生成方面表现优异,但其主要依赖于预训练的知识,无法动态获取最新信息。为了解决这一问题,RAG(检索增强生成,Retrieval-Augmented Generation)应运而生,它结合了信息检索(IR)与文本生成(NLG)技术,使得 AI 可以利用外部知识库,提高回答的准确性和可解释性。
IT蜗壳-Tango
2025/03/31
6550
【RAG入门必备技能】Faiss框架使用与FaissRetriever实现
faiss是一个Facebook AI团队开源的库,全称为Facebook AI Similarity Search,该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可靠的相似性聚类和检索方法,可支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库
致Great
2024/06/06
2.9K0
【RAG入门必备技能】Faiss框架使用与FaissRetriever实现
DMQR-RAG: 基于多样化查询重写的检索增强生成
论文链接:https://openreview.net/pdf?id=lz936bYmb3
致Great
2024/11/23
2540
DMQR-RAG: 基于多样化查询重写的检索增强生成
👾打开 RAG 对接大模型的黑盒 —— 9 大隐藏问题
前一段时间,各个大模型在争斗:谁能携带更长、更大的上下文 Prompt,比如 Kimi 说 200 万字,阿里通义千问又说自己能达 1000 万字;大家都知道 Prompt 很重要,但是 RAG 和 长的上下文文本携带 是两个不同的技术方向。
掘金安东尼
2024/04/04
4510
👾打开 RAG 对接大模型的黑盒 —— 9  大隐藏问题
如何实现参加RAG比赛但进不了复赛的总结
好久没写文章了,断更了一个多月了,刚开始一段时间主要是上班精神内耗太严重没有精力去写文了,到六月初的时候,参加了一个RAG相关的比赛,初赛本周结束,作为菜鸟的我也是理所应当的没进复赛,跟第一名差了十分多,尝试了很多办法,但的确已经到个人能力的尽头了,决定就此放弃,这也是我第一次参加跟AI相关的比赛,而且还是自己单打独斗,也不能再强求更好了,总的来说,四个字:菜就多练🐶。
叶子的技术碎碎念
2025/04/08
580
如何实现参加RAG比赛但进不了复赛的总结
使用 Llama3 和 Ollama 改进了 RAG
在本文中,我们将创建一个高级 RAG,它将根据作为管道输入给出的研究论文来回答用户查询。用于构建该管道的技术堆栈如下。
IT大咖说
2024/04/24
1.2K0
使用 Llama3 和 Ollama 改进了 RAG
RAG流程优化(微调)的4个基本策略
在本文中,我们将介绍使用私有数据优化检索增强生成(RAG)的四种策略,可以提升生成任务的质量和准确性。通过使用一些优化策略,可以有效提升检索增强生成系统的性能和输出质量,使其在实际应用中能够更好地满足需求。
deephub
2024/07/01
1.2K0
RAG流程优化(微调)的4个基本策略
智谱免费GLM-4V-Flash助力多模态RAG实现
多模态检索增强生成(RAG)技术正快速发展,但部署成本较高。智谱科技开放的GLM-4V-Flash作为免费多模态大模型,具备图文理解、知识检索等能力,为构建RAG系统提供了经济实惠的选择。
致Great
2024/12/28
4970
智谱免费GLM-4V-Flash助力多模态RAG实现
【RAG提升技巧】查询改写HyDE
提高 RAG 推理能力的一个好方法是添加查询理解层 ——在实际查询向量存储之前添加查询转换。以下是四种不同的查询转换:
致Great
2024/06/07
5750
【RAG提升技巧】查询改写HyDE
探索检索增强生成(RAG)技术的无限可能:Vector+KG RAG、Self-RAG、多向量检索器多模态RAG集成
由于 RAG 的整体思路是首先将文本切分成不同的组块,然后存储到向量数据库中。在实际使用时,将计算用户的问题和文本块的相似度,并召回 top k 的组块,然后将 top k 的组块和问题拼接生成提示词输入到大模型中,最终得到回答。
汀丶人工智能
2024/01/10
3.8K0
探索检索增强生成(RAG)技术的无限可能:Vector+KG RAG、Self-RAG、多向量检索器多模态RAG集成
【GoMate框架案例】讯飞大模型RAG智能问答挑战赛top10 Baseline
RAG(检索增强生成)是一种结合了检索模型和生成模型的技术,它通过检索大量外部知识来辅助文本生成,从而提高大型语言模型(LLMs)的准确度和可靠性。
致Great
2024/11/23
1490
【GoMate框架案例】讯飞大模型RAG智能问答挑战赛top10 Baseline
LLM RAG系列
本文介绍了RAG以及RAG pipeline的整个流程,包括请求转换、路由和请求构造、索引和检索、生成和评估等,其中引用了大量有价值的论文。
charlieroro
2024/04/02
8200
LLM RAG系列
【RAG最新研究】优化RAG系统的最佳实践与深度解析
这篇论文主要关注的是检索增强型生成(RAG)系统中的一个核心问题:不同的组件和配置如何影响系统的性能。
致Great
2025/01/16
4610
【RAG最新研究】优化RAG系统的最佳实践与深度解析
大模型应用系列:从Ranking到Reranking
【引子】Ranking 和Reranking又是一个NLP 处理中的传统技术, 那么在大模型应用中又起到怎样的作用呢?
半吊子全栈工匠
2024/11/11
5370
大模型应用系列:从Ranking到Reranking
RAG+内容推荐,应该如何实践?
首先回顾一下 RAG 技术定义,它可以结合信息检索和生成模型的混合。简单来说,RAG = 预训练的语言模型 + 信息检索系统,使模型能够在生成自然语言时引入外部知识,从而提高生成内容的准确性和多样性。
掘金安东尼
2024/07/18
2130
RAG+内容推荐,应该如何实践?
增强RAG:选择最佳的嵌入和重排模型
在构建检索增强生成(RAG)管道时,关键组件之一是检索器。我们有多种嵌入模型可供选择,包括 OpenAI、CohereAI 和开源的sentence transformers。此外,还有来自 CohereAI 和sentence transformers的几种重排器可供选择。
数据STUDIO
2024/07/24
9590
增强RAG:选择最佳的嵌入和重排模型
使用Llama index构建多代理 RAG
检索增强生成(RAG)已成为增强大型语言模型(LLM)能力的一种强大技术。通过从知识来源中检索相关信息并将其纳入提示,RAG为LLM提供了有用的上下文,以产生基于事实的输出。
deephub
2023/10/31
1.2K0
使用Llama index构建多代理 RAG
RAG中的3个高级检索技巧
RAG系统检索的文档可能并不总是与用户的查询保持一致,这是一个常见的现象。当文档可能缺乏查询的完整答案或者包含冗余信息或包含不相关的细节,或者文档的顺序可能与用户的意图不一致时,就会经常出现这种情况。
deephub
2024/01/23
7830
RAG中的3个高级检索技巧
大模型应用系列:Query 变换的示例浅析
【引】NLP中的经典组件在大模型应用中还有效么?大模型对自然语言处理中的典型任务有什么影响么?
半吊子全栈工匠
2024/11/07
2360
大模型应用系列:Query 变换的示例浅析
tree2retriever:面向RAG场景的递归摘要树检索器实现
致Great
2024/05/31
1290
tree2retriever:面向RAG场景的递归摘要树检索器实现
推荐阅读
相关推荐
RAG (Retrieval-Augmented Generation) 教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验