【论文阅读】Benchmarking Retrieval-Augmented Generation for Medicine

news/2024/9/19 22:15:17 标签: 论文阅读

论文:https://arxiv.org/abs/2402.13178

代码:

GitHub - Teddy-XiongGZ/MIRAGE: Official repository of the MIRAGE benchmark

GitHub - Teddy-XiongGZ/MedRAG: Code for the MedRAG toolkit

研究背景:

系统地评估医用rag QA系统(MIRRAGE作为bechmark, MEDRAG作为RAG工具包),并且找到retriever和LLM的最佳配置

贡献:

  1. 提出MIRAGE,这是首个用于系统比较不同医疗RAG系统的基准。
  2. MEDRAG,一个用于医疗QA的RAG工具包,它包含各种特定领域的语料库、检索器和llm
  3. 根据我们对MIRAGE和MEDRAG的综合结果和分析,为医疗RAG系统的研究和部署推荐一套最佳实践

研究方法:

MIRAGE

基准

Zero-Shot Learning (ZSL):在没有提供任何示例的情况下评估模型直接回答从未见过的问题的能力。

Multi-Choice Evaluation (MCE):使用多项选择题的形式来评估模型的回答能力,这是一种大规模评价医疗问答系统的常用方法。

Retrieval-Augmented Generation (RAG):通过检索外部知识库中的相关文档来增强生成模型的回答能力,以减少幻觉问题并提供最新的知识。

Question-Only Retrieval (QOR):在检索阶段仅输入问题而不提供答案选项,使其更符合现实中医疗问答的实际需求。

 

数据集 

医疗RAG benchmark "MIRAGE"。该benchmark中包含7663个多选医疗问题,来自五个数据集。

  • MMLU-Med: 医学考试题数据集,包含复杂的医学问题,考察医学知识的深度。
  • MedQA-US: 美国医师执照考试相关问题,主要用于评估医学考试能力。
  • MedMCQA: 多学科、多选择医学考试数据集,涵盖多个医学领域。
  • PubMedQA*: 来自PubMed的医学文献问答数据集,问题基于研究文章,偏向生物医学研究。
  • BioASQ-Y/N: 是/否类型的生物医学研究问答数据集,问题简短,基于生物医学文献。

MEDRAG Toolkit 

MEDRAG是一个在系统评估医疗RAG的工具包。它由三个主要部分组成:语料库(PubMed, StatPearls,教科书,维基百科),retriever (BM25, Contriever, SPECTER, MedCPT)和llm (GPT-4, GPT-3.5, Mixtral, Llama2, MEDITRON)。该系统有助于对这些组件的不同组合进行可靠的分析。

语料库选择

  1. PubMed:

    • 特点: 包含了大量生物医学文献摘要,是一个规模庞大且领域专门的数据库,专门用于生物医学和生命科学领域。
    • 用途: 在医疗问答任务中,PubMed提供了权威且领域相关的文档,是大多数医疗检索任务的核心语料库。
  2. StatPearls:

    • 特点: 提供临床决策支持的文档,内容简洁,适合医疗实践和诊断的快速参考。
    • 用途: 适用于需要快速查阅医疗决策支持信息的任务,尤其是临床环境中的问题。
  3. Textbooks:

    • 特点: 包含医学教科书的内容,专注于领域内的权威知识,提供详细的背景信息和理论知识。
    • 用途: 特别适合用于医学考试相关的问答任务,提供较为详尽的学术信息。
  4. Wikipedia:

    • 特点: 通用知识库,覆盖广泛的主题,包括医学知识,但内容不如其他医学领域专用的语料库精准。
    • 用途: 提供广泛的背景知识,适合需要通用知识的任务,但在专门的医学任务中效果较弱。
  5. MedCorp:

    • 特点: 通过组合多个语料库(PubMed、StatPearls、Textbooks、Wikipedia)形成的混合语料库,涵盖了各种来源的医学和通用知识。
    • 用途: 适合跨领域的检索任务,能够为各种类型的问题提供更加综合的知识支持。

Retriever选择

Reciprocal Rank Fusion (RRF) 用来融合检索结果

  • BM25:

    • 类型: 基于词汇的检索算法。
    • 特点: 通过词频和文档频率对文档进行排名,适用于通用领域的文本检索,在简单文本匹配方面表现良好。
    • 优势: 简单且高效,特别适合处理短文本和明确的词匹配任务。
    • 适用领域: 通用领域。
  • Contriever:

    • 类型: 通用领域的语义检索器。
    • 特点: 通过语义对文档进行匹配,适合长文本和复杂语义任务,能捕捉到词汇之间的关系。
    • 优势: 能够更好地处理语义相似性任务,在通用领域具有较强的泛化能力。
    • 适用领域: 通用领域。
  • SPECTER:

    • 类型: 科学领域的语义检索器。
    • 特点: 专门为科学文献设计,利用文献的引文信息来训练模型,从而提高科学领域文档的检索精度。
    • 优势: 在科学和技术文献中表现优异,适合需要深入理解科学文献的任务。
    • 适用领域: 科学领域,尤其是论文和技术文献。
  • MedCPT:

    • 类型: 生物医学领域的语义检索器。
    • 特点: 基于PubMed用户日志训练的医学专用检索器,专注于检索生物医学相关文献。
    • 优势: 针对医学文献进行了优化,在检索与医学问题相关的信息时具有明显优势。
    • 适用领域: 生物医学领域,特别是医学和生物医学文献。

模型选型:

不含RAG的CoT作为比较基线

实验结果 

对比不同的LLM

1. GPT-4表现优异:在CoT(链式思维)模式下,GPT-4显著优于其他模型,在MIRAGE基准上取得了73.44%的平均得分。

2. MEDRAG显著提升其他模型:通过MEDRAG,GPT-3.5和Mixtral等模型的表现显著提升,接近70%,缩小了与GPT-4的差距。

3. Mixtral与GPT-3.5对比:尽管Mixtral在CoT模式下略高于GPT-3.5,但在MEDRAG设置下GPT-3.5表现更好,领先约3%。

4. 领域特定模型优势:MEDITRON和PMC-LLaMA在PubMedQA*任务中明显优于GPT-4,展示了领域知识在医学问答中的重要性。

5. 监督微调与RAG对比:虽然监督微调能更好地融合医学知识,但RAG作为一种灵活且成本较低的方式,也能显著提升LLM的表现。

特定任务影响:在像PubMedQA*和BioASQ-Y/N这样的任务中,MEDRAG显著提升了Llama2的表现,而在考试题型问题上,监督微调可能表现更优。

对比不同retriever和语料库

  1. MedCPT表现最佳:在各类生物医学检索任务中,特别是与PubMed语料库配合时,MedCPT展现出其领域特化的优势,一直优于其他检索器。

  2. BM25:作为词汇检索器,在使用MedCorp语料库时表现非常强劲,尤其在生物医学问答任务中展示出稳定的可靠性。

  3. Contriever:在使用像Wikipedia这样的通用领域语料库时表现较好,但在生物医学领域任务中,其表现不如像MedCPT这样的领域专用检索器。

  4. SPECTER:虽然为科学文献检索而设计,但在医学问答任务中的表现较差,原因可能是其训练侧重点在文档相似性,而非查询与文档的相关性。

  5. RRF融合检索器:通过融合多个检索器的结果,RRF有效提高了检索性能。比如,RRF-4(融合BM25、MedCPT、Contriever和SPECTER)在MIRAGE基准测试中表现最优,但在某些任务中,像RRF-2(BM25和MedCPT的组合)这样更简单的融合方法反而能超过更复杂的融合方案。

这些结论表明,针对生物医学任务,使用像MedCPT这样的领域专用检索器非常重要,且通过融合多个检索器的结果可以显著提升系统的鲁棒性

 搜索chunk数的影响(Performance Scaling)

  • 检索片段数影响模型表现:当检索片段数较少时(例如k≤8),MEDRAG不能提供足够的信息,反而会阻碍LLM利用其内在知识得出正确答案

  • 检索片段数量与性能呈现递增关系:当检索片段数增加时,系统性能随着有用知识的增加而提高,但当片段数过大时,噪声信号比例增加,性能反而下降​

  • PubMedQA*任务表现与片段数的关系:在PubMedQA*任务中,MEDRAG只需k=1的检索片段就能达到高准确率,但随着片段数增加,性能下降​

  • BioASQ-Y/N任务的显著提升:在BioASQ-Y/N任务中,随着片段数的增加,系统准确率显著提升​

对比chunk在prompt中位置影响

  • 中间位置的“lost-in-themiddle”现象:当关键信息出现在检索片段的中间时,MEDRAG的表现最差,这被称为“lost-in-the middle”,表明信息的位置对模型的回答能力有很大影响

  • 模型准确率的U型变化:在PubMedQA*和BioASQ-Y/N数据集中,模型的准确率随片段中关键信息位置的变化呈现先下降后上升的U型变化,U-shaped decreasing-then-increasing pattern,这暗示在未来的医学RAG研究中安排片段位置的重要性

 关于MedCorp语料库中不同来源的比例

  • Wikipedia比例下降:在医疗问题中,Wikipedia的片段比例明显下降,因为其很多片段与生物医学无关 。

  • 不同任务的检索模式:医学考试任务(如MMLU-Med、MedQA-US和MedMCQA)检索出的片段更多来自教科书和StatPearls,而与研究相关的问题(如PubMedQA*和BioASQ-Y/N)更多地检索到PubMed片段 。

  • 教科书在MedQA-US中的作用:MedQA-US数据集中,教科书片段占比较大,这是因为该数据集包含了美国医师执照考试中常用的教科书 。

最佳实践配置

  1. 语料库选择:PubMed和MedCorp是两个在所有任务中表现优于CoT的语料库,尤其是PubMed因其广泛的生物医学知识适用于各种医学问题 。

  2. 检索器选择:在四个独立检索器中,MedCPT表现最为可靠,并且BM25也是一个强大的选择。融合检索器(例如RRF-2,结合BM25和MedCPT)可以提供更强的性能 。

  3. LLM选择:目前GPT-4是性能最佳的模型,达到约80%的准确率,但GPT-3.5在性能和成本之间具有更好的平衡。对于数据隐私敏感的高风险场景,Mixtral等开源模型是不错的选择 。

 局限性:

  • RAG架构局限:本文主要评估了传统的RAG架构,未涉及新兴的RAG设计(如active RAG),这是未来的一个重要探索方向

  • 资源覆盖不足:虽然本文的MEDRAG工具包覆盖了多个语料库、检索器和LLM模型,但仍有其他潜在的有用资源未被纳入,例如PubMed Central (PMC)的全文文章和常见问题解答数据​ Frequently Asked Questions (FAQs)。

  • 检索组件评价不足:由于其他3个数据集缺乏关键信息的标签,本文仅对PubMedQA*和BioASQ-Y/N的数据集进行了检索组件的评估(对于其他数据集(如MMLU-Med、MedQA-US和MedMCQA),虽然retriever在这些数据集上有实验结果,但由于没有标注对应的支持文档,因此无法具体评估retriever找到的文档是否真正有助于回答这些问题),未来研究应关注这方面的补充。

  • 任务范围局限:本研究主要集中在医学问答任务上,其他可能受益于RAG系统的知识密集型任务(如事实验证)未进行系统评估​。

  • 多项选择问题限制:尽管本文的评估设置限制了检索阶段不接触选择项,但LLM在最终预测时仍需使用选项输入,这可能影响模型性能。(对现实场景的模拟不完全:在实际的医疗问答场景中,通常只会给出问题,而不会提供预设的答案选项。但在多项选择评估中,模型在最终预测时可以利用这些预设的答案选项进行推断,这与真实世界中的信息检索和生成任务有所不同,导致评估的结果可能不完全反映模型在实际应用中的表现​可能降低模型挑战性:提供选项可能降低了模型的挑战性,因为它们可以通过排除法或其他策略推测正确答案,而不是完全依靠知识和检索能力来生成答案,这也可能导致对模型能力的高估​)

 

 

 


http://www.niftyadmin.cn/n/5666213.html

相关文章

Mac使用技巧-来自苹果专人在线辅导服务

好记性不如烂笔头 跟着技术人员从头到尾操作了一遍,发现应该跟人家学习的时候,是很容易接受并接收知识点的,但发现还是要做一下笔记,好记性不如烂笔头。 用来用去,感觉Mac更适合不搭配鼠标使用,因为鼠标的滑…

整整3W字笔记,Redis最核心的秒杀业务、分布式锁、消息队列相关原理一篇文章就搞定(黑马点评项目)

目录 四、 优惠卷秒杀系列功能实现 4.1 全局ID生成器 4.1.1 全局ID生成器的选型 4.1.2 全局ID生成器的实现 4.1.3 全局ID生成器的测试 4.1.4 其他ID生成器的拓展 4.2 利用PostMan模拟管理员后台添加秒杀优惠卷信息 【代码实现】 【PostMan测试】 4.3 优惠卷秒杀下单功能…

算法——贡献法

前天的AtCoder Beginner Contest 371 D题碰到了这个贡献法,刚好之前的第十一届蓝桥杯省赛第二场真题AcWing 2868. 子串分值也是用的这个方法hh,但是赛时没有搞出来。。。 AcWing 2868. 子串分值 对于一个字符串 SS,我们定义 SS 的分值 f(S)f(S) 为 SS 中…

Linux服务器上下左右键乱码^[[D ^[[C ^[[A ^[[B

查看shell环境: echo $SHELL如果出现 bin/sh, 那么输入: bash学术会议征稿 想要了解国内主办的覆盖学科最全最广的学术会议,请前往【会议官网】: 学术会议官网www.ais.cn

01_快速入门

读取数据 import pandas as pd# df pd.read_excel(https://xxxx/xxx//xx.xslx) # 读取网络数据 # df pd.read_excel(rd:\data\xx.xslx) # 读取本地文件 # 如果是csv文件,用read_csv()函数 df pd.read_csv(seaborn/iris.csv)查看数据 df.head() # 前5条记录 d…

MiniDB 使用手册

MiniDB 使用手册 核心功能指南表的创建与管理数据操作事务管理 本使用文档旨在帮助用户快速上手使用本数据库系统。 进行数据库操作之间必须输入init命令进行初始化 核心功能指南 表的创建与管理 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR …

【Elasticsearch系列七】索引 crud

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

数据库基础知识---------------------------(2)

MYSQL的存储过程 就是数据库 SQL 语言层面的代码封装与重用 语法格式 delimiter 自定义结束符号 create procedure 存储名({in,out,inout} 参数名,数据类型...) begin sql 语句 end 自定义结束符 delimiter; 变量定义 局部变量 用户自定义 仅在begin / end 块中有效 当将查询…