PromptReps: 解锁LLM的检索力量

news2024/9/27 19:22:18

  • 论文:https://arxiv.org/pdf/2404.18424
  • 代码:https://github.com/ielab/PromptReps
  • 机构:CSIRO、昆士兰大学、滑铁卢大学
  • 领域:retrieval、embedding model
  • 发表:arXiv

        当前大型语言模型用于zero-shot文档排序的方法主要有两种:

        1)基于提示的重新排序方法,这种方法不需要进一步的训练,但由于相关的计算成本而仅适用于对少量候选文档进行重新排序;

        2)无监督对比训练的密集检索方法,它可以从整个语料库中检索相关文档,但需要大量配对文本数据进行对比训练。

        本文提出了PromptReps,它结合了两种方法的优点:无需训练和能够从整个语料库中检索。该方法只需使用提示来引导LLM生成查询和文档表示以实现有效的文档检索。具体来说,提示LLMs使用单个单词来表示给定的文本,然后使用最后一个标记的隐藏状态和与下一个标记的预测相关的对数来构建混合文档检索系统。该检索系统利用LLM提供的密集文本嵌入和稀疏词袋表示。对BEIR进行zero-shot文档检索数据集的实验评估表明,这种简单的基于提示的LLM检索方法在使用较大的LLM时可以实现与最先进的LLM嵌入方法相似或更高的检索效果,而这些方法需要使用大量无监督数据进行训练。

摘要(Abstract)

 文章提出了一种新的方法PromptReps,它结合了基于提示的重排序方法和无监督对比训练的密集检索方法的优点。PromptReps不需要额外的训练,能够从整个语料库中检索文档。该方法通过提示大型语言模型(LLMs)生成查询和文档的表示,用于有效的文档检索。具体来说,它通过提示LLMs用单个词来表示给定文本,然后使用最后一个词的隐藏状态和预测下一个词的logits来构建混合文档检索系统。该系统利用LLMs提供的密集文本嵌入和稀疏词袋表示。实验评估表明,PromptReps在多个数据集上与训练有素的LLM嵌入方法相比,具有相似或更高的检索效果,尤其是当使用更大的LLM时。

引言(Introduction)

介绍了大型语言模型(LLMs)如GPT4和LLaMA在遵循用户指令方面的强大能力,以及它们在自然语言理解任务上的成功。文章探讨了使用LLMs进行无监督文档排名的潜力。

相关工作(Related Work)

  • 监督神经检索器(Supervised Neural Retrievers):介绍了基于bi-encoder架构的神经检索器,如DPR、ANCE、ColBERT等,它们将文本编码为低维密集向量。还有基于encoder-only语言模型的稀疏神经检索器,如DeepImpact、uniCOIL、TILDE和SPLADE,它们将文本编码为高维稀疏向量。
  • 无监督神经检索器(Unsupervised Neural Retrievers):讨论了不依赖人类相关性判断的训练有效神经检索器的方法。
  • 提示LLMs进行文档排名(Prompting LLMs for document ranking):探讨了使用提示让LLMs进行文档重排序的研究。
  • 提示LLM生成句子嵌入(Prompting LLM for sentence embeddings):介绍了使用提示让LLMs生成句子嵌入的方法。

PromptReps方法

 PromptReps通过设计提示,让LLMs生成文档的密集和稀疏表示。在文档索引阶段,将所有文档通过提示输入LLMs以获得输出隐藏状态和logits。对于稀疏检索,通过一系列步骤将logits表示稀疏化,以便进行有效的稀疏检索。对于密集检索,直接使用隐藏状态作为文档的嵌入。

使用的prompt为:

实验设置(Experimental setup)

 使用MSMARCO、TREC深度学习和BEIR数据集评估了PromptReps的文档排名效果。与BM25、E5-PTlarge和LLM2Vec等基线方法进行了比较。

结果(Results)

在BEIR数据集上,PromptReps在不使用任何额外训练的情况下,通过提示生成的密集和稀疏表示,取得了与训练有素的LLM嵌入方法相似或更高的检索效果。特别是在使用更大的LLM时,效果更佳。

局限性(Limitations)

PromptReps的查询延迟高于其他基于LLM的密集检索器,尤其是在没有进一步优化的情况下。而且只有使用较大的LLM的情况下,效果才可以和较小的经过训练的方法相比较,比较鸡肋。

稀疏检索流程:

在PromptReps方法中,混合检索系统结合了密集和稀疏两种表示来提升文档检索的效果。稀疏表示通常指的是文档中的词袋模型,它记录了文档中每个词的存在与否(或者出现的频率)。构建稀疏检索系统的过程涉及以下几个步骤:

  1. 生成Logits

    • 当LLM接收到提示和文档文本后,它会预测下一个可能的词,并为每个可能的词生成一个概率分布,这些概率分布称为logits。
  2. Logits 稀疏化

    • 由于LLMs的词汇表可能包含数十万个词,直接使用这些logits进行检索会非常低效。因此,需要将logits转换为稀疏表示。
    • 首先,将文档中的所有词从logits中提取出来,并将它们对应的logit值保留,其他值设为零。这样,每个文档就由一个与词汇表大小相同但大部分元素为零的向量表示。
  3. 应用非线性变换

    • 为了进一步增强稀疏表示的区分度,通常会应用非线性变换,如ReLU(Rectified Linear Unit),将负值置为零。这有助于消除不重要的信息,并保留有助于检索的信号。
  4. 量化和归一化

    • 接下来,对稀疏向量进行量化,比如通过乘以一个常数(如100)并四舍五入,将实数转换为整数,这些整数表示词在文档中的重要性或权重。
    • 可以使用不同的归一化技术来调整权重的大小,确保它们在合理的范围内。
  5. 构建倒排索引

    • 利用上述量化后的稀疏向量构建倒排索引(Inverted Index)。倒排索引是一个数据结构,它记录了每个词在哪些文档中出现,以及相应的权重。
    • 倒排索引允许系统在接收到查询时,快速检索出包含特定词的文档,并根据词的权重对文档进行排序。
  6. 检索和评分

    • 在接收到查询时,系统同样会生成查询的稀疏表示,并使用倒排索引快速找到包含这些词的文档。
    • 然后,系统会计算查询表示与文档表示之间的匹配程度,通常是通过计算交集、并集或其他相似度度量来完成。
  7. 排名和合并

    • 根据匹配程度,系统会为每个文档计算一个分数,并根据分数对文档进行排名。
    • 在混合检索系统中,稀疏检索得到的分数会与密集检索得到的分数结合起来,通常是通过线性插值或其他合并策略,以产生最终的文档排名。

通过这种方式,稀疏检索利用文档中词的精确匹配来快速定位相关文档,而密集检索则利用语义相似度来找到可能不完全匹配但内容相关的文档。两者的结合使得检索系统在精确度和召回率上都能取得较好的平衡。

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

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

相关文章

台球助教系统开发概述:技术架构与功能实现

在现代体育训练领域,技术的融合正不断推动运动教学方式的革新。台球,作为一项集策略、技巧与心理素质于一体的运动,其教学过程的优化显得尤为重要。因此,开发一套高效、智能的台球助教系统,旨在通过技术手段提升学员的…

【微处理器系统原理与应用设计第五讲】再探Cortex-M4处理器结构、总线、异常与中断、SysTick

一、处理器结构 如下图所示,主要包括处理器内核、嵌套向量中断控制器(NVIC)、系统节拍定时器(SysTick)以及可选的浮点单元,还有一些内部总线系统、可选的存储器保护单元(MPU)以及支…

【AI】前向和反向传播的关系

这个例子来自ChatGPT,很有趣的解释了一个模型在trian的过程中前向传播和反向传播的过程。 其中Sigmoid的导数是 自身乘以1-自身的结果。 这也是上述式子中为什么有0.622*(1-0.622)。

Android Telephony总结

1、Telephony 业务介绍 Android telephony涉及较多模块 1.1、STK业务介绍 1.1.1、STK域选 1.1.2、是否支持STK Telephon STK-CSDN博客 1.1.3、STK应用的安装卸载 1.2、SS补充业务 1.3、通话业务 1.3.1、紧急号码 ECC 号码总结_ecc号码-CSDN博客 1.4、SMS 1.4.1 短信发送方式…

相亲交友系统如何运用算法匹配理想伴侣

在数字化时代,相亲交友系统已经成为寻找理想伴侣的重要途径。作为程序员,我们致力于通过先进的算法,为用户提供精准的匹配服务,让相亲交友变得更加高效和有趣。 相亲交友系统的核心在于算法,我们的团队运用了多种算法…

一线大厂软件测试面试题及答案解析,2024最强版...

1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容&#xff0…

达梦创建新连接

小伙伴是不是遇到过什么都没有的达梦数据库页面,很慌 我们直接点击窗口——视图——对象导航 出来了以后,点击小图标进行新建链接 输入自己的密码用户名,就能新建一个链接了,希望可以帮助到各位小伙伴

软件测试之压力测试知识总结

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&…

window系统开机执行bat脚本

1,win R 打开运行对话框,然后如下图所示输入 第二,打开启动文件夹后,将想要执行的bat脚本,创建快捷方式,放在这里,重启电脑时就会执行这个程序

银行接口测试的具体流程及内容?

银行接口测试的具体流程及内容可以概括为以下几个关键步骤: 一、测试前准备 接口测试计划制定: 确定测试目标、范围、人员分工、时间计划等。 编写接口测试计划文档,明确测试策略、测试方法、测试工具等。 接口文档解析: 深入理…

Linux进程状态 僵尸进程 孤儿进程

进程状态 R (running) Linux 的运行状态(循环空语句) S (sleeping) 阻塞状态 称为浅度睡眠(可以被唤醒)死循环打印语句时等待输入时使用 sleep 函数时 D (disk sleep) 也是一种阻塞状态,称为深度睡眠进程在等待磁盘写入完毕期间,这个进程不能被任何人杀…

一键云迁移:利用VMware PowerCLI将OVA虚拟机顺利迁移到AWS

哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。 “ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利…

【学习AI-相关路程-工具使用-自我学习-jetson收集数据-图片采集-训练前准备-基础样例 (5)】

【学习AI-相关路程-工具使用-自我学习-jetson&模型训练-图片识别-使用模型检测图片-基础样例 (5)】 1 -前言2 -环境说明3 -先行了解(1)整理流程了解(2)了解模型-MobileNet1、MobileNetV2 的主要特性&am…

大模型推理框架 RTP-LLM 架构解析

RTP-LLM 是阿里巴巴智能引擎团队推出的大模型推理框架,支持了包括淘宝、天猫、闲鱼、菜鸟、高德、饿了么、AE、Lazada 等多个业务的大模型推理场景。RTP-LLM 与当前广泛使用的多种主流模型兼容,使用高性能的 CUDA kernel, 包括 PagedAttention、FlashAtt…

gpt plus获取指南

随着AI技术的发展,越来越多的人开始依赖GPT来提高工作效率。市场上有多个平台提供GPT服务,如何选择最适合自己的?本文将详细对比两个热门平台:「银河」和「环球」,帮助你快速决策。 环球链接 银河链接 结论先行&#…

预测赢家00

题目链接 预测赢家 题目描述 注意点 1 < nums.length < 200 < nums[i] < 10^7假设每个玩家的玩法都会使他的分数最大化如果两个玩家得分相等&#xff0c;同样认为玩家1是游戏的赢家 解答思路 需要注意的是&#xff0c;如果数组中的元素个数为偶数&#xff0c;…

Golang环境安装、配置详细

Windows下安装Go开发环境 点我下载 Windows配置Go环境变量 出现工具install失败时&#xff0c;切换其它代理 # 1. 七牛 CDN go env -w GOPROXYhttps://goproxy.cn,direct# 2. 阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct# 3. 官方 go env -w GOP…

波场(Tron)监听区块交易(TRX,USDT)

前言说明&#xff1a; 本篇文章参考GitHub一位伙伴的代码&#xff0c;再代码基础上优化改良以后的结果&#xff0c;但是一下找不到那位大佬的GitHub链接了&#xff0c;如有侵权请联系作者调整文章&#xff0c;让跟多人收益。谢谢。 实现思路: 波场链是一条很新奇的链&#xff…

网络协议--HTTP 和 HTTPS 的区别

网络协议–HTTP 和 HTTPS 的区别 一、简述 HTTP (全称 Hyper Text Transfer Protocol)&#xff0c;就是超文本传输协议&#xff0c;用来在 Internet 上传送超文本。是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准(TCP)&#xff0c…

NET 8 + WPF 企业级工作流系统

目录 前言 项目介绍 功能模块 快速预览 1、快速预览方式1 2、快速预览方式2 3、快速预览方式3 项目框架 项目功能 1、快速代码生成 2、大屏界面&#xff08;可拖拽&#xff0c;可全屏&#xff09; 3、Form 表单 4、通用crud方法 5、大文件上传与下载 6、多窗口、…