如何构建一个可信的联邦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)的乘法与除法是常见的操作。本篇文章将通过详细分析,以及实例讲解矢量和标量的乘除法运算,帮助大家更好地理解并应用到实际开发中。 什么是矢量与标量? 在开始具体运算之…...

javalock(四)AQS派生类之Semphore逐行注释
简单概括: Semphore是一把共享锁(即读锁),即实现了AQS的tryAcquireShared&&tryReleaseShared函数Semphore的逻辑是这样: 创建semphore的时候会初始化一个锁容量即permits,即最多同时允许permits个…...

【C语言】头文件”“和<>的详解
前言 作者在刚开始学C语言的时候,都是用的< >去引用头文件,但在学习STM32的时候发现,程序中大量使用" "去引用双引号。 那么二者有什么区别呢? 无论使用哪种方式,头文件的目的都是为了引用你需要的文件供你编程使…...

Elasticsearch:什么是信息检索?
信息检索定义 信息检索 (IR) 是一种有助于从大量非结构化或半结构化数据中有效、高效地检索相关信息的过程。信息(IR)检索系统有助于搜索、定位和呈现与用户的搜索查询或信息需求相匹配的信息。 作为信息访问的主要形式,信息检索是每天使用…...

Spark-Streaming容错语义
一、背景 为了理解Spark Streaming提供的语义,我们先回顾西Spark RDD的基本容错语义学。 RDD是一个不可变的、确定性可重新计算的分布式数据集。每个RDD都记住在容错输入数据集上用于创建它的确定性操作的沿袭。如果RDD的任何分区由于工作节点故障而丢失ÿ…...

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程
2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约,线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式,范围涉及电竞、运动、音乐…...

GUI07-学工具栏,懂MVC
MVC模式,是天底下编写GUI程序最为经典、实效的一种软件架构模式。当一个人学完菜单栏、开始学习工具栏时,就是他的一生中,最适合开始认识 MVC 模式的好时机之一。这节将安排您学习: Model-View-Controller 模式如何创建工具栏以及…...

【进程篇】04.进程的状态与优先级
一、进程的状态 1.1 进程的状态 1.1.1 并行与并发 • 并行: 多个进程在多个CPU下分别,同时进行运行 • 并发: 多个进程在一个CPU下采用进程切换的方式,在一个时间片内,让多个进程都得以推进 1.1.2 时间片的概念 LInux/windows这些民用级别…...

ElasticSearch 数据聚合与运算
1、数据聚合 聚合(aggregations)可以让我们极其方便的实现数据的统计、分析和运算。实现这些统计功能的比数据库的 SQL 要方便的多,而且查询速度非常快,可以实现近实时搜索效果。 注意: 参加聚合的字段必须是 keywor…...

科研学习|论文解读——智能体最新研究进展
从2024-12-13到2024-12-18的45篇文章中精选出5篇优秀的工作分享 Can Modern LLMs Act as Agent Cores in Radiology~Environments? Achieving Collective Welfare in Multi-Agent Reinforcement Learning via Suggestion Sharing A systematic review of norm emergence in …...

面试小札:Java后端闪电五连鞭_8
1. Kafka消息模型及其组成部分 - 消息(Message):是Kafka中最基本的数据单元。消息包含一个键(key)、一个值(value)和一个时间戳(timestamp)。键可以用于对消息进行分区等…...