如何构建一个可信的联邦RAG系统。
今天给大家分享一篇论文。
题目是:C-RAG:如何构建一个可信的联邦检索RAG系统。
论文链接:https://arxiv.org/abs/2412.13163
论文概述
尽管大型语言模型 (LLM) 在各种应用中展现出令人印象深刻的能力,但它们仍然存在可信度问题,例如幻觉和偏差。检索增强语言模型 (RAG) 被提出通过接地外部知识来增强生成的可靠性,但对其生成风险的理论理解仍未探索。当前RAGt可信主要存在以下挑战:
- LLMs 存在幻觉和不一致等问题,导致输出结果不可靠且不可信。
- 对于 RAG 模型如何有效减轻生成风险的理论理解不足,相较于普通 LLMs,尚缺乏充分的理论支持。
- 收集准确反映测试样本分布的校准数据在实际应用中面临挑战,尤其是在实时应用场景中。
这篇论文介绍了C-FedRAG,即Confidential Federated Retrieval-Augmented Generation System,一个保密的联邦检索增强型生成系统。该系统旨在帮助组织利用大型语言模型(LLMs)进行知识查询和分析,同时在不违反数据隐私和安全政策的前提下,解决维护针对性、最新信息的挑战,并减少LLMs在查询响应中的幻觉问题。
相关工作
论文中提到的相关研究主要集中在以下几个方面:
- FeB4RAG: Evaluating Federated Search in the Context of Retrieval Augmented Generation (Shuai Wang, 2024):
该论文概述了一个在RAG框架内进行联邦搜索的架构,并引入了一个新的数据集,用于评估联邦搜索,解决了现有数据集的局限性。论文强调了开发复杂的联邦搜索策略的重要性,以优化RAG管道并提高生成响应的质量。
- Federated Learning-Enhanced Retrieval Augmented Generation (FLERAG) (Eugenia Kim, 2024)
提出了一种新的方法,用于在传统的RAG LLM和跨客户端设备数据训练的FL模型之间选择最佳响应,以解决需要不断更新RAG数据库的问题。通过响应仲裁器选择置信度更高的响应。全局FL模型在所有客户端之间共享,提供更全面和最新的响应,用于与基于预训练知识的LLM响应进行比较。
- Cache Me If You Can: The Case For Retrieval Augmentation (RA) in Federated Learning (Aashiq Muhamed, 2024)
提出了一种在FL中使用RA增强的方法,该方法在推理期间结合了基于检索的方法,客户端设备从其本地数据集中检索相关信息,并在将查询输入模型之前增强查询。这种方法解决了隐私问题和法规合规性,同时允许各个客户端的模型从整个网络的集体知识中受益。该方法要求客户端在FL系统中微调自己的模型,使用它们各自的私有数据。
- Clinical Question-Answering over Distributed EHR Data (Jiang, 2024)
提出了使用联邦RAG进行临床问答的系统,利用LLM进行临床问题回答,而不损害患者隐私。提出的系统采用了分层设计的联邦文档检索,实现了对分布式临床数据的高效和安全访问。作者还引入了一个新的基于MIMIC-IV数据库的数据集,专门用于评估临床问答系统。通过解决隐私问题和增强可解释性,提出的方法在利用LLM进行临床应用方面迈出了重要一步。
这些相关工作展示了RAG系统在联邦学习背景下的不同应用和研究方向,包括联邦搜索策略的优化、模型选择、隐私保护和法规合规性,以及在临床问答中的应用。这些研究为C-FedRAG系统的提出提供了理论和实践基础。
核心内容
论文通过提出一个名为C-FedRAG的系统来解决在保持数据隐私和安全的同时,利用大型语言模型(LLMs)进行知识查询和分析的问题,具体解决方案包括以下几个关键步骤:
1. 检索增强生成
C-FedRAG的基本RAG流程包括:
- 将数据库中的文档向量化,形成向量化块。
- 将查询嵌入到相同的嵌入模型中,并执行嵌入检索,以检索与查询最相关的文档块。
- 通过重新排名模型进一步优化检索结果,以提高准确性。
- 将最相关的文档作为上下文附加到原始查询中,形成增强的输入,然后输入到LLM以生成响应。
2. 联邦化和保密计算
C-FedRAG系统的关键组成部分包括:
- 使用NVIDIA FLARE SDK实现联邦化计算。
- 利用保密计算环境保护数据隐私和安全,特别是在上下文收集、聚合和响应生成过程中。
- 通过联邦化的方式在多个数据提供者之间执行嵌入模型训练、上下文检索、重新排名和最终推理。
3 C-FedRAG实现
C-FedRAG系统的实施细节包括:
- 使用NVIDIA FLARE SDK构建解决方案,确保通信安全。
- 协调器使用NVFlare作业协调检索请求,并收集检索块。
- 通过保密虚拟机在C-FedRAG工作流程中集成隐私保护方法,确保数据的保密性和完整性。
评估方面,使用MedRAG工具包和MIRAGE基准数据集对C-FedRAG系统的性能进行评估,展示了该系统在处理各种医学文本格式和复杂性方面的能力。
论文实验
1. 实验设置
-
基准测试:实验使用了MedRAG工具包和MIRAGE基准数据集作为评估基础。具体来说,使用了BioASQ和PubMedQA数据集,其中BioASQ包含618个是非问题,PubMedQA包含500个是非问题。
-
基线方法:与C-FedRAG进行比较的其他方法包括直接使用的LLMs,如LLaMA-3-8B-Instruct,以及通过MedRAG系统使用单一数据集(MedCorp)和特定数据集(如PubMed、StatPearls、Textbooks、Wikipedia)的RAG方法。
-
评估指标:主要使用准确率百分比和标准差作为评估指标,通过MIRAGE评估平台生成与真实答案的对比得分。
2. 主要结果
C-FedRAG在多个基准测试中展现出竞争性能,尤其是在BioASQ基准测试中,通过集成多个数据源并使用重排名模型,显著提升了性能。
由于无法直接提供图片,我将描述表格内容:
- 表1展示了C-FedRAG与普通RAG(MedRAG)和非RAG LLM提示的结果比较。
- 表2展示了使用CoT时,不同LLaMA模型的消融研究结果。
3. 结果分析
-
数据源集成的重要性:通过比较单一数据源与集成多个数据源的C-FedRAG系统的性能,结果表明集成多个数据源可以提供更有用的信息,并显著提升性能。
-
重排对性能的增强:通过比较仅使用嵌入/检索排名与使用最终重排名模型的C-FedRAG系统,发现重排名模型有助于提升BioASQ任务的性能。
-
上下文窗口大小的影响:研究了不同上下文窗口大小对性能的影响,发现存在一个最佳的上下文窗口大小(例如8个),既能保证答案的准确性,又不会因过多上下文而降低性能。
-
联邦化和保密计算的影响:通过不同的联邦化和保密计算策略进行消融研究,发现明确的联邦化步骤对于保持高答案准确性和数据隐私至关重要。
-
SI的质量:通过检查一些问题及其对应的SI(结构化意图)的例子,评估了SI的质量和鲁棒性,发现SI能够准确地捕捉问题的关键信息。
总结讨论
论文讨论了C-FedRAG在处理跨多个数据提供者的问题时面临的限制,包括数据隐私、控制和安全性的挑战,以及在企业环境中部署联邦RAG系统时需要解决的身份和访问管理问题。此外,还讨论了如何防止数据投毒攻击、使用隐私增强技术保护检索上下文,以及如何在数据提供者之间安全地存储、管理和交换多个加密密钥的问题。
这些实验全面评估了C-FedRAG系统在处理跨多个数据源的问题回答任务时的有效性和效率,并与现有的一些先进方法进行了比较。通过这些实验,论文展示了C-FedRAG在保持数据隐私和安全性的同时,能够达到与集中式RAG方法相当的或更好的答案质量。
编者简介
致Great,中国人民大学硕士,多次获得国内外算法赛奖项,目前在中科院计算所工作,目前负责大模型训练优化以及RAG框架开发相关工作。
个人主页:https://github.com/yanqiangmiffy
项目链接:https://github.com/gomate-community/GoMate
相关文章:

如何构建一个可信的联邦RAG系统。
今天给大家分享一篇论文。 题目是:C-RAG:如何构建一个可信的联邦检索RAG系统。 论文链接:https://arxiv.org/abs/2412.13163 论文概述 尽管大型语言模型 (LLM) 在各种应用中展现出令人印象深刻的能力,但它们仍然存在可信度问题ÿ…...

【深度学习之三】FPN与PAN网络详解
FPN与PAN:深度学习中的特征金字塔网络与路径聚合网络 在深度学习的领域里,特征金字塔网络(Feature Pyramid Networks,简称FPN) 和 路径聚合网络(Path Aggregation Network,简称PAN)…...

Qt学习笔记第71到80讲
第71讲 事件过滤器的方式实现滚轮按键放大 事件体系(事件派发 -> 事件过滤->事件分发->事件处理)中,程序员主要操作的是事件分发与事件处理。我们之前已经通过继承QTextEdit来重写事件实现Ctrl加滚轮的检测,还有一种处理…...

以管理员身份运行
同时按下Ctrl Shift Esc键打开任务管理器,在任务管理器的左上角,点击“文件”菜单,在下拉菜单中选择“新建任务” 在弹出的对话框中,输入您想要运行的程序的名称。如果您不确定程序的确切名称,可以点击“浏览”来找到…...
用 Python 实现井字棋游戏
一、引言 井字棋(Tic-Tac-Toe)是一款经典的两人棋类游戏。在这个游戏中,玩家轮流在 3x3 的棋盘上放置自己的标记,通常是 “X” 和 “O”,第一个在棋盘上连成一线(横、竖或斜)的玩家即为获胜者。…...

06 实现自定义AXI DMA驱动
为什么要实现自定义AXI DMA驱动 ZYNQ 的 AXI DMA 在 Direct Register DMA (即 Simple DMA)模式下可以通过 AXIS 总线的 tlast 提前结束传输,同时还可以在 BUFFLEN 寄存器中读取到实际传输的字节数,但是通过 Linux 的 DMA 驱动框架…...

SpringBoot集成ENC对配置文件进行加密
在线MD5生成工具 配置文件加密,集成ENC 引入POM依赖 <!-- ENC配置文件加密 --><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.2</ver…...

初学stm32 ——— 串口通信
目录 STM32的串口通信接口 UART异步通信方式特点: 串口通信过程 STM32串口异步通信需要定义的参数: USART框图: 常用的串口相关寄存器 串口操作相关库函数 编辑 串口配置的一般步骤 STM32的串口通信接口 UART:通用异步收发器USART&am…...
qwt 多Y轴 项目效果
项目场景: 在做一个半导体上位机软件项目实践中,需要做一个曲线展示和分析界面,上位机主题是用qt框架来开发,考虑到目前qt框架的两种图标库,一个是qcustomplot 一个是 qwt。之所以采用qwt ,根本原因是因为…...
Java中通过ArrayList扩展数组
在Java中,ArrayList 是一个动态数组实现,能够根据需要自动调整其大小。与传统的数组不同,ArrayList 不需要预先指定大小,并且提供了许多方便的方法来操作集合中的元素。下面将详细介绍如何使用 ArrayList 进行数组的扩展ÿ…...

Java:链接redis报错:NoSuchElementException: Unable to validate object
目录 前言报错信息排查1、确认redis密码设置是否有效2、确认程序配置文件,是否配置了正确的redis登录密码3、检测是否是redis持久化的问题4、确认程序读取到的redis密码没有乱码 原因解决 前言 一个已经上线的项目,生产环境的redis居然没有设置密码&…...

datasets库之load_dataset
目录 问题解决方案 问题 使用peft用lora微调blip2时用到了一个足球数据集,如下: 原始代码如下 dataset load_dataset("ybelkada/football-dataset", split"train")然而这需要梯子才能下载,服务器较难用VPN所以使用au…...
React Router常见面试题目
1. React Router 支持哪几种模式? React Router 支持以下两种主要模式: BrowserRouter (基于 HTML5 History API 的模式) 原理: 利用 history.pushState 和 history.replaceState 操作浏览器历史栈,无需重新加载页面。URL 看起来像传统 URL…...
sequelize-cli 封装登录接口
node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用 一、思路 第一步:肯定是用户要向接口传递邮箱、账号和密码了。 第二步:接口这边,先要验证。因为这里不是往数据库里存储数据,…...
使用 Elasticsearch 查询和数据同步的实现方法
在开发过程中,将数据从数据库同步到 Elasticsearch (ES) 是常见的需求之一。本文将重点介绍如何通过 Python 脚本将数据库中的数据插入或更新到 Elasticsearch,并基于多字段的唯一性来判断是否执行插入或更新操作。此外,我们还将深入探讨如何…...

QTday1作业设置简易登录界面
代码 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//创建一个标签QLabel *lab1 new QLabel(this);//重新设置大小lab1->resize(1925,1080);//用动图类QMovie实例化一个动图QMovie *mv new QMovie("C:\\Users\\MR\\Deskto…...

RC低通滤波器和LR低通滤波器,LC低通滤波器该怎么选择
这是RC低通滤波器利用电容两端的电压不能突变可以滤除高频噪声 这是LR低通滤波器利用流过电感的电流不能突变也可以滤除高频噪声 那么问题来了两个低通滤波器,该怎么选择呢还是随便选一个就好? RC电路:因为电流电阻会发热耗能,所…...
芯旺微KF32A156芯片ADC配置
使用芯旺微KF32A156的芯片做预研项目,使用了ADC0外设,根据芯片规格书中的描述进行了配置: /*** brief: Configure ADC.** param[in] none.* param[in] none.* param[out] None* retval: None*/ static void adc_peripheral_init(void) …...

【Token】校验、会话技术、登录请求、拦截器【期末实训】实战项目学生和班级管理系统\Day15-后端Web实战(登录认证)\讲义
登录认证 在前面的课程中,我们已经实现了部门管理、员工管理的基本功能,但是大家会发现,我们并没有登录,就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的,所以我们今天的主题就是登录认证。 最终我们要实现…...
[Unity Shader] 【游戏开发】【图形渲染】Shader数学基础3:矢量与标量的乘法与除法详解
在计算机图形学和Shader编程中,矢量(Vector)运算是非常基础的数学知识。其中,矢量与标量(Scalar)的乘法与除法是常见的操作。本篇文章将通过详细分析,以及实例讲解矢量和标量的乘除法运算,帮助大家更好地理解并应用到实际开发中。 什么是矢量与标量? 在开始具体运算之…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...