ActiveRAG—主动学习

原文地址:ActiveRAG — Active Learning

2024 年 2 月 26 日

大型语言模型(LLM)的出现开创了对话式人工智能的新时代。这些模型可以生成非常类似人类的文本,并且比以往更好地进行对话。然而,他们仍然面临着仅仅依靠预先训练的知识的局限性。为了提高推理能力和准确性,LLMs需要具备整合外部知识的能力。

检索增强生成(RAG)已成为一种利用外部资源知识增强LLMs的解决方案。RAG 将提取相关知识段落的检索器模块与神经生成器结合起来,根据检索到的上下文生成答案。这允许将事实、概念和关系纳入LLMs固有知识之外。尽管做出了这样的承诺,RAG 仍面临着影响整体答案质量的挑战。

ActiveRAG,它是 RAG 框架的增强版,旨在应对这些挑战。我们将讨论 ActiveRAG 的动机、方法和结果。通过积极构建知识并将其紧密集成到LLMs自身的认知中,与标准 RAG 相比,ActiveRAG 实现了卓越的准确性和解释连贯性。

主动知识构建的必要性

标准 RAG 的一个关键限制是其集成外部知识的被动方法。检索器模块提取潜在相关的段落,这些段落与输入查询连接起来。然后,这种上下文混合会影响LLMs生成答案。

然而,仅仅提供额外的背景并不能确保与LLMs内在知识的紧密结合。该模型将检索到的段落视为松散的事实参考,而不是主动理解和缝合在一起的知识。这体现在几个方面:

  • 知识噪声:检索到的段落经常包含对于回答特定查询无用的无关事实或关系。这提高了LLMs的信噪比,而嘈杂的不相关知识会损害答案质量。
  • 知识脱节:即使与查询相关的上下文也常常缺乏与LLMs现有知识和认知的连贯联系。如果没有明确的联系,整合就会感觉脱节,而不是统一的解释流程。
  • 被动持有:由于对检索到的知识的理解最少,LLMs被动地持有上下文,没有更全面的评估或与自己的知识库进行协调。结果是支离破碎的,而不是混合的理解。

此外,RAG 的被动方法忽视了建构主义的关键原则,建构主义是一种学习理论,认为知识是由学习者主动构建的,而不是被动接受的。人类通过将新信息与现有结构联系起来、建立新的心智模型、通过矛盾进行推理以及调和冲突来构建知识。RAG 放弃了这些对于深度理解至关重要的结构。

ActiveRAG 简介

为了弥补这些差距,ActiveRAG 是对 RAG 的增强,将主动知识构建融入其中。主要原则是:

  • 知识是主动积累的,而不是被动持有的
  • 将外部知识紧密整合到LLMs的内在认知中
  • 通过评估周期协调和完善知识

基于这些原则,ActiveRAG 实现了一个三阶段管道,包括检索、知识构建和答案生成。

知识检索

与 RAG 一样,第一阶段使用密集向量相似度检索查询的潜在相关段落。关键区别在于检索较小的知识“”(1-3 个句子)而不是较长的段落。这可以过滤噪音并增强检索到的上下文的相关性。

知识建构

第二阶段使用检索到的块主动构建知识。四个子组件制定了独特的建构主义功能:

  • 语义关联——根据语义相关性将检索到的知识块与现有知识结构连接起来。这会在现有的认知框架内吸收新信息。
  • 认知锚定——如果检索到的信息与现有知识的语义相关性较低,则建立新的知识参考框架。这扩大了认知边界。
  • 逻辑推理——通过从检索到的内容中得出结论来推断新知识。这构建了解决问题的逻辑链。
  • 认知一致性——识别检索到的块与现有知识之间的冲突。然后它执行解析以加深理解。这可以调和矛盾。

这些组成部分共同模仿了人类的建构主义:将新知识与旧知识联系起来,形成新的心理模型,通过问题进行逻辑推理,并协调冲突的信息。

认知关系

最后阶段将构建的知识整合回LLMs的内在认知中。首先,LLMs根据现有知识生成查询的初始思维流程。接下来,构建的外部知识被动态地注入到这个思维流中以完善理解。

我们将其称为“认知联系”——外部来源的建构知识与LLMs的固有认知的交集。标准 RAG 中不存在这种紧密集成,其知识脱节。

结果

与基线 RAG 相比,在一系列问答任务上评估了 ActiveRAG。一些关键结果:

  • ActiveRAG 通过减少知识噪声和增强推理,将答案准确性比 RAG 提高了约 5%。
  • ActiveRAG 的解释连贯性评级较高,表明检索到的知识与内在认知之间的集成更加紧密。
  • 由于额外的知识构建,延迟增加了约 15%,但抵消了更高的准确性增益。

在LLMs的认知过程中积极构建和吸收知识可以带来更精确的答案和统一的解释流程。

局限性和未来的工作

虽然 ActiveRAG 前景广阔,但在未来的工作中仍存在一些需要解决的局限性:

  • 多级管道增加了延迟,因为知识构建比标准 RAG 增加了 2-3 倍的计算量。这可以通过模型蒸馏和优化来缓解。
  • 构建知识需要多次查询 LLM,从而增加了成本。缓存构建的知识有助于最大限度地减少冗余生成。
  • 在模仿人类的知识构建方面仍然存在差距,例如类比、从示例中学习以及分层构建知识。

未来的工作可以增强ActiveRAG的建构功能,以进一步缩小与人类认知的差距。此外,构建组件和核心LLMs之间更紧密的耦合可以增强流动性。

ActiveRAG 以其主动的方法证明,仅仅检索知识是不够的。在LLMs的内在认知中构建、协调和积极整合知识可以带来更准确和连贯的结果。虽然要达到人类水平的理解力还有很多工作要做,但 ActiveRAG 为解锁隐藏在外部知识资源中的宝藏迈出了宝贵的一步。

结论

最后,标准 RAG 为利用外部知识增强LLMs提供了一个有用但不完整的解决方案。它的被动方式导致了理解的碎片化。ActiveRAG 引入主动知识构建和集成来解决这些差距。通过将构建的知识与内在认知紧密联系起来,ActiveRAG 实现了卓越的准确性和解释连贯性。

在神经网络中模拟人类建构主义学习仍有待探索的前沿。但ActiveRAG 提供了一个前进的学习蓝图——它不把知识视为静态的外部资产,而是将其视为一种有生命力的力量,可以被构建、塑造和编织成理解系统。有了这种积极的精神,人类知识中的宝藏不仅变得更容易获得,而且成为触及认知本身本质的丰富源泉。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅析开源内存数据库Fastdb

介绍: Fastdb是免费开源内存数据库,其优秀的性能,和简洁的C代码,让我学习使用过程中收益颇多,但是国内中文相关研究的文章相当稀少,外文我查询相当不便。有兴趣的朋友可以通过以下网站访问:Mai…

Groovy语言

1 Groovy介绍 1.1 Groovy介绍 Groovy是一种编程语言,它结合了Java的强大功能和脚本语言的简洁性。它具有动态类型、易读的语法、与Java的紧密集成、脚本编程能力、强大的闭包等特点。 1.2 Groovy SQL介绍 Groovy SQL是 Groovy 编程语言的一部分,用于…

你应该打好你的日志,起码避免被甩锅

大家好,我是蓝胖子,相信大家或多或少都有这样的经历,当你负责的功能出现线上问题时,领导第一时间便是找到你询问原因,然而有时问题的根因或许不在你这儿,只是这个功能或许依赖了第三方或者内部其他部门,这个…

Spring Boot 自动装配的原理!!!

SpringBootApplication SpringBootConfiguration:标识启动类是一个IOC容器的配置类 EnableAutoConfiguration: AutoConfigurationPackage:扫描启动类所在包及子包中所有的组件,生…

Mint_21.3 drawing-area和goocanvas的FB笔记(七)

FreeBASIC gfx 基本 graphics 绘图 8、ScreenControl与屏幕窗口位置设置 FreeBASIC通过自建屏幕窗口摆脱了原来的屏幕模式限制,既然是窗口,在屏幕坐标中就有它的位置。ScreenControl GET_WINDOW_POS x, y 获取窗口左上角的x, y位置;ScreenC…

小程序网页view多行文本超出隐藏或显示省略号

实现效果: 限制两行,超出即显示省略号 实现:话不多说,展示代码 关键代码 .box{ width:100rpx; overflow:hidden; text-overflow: ellipsis;//超出省略号 display:-webkit-box; -webkit-line-clamp: 2;//显…

【数学】【组合数学】1830. 使字符串有序的最少操作次数

作者推荐 视频算法专题 本博文涉及知识点 数学 组合数学 LeetCode1830. 使字符串有序的最少操作次数 给你一个字符串 s &#xff08;下标从 0 开始&#xff09;。你需要对 s 执行以下操作直到它变为一个有序字符串&#xff1a; 找到 最大下标 i &#xff0c;使得 1 < i…

Android UI自动化测试框架—SoloPi简介

1、UI自动化测试简介 软件测试简介 ​软件测试是伴随着软件开发一同诞生的&#xff0c;随着软件规模大型化&#xff0c;结构复杂化&#xff0c;软件测试也从最初的简单“调试”&#xff0c;发展到当今的自动化测试。 ​ 自动化测试是什么呢&#xff1f;自动化测试是把以人为…

用C语言执行SQLite3的gcc编译细节

错误信息&#xff1a; /tmp/cc3joSwp.o: In function main: execSqlite.c:(.text0x100): undefined reference to sqlite3_open execSqlite.c:(.text0x16c): undefined reference to sqlite3_exec execSqlite.c:(.text0x174): undefined reference to sqlite3_close execSqlit…

从零开始:神经网络(1)——神经元和梯度下降

声明&#xff1a;本文章是根据网上资料&#xff0c;加上自己整理和理解而成&#xff0c;仅为记录自己学习的点点滴滴。可能有错误&#xff0c;欢迎大家指正。 一. 神经网络 1. 神经网络的发展 先了解一下神经网络发展的历程。从单层神经网络&#xff08;感知器&#xff09;开…

349. 两个数组的交集

349. 两个数组的交集 力扣题目链接(opens new window) 题意&#xff1a;给定两个数组&#xff0c;编写一个函数来计算它们的交集。 说明&#xff1a; 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 对于看某个元素是否出现在一个集合中的 &#xff0c;…

STM32利用标准库的方式输出PWM(proteus仿真)

首先打开proteus仿真软件&#xff0c;绘制电路图&#xff1a; 其中示波器的添加很简单的&#xff0c;看图&#xff1a; 再来看看咱们最后程序的效果&#xff1a; 下面就是程序代码了&#xff0c;新建两个文件PWM.c和PWM.h文件&#xff0c;所属关系如图&#xff1a; 整个的编程思…

Redis 内存的优化

目录 前言 Redis 的内存碎片问题 判断Redis 内存碎片 如何清理内存碎片&#xff1f; 前言 我想讲一下怎么提高Redis 内存的利用率&#xff0c;redis 的数据是保存在内存中。对内存的利用率低&#xff0c;意味着存的数据很少&#xff0c;并不意味着就没有内存了&#xff0c…

如何在Mapbox GL中处理大的GEOJSON文件

Mapbox GL可以将 GeoJSON 数据由客户端(Web 浏览器或移动设备)即时转换为 Mapbox 矢量切片进行显示和处理。本文的目的是教大家如何有效加载和渲染大型 GeoJSON 源,并优化渲染显示速度,增强用户体验,减少客户端卡顿问题。本文以Mapbox 为例,至于其它框架原理大致相同,可…

中国联通云联网在多元行业应用中的核心地位与价值体现

在全球化浪潮与数字化转型的时代背景下&#xff0c;中国联通积极响应市场需求&#xff0c;推出以云联网为核心的全球化智能组网解决方案&#xff0c;突破地理限制&#xff0c;为各行业提供高效、安全、灵活的网络服务。该方案不仅涵盖传统的通信连接&#xff0c;更是深入到能源…

复盘-excel

excel-选列没有用&#xff0c;选小标题才可以 将簇状柱形图放置在一个新表上##### excel: 添加数据模型时&#xff0c;要通过套用表格格式与外部断开连接 透视分析2010年人数未解决(第四套&#xff09; 通过日期显示星期几 判断星期几 因为前面已经通过星期六&#xff0c…

【AcWing】蓝桥杯集训每日一题Day1|二分|差分|503.借教室(C++)

503. 借教室 503. 借教室 - AcWing题库难度&#xff1a;简单时/空限制&#xff1a;1s / 128MB总通过数&#xff1a;8052总尝试数&#xff1a;26311来源&#xff1a;NOIP2012提高组算法标签二分差分 题目内容 在大学期间&#xff0c;经常需要租借教室。 大到院系举办活动&…

Linux上安装torch-geometric(pyg)1.7.2踩坑记录

重点&#xff1a;1.一定要在创建虚拟环境的时候设置好python版本。2.一定要先确定使用1.X还是2.X的pyg库&#xff0c;二者不兼容。3.一定要将cuda、torch、pyg之间的版本对应好。所以&#xff0c;先确定pyg版本&#xff0c;再确定torch和cuda的版本。 结论&#xff1a;如果在u…

【解读】OWASP大语言模型应用程序十大风险

OWASP大型语言模型应用程序前十名项目旨在教育开发人员、设计师、架构师、经理和组织在部署和管理大型语言模型&#xff08;LLM&#xff09;时的潜在安全风险。该项目提供了LLM应用程序中常见的十大最关键漏洞的列表&#xff0c;强调了它们的潜在影响、易利用性和在现实应用程序…

基本计算器II

文章目录 题目解析算法解析算法模拟第一步 第二步第三步第四步第五步第六步最后一步 代码 题目解析 题目链接 我们先来看一下题目这个题目的意思很明确就是给你一个算数式让你计算结果并返回并且给了很多辅助条件来帮助你。 算法解析 那么我们来看看这个题目有哪些做法&…