语言模型检索用的知识库,是越大越好吗?

语言模型在预训练时所使用的数据量越大,推理时的准确率等性能总的来说就会越好。根据美国华盛顿大学和艾伦AI研究所近期发表的一篇论文[1],语言模型检索用的知识库同样也存在着规模效应,知识库的规模越大,模型完成知识密集型任务的准确率等性能就越好,甚至有可能好于更大、但不使用知识库的模型。

这篇论文根据实验还指出,由于为知识建索引的计算成本低于使用相同知识训练模型的计算成本,通过扩大知识库的规模,比起训练更大的模型,可以在相同计算成本的条件下,更明显地提升模型的性能。

在这篇论文中,测试用的语言模型包括Llama-2、Llama-3、Pythia和OLMo,所采用的测试数据集包括RedPajama、S2ORC、TriviaQA、Natural Questions(NQ)、MMLU和MedQA。

为了研究知识库的规模效应,论文的作者们构建了一个名为MassiveDS的万亿token规模的开源知识库[2],该知识库的知识包括:

  • 来自于书籍、论文、百科全书、程序代码、专业文章等多种数据集的多领域知识,以及
  • 来自于Common Crawl数据集的互联网知识。

值得一提的是,目前已发表的大多数知识库仅采用比较单一的知识源,并且知识库的规模明显小于MassiveDS的规模。

论文的主要实验及发现

1、所使用的知识库规模越大,Llama-2和Llama-3模型针对RedPajama和S2ORC测试集的语言建模能力(以困惑度、即perplexity来衡量)就越强;当知识库的规模足够大时,Llama-2 7B模型甚至会优于不使用知识库的Llama-2 13B模型;

2、所使用的知识库规模越大,Llama-2和Llama-3模型针对TriviaQA、NQ和MMLU测试集的通用知识问题回答能力、以及通用知识推理能力就越强;

3、由于为知识库建索引的计算成本低于训练模型的计算成本,当计算资源一定时,将计算资源用于为更大的知识库建索引,比起将计算资源用于训练模型去记忆更多的知识,更有助于提升模型的性能;这里的前提是模型需要具有基于知识库处理知识的能力;

4、针对知识密集型、并以召回率作为衡量指标的任务(例如TriviaQA和NQ),较弱的语言模型(例如Pythia和OLMo)同样也能明显得益于知识库的使用和更大的知识库规模;

5、针对推理密集型的任务(例如MMLU和MedQA),具有相应推理能力的OLMo模型能够得益于知识库的使用和更大的知识库规模;不具有相应推理能力的Pythia模型无法得益于知识库的使用和更大的知识库规模;

6、MassiveDS知识库与一些单一领域的知识库相比,在多个测试集上的测试结果至少持平,甚至更优;这表明类似于MassiveDS的通用型知识库可以同时提高模型在多个领域的知识水平,使得构建基于检索的通用模型进一步成为可能。

封面图及论文来源:Rulin Shao等[1]
论文许可协议:CC BY[3]

参考资料:

[1] Scaling Retrieval-Based Language Models with a Trillion-Token Datastore. https://arxiv.org/abs/2407.12854
[2] https://github.com/RulinShao/retrieval-scaling
[3] https://creativecommons.org/licenses/by/4.0/

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

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

相关文章

MySQL 8.0 字符集与比较规则介绍

前言: 我们都知道 MySQL 8.0 与 MySQL 5.7 的区别之一就是默认字符集从 latin1 改成了 utf8mb4 ,除此之外,MySQL 8.0 下的字符集和比较规则还有没有其他变化呢?本篇文章我们一起来学习下。 utf8mb4 字符集 在 MySQL 8.0 中&…

C和C++的区别?

C和C是两种广泛使用的编程语言,它们在许多方面有相似之处,但也有一些关键的区别。以下是C和C的一些主要区别: 目录 1. **语言起源和设计哲学**:2. **面向对象编程**:3. **内存管理**:4. **标准库**:5. **类型检查**:6. **函数重载**:7. **引…

PPT模板替换秘籍:一键撤销原模板,轻松更换新风格!

将PPT中的模板换成另一个模板,可以通过几种不同的方法实现。以下是几种常用的方法: 方法一:使用PowerPoint内置的设计选项卡 打开PowerPoint:首先,打开你想要更改模板的PPT文件。 选择“设计”选项卡:在…

(部署服务器系列四)部署Vue步骤(使用nodejs)

1. 构建项目(打包Vue): 构建前设置main.js //关闭开发模式提示 Vue.config.devtoolsfalse Vue.config.productionTip false设置指向的服务端后端ip和端口,我的常量属性统一放在了constants.js export const AIOS_BASE_URL &q…

生成式AI的未来:智慧对话与自主代理的抉择

生成式AI的未来:智慧对话与自主代理的抉择 随着生成式AI技术的不断进步,关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统(Chat)中展现智慧,还是在自主代理(Agent)中体现能…

Mysql-覆盖索引和前缀索引

一.SQL提示 SQL提示,是优化数据库的一个重要手段,简单来说,就是在SQL语句加入一些人为的提示来达到 二.覆盖索引 尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到),减少select* 知识小贴士: using index condition :查找…

android前台服务

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、使用2.1 添加权限2.2 新建…

数据丢失不用愁!这四款数据恢复大师免费版助你找回珍贵回忆

我们在办公或者是生活中常常会遇到不小心将手机设备或者计算机当中的重要数据误删除/格式化/或其他不小心丢失的情况,但是不用紧张,这篇文章就是给大家分享如何恢复他们,以下带来除易我数据恢复外的其他好用的数据恢复软件: 第一…

python windows环境部署

在官网安装www.python.org linux系统的只能编译安装 windows的可以直接安装 这里是windows安装 .3.9.6版本 一直下一步就可以,然后鼠标右键在按住shift用终端打开 输入py或者python验证一下是否安装成功 打开目录文件夹 在里面新建一下pip的文件夹,里…

SpringCloud+Vue3多对多,多表联查

♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

黑马头条vue2.0项目实战(二)——登录注册功能的实现

1. 布局结构 目标 能实现登录页面的布局 能实现基本登录功能 能掌握 Vant 中 Toast 提示组件的使用 能理解 API 请求模块的封装 能理解发送验证码的实现思路 能理解 Vant Form 实现表单验证的使用 这里主要使用到三个 Vant 组件: NavBar 导航栏 Form 表单 F…

分布式锁-数据库锁

本文主要分享如何使用数据库乐观锁的方案,实现分布式定时任务抢锁执行任务的场景,避免重复执行任务。 案例技术:OracleSpringBootxxl-Job 环境准备 xxl-Job部署请移步:Springxxl-joboracle_xxl-job oracle配置-CSDN博客 SpringB…

人工智能算法工程师(高级)课程7-图像分割项目之DeepLab模型的搭建与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(高级)课程7-图像分割项目之DeepLab模型的搭建与代码详解。本文将详细介绍DeepLab模型的关键组成部分,包括Image Pyramid、Encoder-Decoder、SPP模型和ASPP模型。我们将从数学原理出发,配合LaTeX公式,并使用PyTorc…

关于珞石机器人二次开发SDK的posture函数的算法RX RY RZ纠正 C#

在珞石SDK二次开发的函数钟,获取当前机器人位姿的函数posture函数在输出时会发现数据不正确,与示教器数据不一致。 其中第一个数据正确 第二三各数据为相反 第四五六各数据为弧度制 转换方法为(弧度/PI)*180度 然后发现第四个数据还要加上180度 第五…

docker Docs相关使用文档链接

Docker Docshttps://docs.docker.com/ docker compose | Docker Docshttps://docs.docker.com/reference/cli/docker/compose/docker | Docker Docshttps://docs.docker.com/reference/cli/docker/

工作很难受,还要不要继续留在职场上?

先说结论:我非常赞同大家离开职场 虽然小编现实的工作是有关于人力资源的,高级点叫做猎头,低俗点讲就叫“人贩子” 原因可能和其他人不太一样,大家自行理解 1.现在的社会资源太少,“蛋糕”太小 大家要明白最重要的…

Ethernet

目录 1. Physical Layer(PHY)2. MAC2.1. MAC帧格式2.2. MAC地址与IP地址3. RGMII接口FPGA实现以太网(一)——以太网简介 以太网(Ethernet)是指遵守 IEEE 802.3 标准组成的局域网通信标准, IEEE 802.3 标准规定的主要是OSI参考模型中的物理层(PHY)和数据链路层中的介质访问控…

【HZHY-AI300G智能盒试用连载体验】设置RKNN的开发环境

目录 安装RKNN工具 安装pip3 安装RKNN Toolkit Lite2 安装RKNPU2运行库 本文首发于电子发烧友论坛:【新提醒】【HZHY-AI300G智能盒试用连载体验】 智能工业互联网网关 - 北京合众恒跃科技有限公司 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com) 前…

kubevirt中disk的bus类型

在 KubeVirt 中,定义虚拟机中磁盘(disk)的时候,可以指定不同的总线(bus)类型,以确定磁盘如何与虚拟机中的虚拟硬件进行通信。以下是 KubeVirt 中常见的磁盘总线类型: Virtio 类型: v…

go语言day20 使用gin框架获取参数 使用自定义的logger记录日志

Golang 操作 Logger、Zap Logger 日志_golang zap-CSDN博客 一、 从控制器中获取参数的几种形式 1) 页面请求url直接拼接参数。 2) 页面请求提交form表单 3) 页面请求发送json数据,使用上下文对象c的BindJSON()方法接收数据…