来源:arXiv
作者:Cui Long、Yongbin Liu、Chunping Ouyang、Ying Yu
单位:University of South China
发表时间:2024年7月
一、论文介绍
背景:LLM在自然语言理解方面表现出色,但开源 LLM 在医疗领域的应用仍存在局限性,例如知识全面性不足和“幻觉”问题。RAG技术可以弥补 LLM 的不足,但文档噪声和 RAG 在医疗领域的应用仍处于起步阶段。
核心:本研究提出了Bailicai框架,该框架结合了RAG技术和医疗领域的大语言模型,通过医疗知识注入、自我知识边界识别、有向无环图任务分解和检索增强生成四个子模块,有效提升了开源 LLM 在医疗领域的应用性能,并缓解了幻觉问题。
二、Bailicai框架
Bailicai框架整体流程概述:将整个医疗问答过程细分为三个主要步骤:自知识边界识别、有向无环图任务分解和检索增强生成。

1.自知识边界识别
首先,系统接收到一个医学查询,系统会检查自己是否知道这个问题的答案。如果知道(“Know”),它会直接给出专业的答案;如果不知道(“Unknown”),它会进入下一步骤。


2.有向无环图任务分解
当系统不知道答案时,会将复杂的医学问题分解成更小的子问题。会创建一个有向无环图(DAG)来表示这些子问题和它们的依赖关系。然后生成一个结构化的任务列表,用于指导后续的信息检索和生成过程。


3.检索增强
对于每个子问题,系统会在外部知识库中进行搜索以找到相关信息。系统首先将用户的医学查询与上下文信息进行嵌入处理,以生成查询的向量表示;接着,系统在资源库中检索与查询最相关的文档片段,并通过分块技术将长文档分割成更易管理的部分;随后,对这些文档块进行索引和重排,以确保检索到的信息与查询的相关性;最后,系统将这些经过筛选和排序的信息与原始医学查询相结合,生成一个综合、准确的专业答案,以响应用户的查询需求。


三、Bailicai框架的数据构造和训练
构建了包含丰富医学信息的UltraMedical数据集,通过模型导向方法筛选出相关数据,形成Biomedical Instruction数据集用于训练大语言模型(LLM)。训练中采用文献问答方法处理开放性医学问题,并通过检索和注入难题来增强模型鲁棒性。研究使用Meta-Llama-3-70B模型生成回答,并以Meta-Llama-3-88为基线,通过监督微调提升其在医学问答任务上的性能。

四、实验内容
验证Bailicai框架在医疗领域的有效性:该模型在80亿参数规模下,与现有的医疗大型语言模型、通用大型语言模型以及检索增强型生成模型相比。结果表明,Bailicai在处理医疗相关任务时,不仅能够有效减少因检索文档噪声引起的“幻觉”现象,还能提高检索增强型生成技术在医疗领域的应用效果。

评估 Bailicai 框架在不同检索文档数量下的性能:实验使用了五个医疗基准数据集,以及 Bailicai 模型进行实验。结果表明,Bailicai 框架在检索到的文档数量较少时,仍然能够保持较高的准确率,表现出良好的鲁棒性。随着检索文档数量的增加,准确率会逐渐提升并趋于稳定,这说明外部知识的补充能够有效提升模型性能。

五、论文总结
这篇论文提出了Bailicai,一个针对医疗领域的RAG框架,通过四个核心模块增强 LLM 性能:医学知识注入、自我知识边界识别、有向无环图任务分解和检索增强生成。Bailicai在训练中采用模型导向的数据选择方法,结合硬负样本和MedPrompt策略,优化数据集构建,增强模型准确性。
六、对齐思考
借鉴 Bailicai 框架使用 RAG 技术的思路,通过域优化、自我知识边界识别、有向无环图任务分解和检索增强生成等技术手段有效提高慢性病问答的准确性和全面性,借鉴其中MedPrompt 策略, 设计针对中西医慢性病问答任务的提示词,引导模型进行更准确的推理和回答。
1.域适配与知识注入:针对特定领域(如中西医慢性病)进行模型微调和知识注入,构建专用数据集,提升模型在该领域的准确性和专业性。
2.知识边界识别与任务分解:通过自我知识边界识别模块判断模型是否具备回答问题的能力,并利用有向无环图任务分解将复杂问题拆解成可处理的子任务,提高问答效率和准确性。