稠密检索的规模艺术:模型、数据与性能的精准匹配

news2024/9/20 14:21:40
  • 论文:https://arxiv.org/pdf/2403.18684
  • 代码:GitHub - jingtaozhan/DRScale
  • 机构:清华大学
  • 领域:稠密检索、Scaling Laws
  • 发表:SIGIR2024最佳论文

Abstract

Scaling Laws已经在广泛的任务中被观察到,特别是在语言生成中。先前的研究发现,大型语言模型的性能和模型、数据集的大小存在可预测的模式关系。这有助于我们有效地设计训练策略,特别是在大规模训练越来越需要丰富的计算资源的时候。然而,在密集检索中,这种Scaling Laws尚未得到充分的探索。在本研究中,我们研究了Scaling如何影响密集检索模型的性能我们使用不同参数量来实现密集检索模型,并使用不同数量的标注数据来训练它们。本文使用对比熵作为评价指标,与离散排序指标相比,它是连续的,因此可以准确地反映模型的性能。结果表明,密集检索模型的性能与模型大小和标注数据量大小具有精确的幂律Scaling关系。此外,我们还证明了Scaling Laws有助于优化训练过程,如解决预算限制下的资源分配问题。我们认为,这些发现有助于理解密集检索模型的Scaling效应,并为未来的研究提供了有意义的指导。

对比熵(Contrastive Entropy)是信息论中的一个概念,用于衡量两个不同概率分布之间的相似性或差异性。与传统的熵(Entropy)不同,熵是一个单一分布的度量,用来衡量随机变量的不确定性。对比熵则关注两个分布之间的关系。对比熵的计算通常涉及将一个分布作为参考分布,然后计算另一个分布相对于参考分布的差异(这里是对比查询和文档的分布差异)。

Methods

问题形式

对于给定的一个语料库,密集检索模型的目标是对于一个具体的查询确定最相关的段落,密集检索模型通过将查询候选段落映射到一个共享的密集表征空间来实现这一目标。获得表征后,再使用一个打分函数,比如内积或余弦相似度来计算相关度分数。f代表映射函数,θ代表模型参数,则相似度分数可以用以下公式计算:

本文中,仅考虑查询和段落共享编码器的情况训练数据采用最流行的query-positive passage对的标注方式,获得了n个数据对,其中每个查询可能对应多个匹配段落

模型

采用transformer架构,得到向量的函数如下,其中W和b为映射头的参数:

为了避免不同预训练任务对实验的影响,对于英文检索,本文选用了Google开源的24个BERT系列模型,从最小的0.5M参数(BERT-Tiny)到最大的82M参数(BERT-Base)。对于中文检索,本文选用了文心系列模型,对于每个模型,我们都统一映射到768维的表征空间从而保持公平对比。

训练数据

对于英文,使用MS MARCO,包含从英文网站上收集的8.8M个段落以及0.5M条查询,每条查询都标注了一个正例段落。同时MS MARCO提供了7000条查询-段落对用于评估。对于中文,本文使用了T2Ranking,包含从真实搜索引擎中收集的300k条查询以及超过2M个段落。

训练设置

本文采用最经典的随机批内负采样策略进行对比学习,损失如下:

本文训练固定的10000步,批大小设置为256。

训练评估

由于一般的协议MAP@K,NDCG@K是离散的,在模型变化时不一定能准确反映出全部的变化(比如排序从12到11对于R@10没有区别),因此本文提出使用对比熵作为评价指标,从而可以得到连续的结果。

在信息检索领域,通常使用的一些评价指标,如 MAP@K(平均准确率)和 NDCG@K(归一化折损累计增益),是基于离散的排名位置的指标。这些指标在评估模型性能时,有时可能无法捕捉到细微的变化。例如,如果一个文档的排名从第12位提高到第11位,对于 R@10(前10个结果的召回率)来说,这种变化是无意义的,因为这两个排名都在前10名之外,所以 R@10 的值不会发生变化。

为了克服这种离散指标的局限性,文中提出使用对比熵作为一种评价指标。对比熵可以提供一种连续的度量方式,能够更敏感地捕捉到模型变化带来的细微影响。这意味着,使用对比熵作为评价指标,即使是排名位置之间的小变化,也可以在整体的评估中被反映出来,从而提供更精细的性能评估。

对于测试集中的每个查询-段落对,我们随机选取了256个负段落,并定义对比熵如下(越小越好):

我们将对比熵与几个离散指标进行了对比,如图,可以看到对比熵与这几个评价指标呈线性相关。同时我们还可以发现,在对比熵0.25左右时,三种离散排序指标都会断层式地增大,语言模型中也发现了类似现象,即生成能力与某个具体的损失值紧密相关

实验

Scaling For Model Size

使用全部的训练集,报告训练过程中测试集效果最好的结果,避免欠拟合或过拟合。

模型大小与效果的关系图如下:

结论表明,模型的效果随着模型规模的增加而提升,且模型大小的缩放规律(Scaling Law)可以用以下公式表示:即模型效果与参数量倒数的某个幂指数成正比。其中,δ 是一个不可约的损失项,也就是说,即使模型规模无限增大,损失也只能缩小到这个值,而不会降至零。这一现象是合理的,因为在人类标注过程中,由于可能存在错误标注,导致标注存在一定的局限性。

  • L(N):模型的损失函数,表示在参数量为 N 时的损失值。
  • A:比例因子,它影响模型损失随参数量 N 增长时的变化幅度。
  • N:模型的参数量。
  • α:幂指数,描述模型性能提升的速率。
  • δN:不可约损失项,表示当模型的参数量无限增大时的最小损失。

Scaling For Data Size

接下来本文使用固定的BERT-Base模型来探究数据大小的影响。

结论仍然是数据量越大,效果越好

这两条规律说明:

1. 可以先在一些小尺度模型上获得相应的效果,拟合模型Scaling曲线,从而直接计算得到更大的模型的效果,而不需要训练。

2. 可以先在一些少量的标注数据上获得相应的效果,拟合数据Scaling曲线,从而直接计算得到更多标注数据时的效果,而不需要训练。

Annotation Quality

对于不同的标注质量,Scaling Laws是否仍然成立。

本文使用三种方式对MSMARCO的段落进行了查询生成从而构造不同标注类型数据集

  1. Inverse Cloze Task (ICT):直接使用段落中的某个句子作为查询,一般质量较低。

  2. Supervised Generation Models:使用docT5query为每个段落生成查询,质量一般高于ICT。

  3. Large Language Models (LLMs):提示ChatGLM3为每个段落生成相关的查询,本文认为这种方式会生成比ICR和T5更高质量的数据集。

ChatGLM3的提示词为:

请根据给定的段落生成5个相关查询,用于搜索目的。
1. 每个查询都应该与段落相关。
2. 每个查询应该包含大约10到20个单词。
3. 请生成多样化的查询。
4. 以JSON格式输出,包含以下键:"query1"、"query2"、"query3"、"query4"、"query5"。
5. 请用英文回复。不要使用中文。

对于ICT和ChatGLM3,本文为原训练集中每个人类标注的正例段落生成了一个查询。对于docT5query,由于他是使用人类标注的正例段落训练得来,因此本文随机从语料库中随机选取了0.5M个段落用于生成查询。评估仍然使用人类标注的验证集。

根据图5,可以看到,四种数据集基本都满足幂律尺度,人类标注效果最好,ICT数据效果最差。其中docT5query效果好于ChatGLM3,原因是docT5query在MSMARCO训练集上微调过。(如果使用更大的闭源模型比如GPT-4 GLM-4,那么效果应该比较好)

Mixed Scaling Law

模型和数据联合起来与效果的关系如下:

使用一个包含模型大小N和数据大小D的公式来拟合:

预算分配中的应用

本文做了一个有趣的预算分配应用。首先根据常见的数据标注、云服务和实际应用中的文档数量,推算出单位大小的数据和模型对应的数据标注、训练和推理的开销(美元),基于此来估计总开销。总开销公式如下:

这里,𝑍data、𝑍train、𝑍infer 分别代表标注、训练、推理对应的成本因子

其中每一项的单位开销如下:

由于随着模型的增大,训练开销会越来越大,留给数据的部分就会越来越少,但数据标注本身是昂贵的,增大模型到一定程度后就几乎无法再标注数据了。因此给定预算下,将模型大小尽可能设置合理会带来最优选择。如果不考虑推理开销,对于5000美元来说,训练一个1B左右模型比较合适;对于20000美元成本来说,训练一个13B的模型比较合适。

Limitation

  • 本文使用的对比熵无法完全和排序指标一致,未来可以研究更好的连续指标

  • 本文仅考虑随机负采样,没有考虑更精确的训练技术比如难负采样,蒸馏和对比预训练等,他们也可能对Scaling Laws带来不同影响

  • 本文仅考虑密集检索的经典架构,将查询与文档映射到固定长度的向量,没有考虑其他架构,比如映射到不同长度、多个向量、稀疏向量等。

  • 本文仅考虑域内数据集,尽管本文也做了少量域外实验,但由于数据量少效果不稳定,本文并未报告域外数据集相关结果

  • 本文探究的模型大小数据集大小未来可以进一步扩大

结论

本文系统地研究了密集检索的Scaling Laws,在中文和英语的数据集上进行了实验,以评估模型大小数据大小标注方法对检索性能的影响。

通过利用对比熵作为度量,我们观察到相对于不同标注方法和数据集模型效果与模型大小/数据大小之间的幂律关系。本文还表明,Scaling Laws有助于优化训练过程。例如,正如我们的实验所示的那样,Scaling Laws对于预算分配管理很重要。此外,Scaling Laws允许评估不同标注方法的有效性本文的实验表明,使用LLM来生成相关性标注仍然有很大的改进空间。

本文相信Scaling Laws提供了一个系统的方法来评估和改进排序模型训练过程。虽然本研究为这一领域的未来探索奠定了基础,但还需要进一步的研究来扩展我们对不同的领域、尺度、架构和评估协议Scaling Laws的理解。

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

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

相关文章

JavaScript基础——闭包

闭包简介 闭包的作用 闭包可以保留变量的状态 闭包可以让变量私有化 闭包的缺点 闭包简介 在JavaScript中,重复声明同一个变量会导致变量冲突,在这个时候可以使用闭包创建独立的执行环境。 在JavaScript中,闭包是指封闭的执行环境&#xff…

“论软件开发过程RUP及其应用”写作框架,软考高级,系统架构设计师

论文真题 RUP(Rational Unified Process)是IBM公司的一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发。RUP汲取了各种面向对象分析与设计方法的精华,提供了一…

Wireshark显示过滤器常用关键字及过滤表达式

Wireshark显示过滤器常用关键字及过滤表达式 1. 过滤器类型 Wireshark抓包工具提供了两种类型过滤器:抓包过滤器 和 显示过滤器。 抓包过滤器: 抓取满足过滤条件的数据包,不满足过滤条件的数据包不会被抓取。 显示过滤器: 包已…

C语言基础⑩——构造类型(结构体)

一、数据类型分类 1、基本类型 整数型 短整型:short(2个字节);整型(默认):int(4个字节);长整型:long(8个字节)&#xf…

延迟队列插件

3.10 1.在opt文件夹里建一个rabbitmq文件夹,把插件放进去 2.拷贝到容器内plugins目录下(rabbitmq是容器的name,也可以使用容器id) docker cp /opt/rabbitmq/rabbitmq_delayed_message_exchange-3.10.0.ez rabbitmq:/plugins 进入 Docker 容器…

Java面试八股之什么是JMS

什么是JMS JMS(Java Message Service)是Java平台中关于面向消息中间件(MOM)的API,用于在分布式环境中发送和接收消息。JMS API提供了一种标准的、与供应商无关的方式,使得Java应用程序能够创建、发送、接收…

分布式数据库在传统车联网厂商的应用实践 | OceanBase案例

本文作者:慧视通科技,梁君 传统车联网厂商运维百亿级数据的痛点与难点 深圳慧视通科技(简称慧视通)作为专业的位置数据综合运营服务提供商,一直深耕智能交通领域,依托车联网、云计算、大数据处理、无线通信…

【STM32+HAL】杆球控制系统

一、前言 2017年电赛出了道板球控制系统题目,现写一个简化版本——杆球控制系统,以此记录电赛集训生活。 二、题目分析 最终采取的方案是:OpenMV读取小球的当前位置,并将坐标值传给STM32端,再由32通过电机改变杆的位置…

Proxmox 8.1.3 系统安装堡塔云 waf 防火墙

堡塔云 waf 工作原理: 堡塔云 waf 是一款Web应用防火墙,区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。 堡塔云 waf 采用半容器化部署&#xff0…

消息中间件相关笔记整理

目录 1. 简述消息队列 2. 常见的的消息队列中间件 2.1 Kafka概念及结构 基本概念名词解释 为什么要设置多个副本? 2.2 Kafka的工作流程 消息生产流程 消息存储流程 消息消费流程 2.3 面试必问题 如何保证消息不丢失? 消费者如何保证消息不重…

JVM垃圾回收算法有哪些

JVM垃圾回收算法有哪些 标记清除算法(mark and sweep) 将垃圾回收分为两个阶段:标记和清除 根据可达性分析算法得出的垃圾进行标记 对标记的内容进行垃圾回收 优点: 标记和清除速度较快 缺点: 碎片化较为严重,内存不连贯 标记整理算法 记录存活的对象,清除需要回收的对…

oracle创建账户

1、查看表空间 SELECT tablespace_name FROM user_tablespaces;2、创建用户 CREATE USER FLINKCDC2 IDENTIFIED BY "123456";也可以使用指定表空间的方式 CREATE USER FLINKCDC2 IDENTIFIED BY "123456" DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMIT…

企业为什么要管理好员工的工作微信?

为什么要管理员工工作微信,可以从以下几个方面进行优化和丰富: 一、优化人力资源配置: 提高工作效率:通过监控和管理员工的工作微信,企业可以确保每位员工的时间被合理分配,专注于与工作相关的沟通和任务…

【区块链+食品安全】基于 FISCO BCOS 联盟链的供应链溯源管理系统 | FISCO BCOS应用案例

冷冻食品企业通常会面临以下痛点: 1. 食品安全问题:无法迅速确定受污染或有质量问题的产品来源,导致召回时效延迟,增加企业的风险和损失。 2. 信息不透明:传统的供应链系统存在记账信息孤岛,数据无法溯源…

opencascade Bnd_Range源码学习区间表示

opencascade Bnd_Range 前言 这个类描述了由两个实数值限定的 1D 空间中的区间。 一个区间可以是无效的,这表示区间中不包含任何点。 方法 1 //! 默认构造函数。创建一个无效区间。 Bnd_Range() : myFirst(0.0), myLast(-1.0) {} 2 //! 构造函数。不会创建无效…

Java后端面试题(redis相关1)(day7)

目录 为什么要用Redis?Redis到底是多线程还是单线程?Redis数据持久化机制RDB方式AOF方式 Redis是单线程,但为什么快?Redis 过期删除策略Redis 内存淘汰策略 为什么要用Redis? 基于内存操作,内存读写速度快k…

XSS漏洞分析

原理:利用网页开发时web应用程序对用户输入过滤不足导致将恶意代码注入到网页中,使用户浏览器加载并执行恶意代码,通常是JavaScript类型,也包括java、vbs、flash、html等。 解码的顺序是HTML,URL和JavaScript。 常用…

【运维】macos使用微软官方远程桌面工具mstsc控制windows10教程(含失败的解决方法)

【环境】macos使用微软官方远程桌面工具mstsc控制windows10教程(含失败的解决方法) 文章目录 1、如何获取本地账号密码并连接2、失败:检查被控权限是否有打开3、失败:登录过微软账号的情况 1、如何获取本地账号密码并连接 打开cm…

mysql 物理备份 MySQL 全量备份 增量备份 差异备份 日志备份万字长文 1.3万字

版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明 注意,通常 完备增备,日志(binlog)备,结合使用 差异则根据具体情况选用。 此备份过程 属于公司 常用的单个数据…

OpenVLA: An Open-Source Vision-Language-Action Model

发表时间:13 Jun 2024 作者单位:Stanford University Motivation: the potential to change how we teach robots new skills。然而,VLA 对机器人技术的广泛采用具有挑战性,因为 1)现有的 VLA 在很大程度上是封闭的并…