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

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...