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

news/2024/9/22 19:52:27/

论文: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.ppmy.cn/news/1528984.html

相关文章

使用Rust直接编译单个的Solidity合约

这里写自定义目录标题 使用Rust直接编译单个的Solidity合约前言预备知识准备工作示例 使用Rust直接编译单个的Solidity合约 前言 我们知道,我们平常开发Solidity智能合约时一般使用Hardhat框架,但是如果你是一个Rustacean (这是由 “Rust” 和 “crust…

通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制

代码地址 如果对你有帮助请给个start,本项目会持续更新,目标是做一个可用的快速微服务开发平台,成为接私活,毕设的开发神器, 欢迎大神们多提意见和建议 使用的都是spring官方最新的版本,版本如下&#xff1…

phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)

报错提示: 解决方法:官网下载phpmyadmin 5.2.1版本。 下载地址:phpMyAdmin 将网站根目录phpMyAdmin4.8.5里面的文件换成 官网下载的5.2.1版本即可。 重启网站,打开phpMyAdmin后台即可(若打不开更改 mysql密码即可&am…

Apache ZooKeeper 及 Curator 使用总结

1. 下载 官网地址:Apache ZooKeeper 点击下载按钮 选择对应的版本进行下载 2. 使用 1、解压 tar -zxf apache-zookeeper-3.9.2-bin.tar.gz2、复制配置文件,有一个示例配置文件 conf/zoo_sample.cfg,此文件不能生效,需要名称为…

C语言6大常用标准库 -- 4.<math.h>

目录 引言 4. C标准库--math.h 4.1 简介 4.2 库变量 4.3 库宏 4.4 库函数 4.5 常用的数学常量 🌈你好呀!我是 程序猿 🌌 2024感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长&…

数据结构:堆排序

更完堆,再更一期堆排序 利用容器实现堆排序 在C等高级语言中,基本上都有堆或者优先队列等容器,借助这些容器很容易实现堆排序。 将数组里面的元素先插入到容器中,建好堆, 接着将容器中的元素,按照升序或降…

C++ boost——时间与日期

文章目录 timerprogress_timerdate_time创建日期访问日期日期输出转换C结构日期长度日期运算日期区间日期区间运算日期迭代器其他功能综合运用 timer 是一个小型计时器,提供毫秒级的精度 适用于要求不高的程序计时任务 class timer { public :timer()(_start_time…

2024年9月16日--9月22日,(工作日源码抄写+周末ue5肉鸽独立游戏)

继续进行,按照周一到周五每天晚上在公司抄3小时源码gpu精粹催眠,周末独立游戏的方式,也就是说,要把独立游戏在周末做下去较长的一段时间,看看这条路能不能走通。 具体执行情况: 周一: 15&#…