HyDE、UDAPDR(LLM大模型用于信息检索)

news2024/11/19 8:51:41

本篇博文继续整理LLM在搜索推荐领域的应用,往期文章请往博主主页查看更多。

Precise Zero-Shot Dense Retrieval without Relevance Labels
这篇文章主要做zero-shot场景下的稠密检索,通过借助LLM的力量不需要Relevance Labels,开箱即用。作者提出Hypothetical Document Embeddings (HyDE)方法,即“假设”文档嵌入。具体的做法是通过GPT生成虚构的文档,并使用无监督检索器对其进行编码,并在其嵌入空间中进行搜索,从而不需要任何人工标注数据。
s i m ( q , d ) = < e n c q ( q ) , e n c d ( d ) = < v q , v d > > sim(q,d)=<enc_q(q),enc_d(d)=<v_q,v_d>> sim(q,d)=<encq(q),encd(d)=<vq,vd>>模型结构如下图所示,HyDE将密集检索分解为两个任务,即 instruction-following的LM生成任务和对比编码器执行的文档相似性任务。
在这里插入图片描述

  • write a document that answers the question。对于给定一个query,将由InstructGPT生成一个能回答该query的假设文档,即a hypothetical document。
  • relevance。然后使用无监督的稠密检索模型(Contriever)把该文档表示为稠密向量。
  • 最后基于最近邻从语料库中找到相似的文档即可。

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


在这里插入图片描述

UDAPDR: Unsupervised Domain Adaptation via LLM Prompting and Distillation of Rerankers
来自斯坦福和IBM。motivation在于目前很多信息检索任务需要在大型标记数据集上微调,但是此类数据集通常不可用,并且由于领域转移,它们在现实世界应用程序中的实用性可能会迅速降低。因此,作者们提出了一种利用LLM来生成大量合成查询的方法,即先使用昂贵的 LLM 生成少量合成查询,然后创建大量合成查询,最后用这些合成结果进行模型训练精排模型并蒸馏到一个高效的稠密检索模型。这种技术可以提高长尾域中的zero-shot准确性,即使在仅使用 2K 合成查询进行微调的情况下,效果就很好。

在这里插入图片描述

具体来说,本文设计了一个两阶段的LLM pipeline,包括一个能力强大且昂贵的LLM,以及一个小且便宜的LLM,用于在zero-shot场景下生成query。

  • Stage 1:使用LLM(text-davinci-002)生成大量的query,如上图,该过程会使用多种提示策略。

  • Stage 2:基于Stage1中生成的查询,与来自目标域T的好/坏结果的合成查询配对,如下图所示。
    在这里插入图片描述

  • Stage 3:使用生成的query文档对,以in-context learning的形式使用小LLM(FLAN-T5 XXL)更高效地生成query。

  • Stage 4:利用Stage 3的结果,从头训练单个的passage reranker(DeBERTaV3-large),以当作教师教师机来蒸馏。

  • Stage 5:Stage4的领域特定通道通道作为多教师在多教师蒸馏过程中蒸馏到ColBERTv2中。

  • Stage 6:在目标域t的评估集上测试这个自适应域的ColBERTv2检索器。

paper:https://arxiv.org/pdf/2303.00807
code:https://github.com/primeqa/primeqa/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/569247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】---几分钟简单几步学会手撕链式二叉树(上)

文章目录 前言&#x1f31f;一、二叉树链式结构的实现&#x1f30f;1.1 前置说明&#x1f4ab;快速创建一棵简单的二叉树 &#x1f30f;1.2 二叉树的遍历的时间、空间复杂度&#x1f30f;1.3 二叉树的遍历&#x1f4ab;1.3.1 前序、中序以及后序遍历&#xff1a;&#x1f4ab;1…

深入理解hashmap底层实现原理

目录 总体介绍 HashMap元素的存储 在hashmap中添加元素 HashMap的扩容机制 HashMap的线程安全性 1.添加和删除元素时存在不安全性 2.进行扩容操作时存在不安全性 3.哈希冲突存在不安全性 4.线程之间的不可见性导致安全问题 总体介绍 HashMap是我们用于元素映射使用频率最…

MySQL——子查询

来一篇 MySQL-子查询 记录一下这个美好的时光,学习记录篇,下文中所有SQL 语句 均可在 MySQL DB 学习Demo 此处下载SQL语句执行,有相关DB 与 表。 1. 需求分析与问题解决 1.1 实际问题 现有解决方式一: SELECT salary FROM employees WHERE last_name = Abel SELECT last…

【算法】【算法杂谈】旋转数组的二分法查找

aTOC 前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介绍 原问题 给定一个从小到大有序的数组&#xff0c;该数组存在重复的数&#xf…

【数据安全-02】AI打假利器数字水印,及java+opencv实现

AIGC 的火爆引燃了数字水印&#xff0c;说实话数字水印并不是一项新的技术&#xff0c;但是这时候某些公司拿出来宣传一下特别应景&#xff0c;相应股票蹭蹭地涨。数字水印是什么呢&#xff0c;顾名思义&#xff0c;和我们在pdf中打的水印作用差不多&#xff0c;起到明确版权、…

【拒绝爆零】C++编程考试常见栽区

前言 在OI赛制中&#xff0c;我们可能会因为一些细节原因导致题目爆零。下面&#xff0c;是我列举的一些常见的坑&#xff1a; 1.极值未赋值 这个错误在运行时就能检查出来&#xff0c;但还是会浪费一定的时间&#xff0c;所以我们还是避开这些小插曲为好。 2.定义变量遇到…

利用无代码工具开发一款小程序

目录 无代码工具开发小程序的流程需求分析阶段模型设计阶段页面搭建阶段创建项目创建数据表组件搭建 预览发布总结 日常我们开发小程序的时候都是要从写代码开始&#xff0c;但是写代码这个事只有专业开发才可以干&#xff0c;那作为普通人&#xff0c;如果也希望开发小程序&am…

前端小工具:批量修改图片信息

前端小工具一&#xff1a;批量修改文件夹里面的图片名称 步骤&#xff1a; 1.安装nodejs。 2.根据需要修改editFileName(filePath, formatName)函数的参数&#xff0c;也可以不改&#xff0c;直接将renameFile.js和img文件夹放在同一个目录下。 3.在renameFile.js目录下开启…

Linux:ext文件系统配额

1. 创建三个用户test1 test2 test3 2. 创建一个组 test_23 3. 把 test2 和 test3 加入test_23组 首先要有quota这个软件 如果没有用yum安装 yum -y install quota 如果不会搭建yum Linux&#xff1a;rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客…

计算机组成原理-存储系统-缓存存储器(Cache)

目录 一、Cache基本概念 1.2性能分析 二、 Cache和主存的映射发生 ​​​​​​2.1全相连映射​编辑 2.2直接映射​编辑 2.3组相连映射 三、Cachae的替换算法 3.1 随机算法(RADN) 3.2 先进先出算法(FIFO) 3.3 近期最少使用(LRU) 3.4 最近不经常使用(LFU) 四、写策略 4…

kali安装ARL灯塔过程

&#xff08;一&#xff09;安装docker环境 1、检查是否存在docker环境 docker 2、如果没有docker&#xff0c;就先安装docker apt install docker.io 出现 unable to locate package docker.io这些&#xff0c;这是因为没有跟新 输入跟新命令&#xff1a; apt-get update 在…

把ChatGPT的所有插件整理成中文后!真要说卧槽了..

大家好&#xff0c;我是五竹。 ChatGPT如约向用户开放了联网功能和众多插件&#xff0c;五竹从上周开始满怀着热情等待着&#xff0c;看别人的测评效果都快把我羡慕哭了。最终等来的却是Plus账号给封了&#xff0c;而且至今也没有续上&#xff0c;只能说非常无奈。算了&#x…

探究低代码平台解决企业痛点的能力

近年来&#xff0c;随着越来越多的公司寻找改善数字化转型过程的方法&#xff0c;低代码平台的受欢迎程度一直在上升。低代码平台允许以最小的编码要求创建软件应用程序&#xff0c;从而减少与传统软件开发相关的时间和成本。今天&#xff0c;小编将聊一聊低代码平台能解决哪些…

华为设备这14个广域网命令,值得每位做广域网业务的网工收藏!

你好&#xff0c;这里是网络技术联盟站。 华为设备广域网命令是网络管理员在运维过程中常用的一类命令。该命令集涵盖了DCC配置命令、PPP配置命令、MP配置命令、PPPoE命令、ATM配置命令、帧中继配置命令、HDLC配置命令、LAPB配置命令、X.25配置命令、IP-Trunk配置命令、ISDN配…

全网最新最全面的jmeter性能测试/性能用例模板

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 性能测试主要包括5个方面&#xff1a; 预期目标用户测试&#xff1a;预期目标用户测试是指系统在需求分析和设计阶段都会提出一些性能指标&#xff0c;针对这些性能指标测…

微信小程序解密并拆包获取源码教程

第一步:电脑端提取微信小程序包 一般在微信安装目录下的,比如我微信安装在d盘当中,那么下载的wxapkg包就在下方 D:\qq\wechatfile\WeChat Files\Applet那么微信小程序加载的wxapkg包都在这里 比如下方的一个微信小程序的包就在这里 第二步:解密wxapkg包 工具下载地址 https:/…

人工智能-知识推理

本章可以回忆下离散中的内容&#xff0c;直接看最后的两个期末题↓。 1.基于知识的Agent 基于知识的Agent的核心是知识库KB&#xff0c;知识库中的有些语句是直接给定的而不是推导得到的为公理。基于知识的Agent使用TELL方法将新的语句添加到知识库&#xff0c;使用ASK询问来…

数据库+Python----------Python操作MySQL

目录 1.在Python中安装pymysql 2.创建数据 1.连接数据库&#xff0c;创建一个数据库对象 2.开启游标功能&#xff0c;创建游标对象 3.发送指令 获取查询结果集的方法 4.实操 5.注意 不可以&#xff01;&#xff01;&#xff01; 正确写法 6.用户输入数据 3.查询数…

设计模式之单例模式入门介绍

一、设计模式概念 设计模式是被广泛使用的软件开发中的一种解决方案&#xff0c;它提供了一套被验证过的、可重用的设计思想&#xff0c;帮助开发人员更加高效地开发出可维护、易扩展的软件系统。 设计模式可以分为三类&#xff1a;创建型模式、结构型模式和行为型模式。 1.1…

jsonschema fge json-schema-validator 高级能力 自定义类校验

入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客 自定义的string format可以使用. 详见 fpe的 addFormatValidator ajv 的 addFormat能力 借鉴自chatgpt, 谷歌了半天,没看到好答案. Q: "jsonschema 自定义 object 校验" A: 如下 2014年后未更新…