热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >再看Medical Graph RAG增强医疗问答方案:兼读RAG中的细粒度引文生成思路

再看Medical Graph RAG增强医疗问答方案:兼读RAG中的细粒度引文生成思路

来源:互联网 更新时间:2026-08-22 14:16

今天是2024年8月10日,星期六,北京,天气晴。

再看Medical Graph RAG增强医疗问答方案:兼读RAG中的细粒度引文生成思路

这几天,RAG方向又冒出几个挺有意思的新工作,集中来看,刚好形成了一个有趣的对比。先说说其中的一个警示:在少数别有用心的特定提示下,GPT-4o还会发出非常不宜的语音,比如暴力的尖叫和枪声。这件事值得所有做应用开发的同学高度重视——应用开发中必须得采取严格的措施来过滤,这不仅是一个技术问题,更是一个严肃的安全问题。

切入正题,今天挑了两个具有代表性的RAG工作来细读:一个是针对细粒度引文生成的新思路,另一个是面向医疗领域的Medical Graph RAG方案。都是硬核干货,值得花时间。

一、关于RAG中的细粒度引文生成思路

引文生成,说白了就是让模型在给出答案的同时,还能明确告诉你它的依据来自哪段文字。这确实是RAG落地过程中的一个核心难点。目前很多方案都依赖于对大模型进行微调,但这个新路子不一样。

论文《Learning Fine-Grained Grounded Citations for Attributed Large Language Models》(arXiv:2408.04568,代码在https://github.com/LuckyyySTA/Fine-grained-Attribution)提出了一套自动数据生成流程和两阶段训练框架FRONT,思路清晰,很有启发性。

1、自动数据生成

这一套流程包含三个核心组件:数据收集、属性答案生成和数据过滤。

  • 数据收集

    :从AQuAMuSe数据集拿问题,用 Sphere 语料库检索出前100篇相关文档,再通过 RankVicuna 重新排名,最后选出最相关的5篇文档。
  • 属性答案生成

    :将上述问题与文档一起喂给ChatGPT,让它生成带引用标注的答案。
  • 数据过滤

    :这一步是关键,通过两个标准来筛选——信息性(答案是否提供了足够的信息)和可归属性(答案是否正确归属到引用的文档)。

关于数据过滤,具体的操作值得注意:先由ChatGPT做一轮信息性注释,筛掉那些废话连篇的答案。然后,基于人工标注的数据训练一个鉴别器,把答案的可归属性分为三个等级:完全支持、部分支持、不支持。最后计算可归属性得分的平均值,设一个阈值(比如0.8),低于这个值的全扔掉。通过这套流程,最终留下了大约8000条高质量的训练数据。

2、两阶段训练框架FRONT

FRONT框架的目标很明确:让大模型不仅能生成答案,还能精确指出答案是从哪段文档中来的,从而减少幻觉,增强可验证性。它分两个阶段。

第一阶段:Grounding Guided Generation (G3)

这一阶段的思路很直接:给模型输入一个问题(Q)和检索到的文档(Documents),让模型先选出相关的引用片段(Grounding),再基于这些引用生成答案。相当于让模型先勾重点,再写作文。

第二阶段:Consistency-Aware Alignment (CAA)

G3阶段虽然能生成引用,但引用和答案之间有时候会“对不上”。CAA就要解决这个不一致性问题。做法是,拿G3阶段生成的两个答案(一个一致,一个不一致),通过直接偏好优化(DPO)让模型学会偏好一致的那个。这本质上是一种强化学习式的对齐。

二、Medical Graph RAG做医疗领域问答的方案

将LLM部署到特定领域,尤其是医学这种容错率极低的领域,一直是个大难题。一个错误的回答可能造成严重后果。Medical Graph RAG试图通过图检索增强生成来给出更有依据、更安全的答案。

论文《Medical Graph RAG: Towards Safe Medical Large Language Model via Graph Retrieval-Augmented Generation》(arXiv:2408.04187,代码:https://github.com/MedicineToken/Medical-Graph-RAG/tree/main)。从实现思路上看,和微软提出的graph-rag异曲同工,但针对医学领域做了专门的定制。

1、核心思想

这套方案的核心在于构建一个层次化的医学图结构。

首先,将医学文档分割成块,提取出实体,然后把这些实体组织成一个跨三个层次的图结构——从最原始的用户文档,到通用的医学教科书知识,再到基础医学术语。这三层结构形成了一个倒金字塔式的知识体系。

2、医学图谱构建

1)语义文档分割

大型医学文档通常包含多个主题。传统方法按固定的字符数或标记来切分,往往会切碎上下文,丢失主题的连贯性。这里采用了一种更聪明的方法:先用换行符把段落分开,然后进行语义分块,通过LLM来判断是和新段落合并还是单独成块。同时,引入滑动窗口技术(一次管理5个段落),滚动前进,减少噪声干扰。最后设置一个硬性阈值——最长的块不能超过LLM的上下文长度限制。

2)元素提取

对于每个文本块,通过设计好的提示模板,让LLM识别出所有相关实体,包括名称、类型、描述。类型从预定义的医学分类中选取,描述是LLM根据上下文生成的解释。每次提取都记录唯一的ID来追踪来源,并且提取过程会重复多次,直到LLM自己觉得已经“挖干净”为止。

3)层次链接

这可能是整个方案中最精巧的设计。医学领域讲究精确,不能随意发挥。所以作者构建了一个三层结构:

第一层:用户提供的原始文档(比如某家医院的医疗报告)。从这里提取的实体,会被链接到第二层。

第二层:由医学教科书和学术文章构建的图。这一层是预先构建好的,属于通用的医学知识。

第三层:基础医学术语层,来自UMLS(统一医学语言系统)。这里的每个术语都有精确的定义和关系。第二层的实体通过文本嵌入的余弦相似度,与第三层的术语进行匹配。

这种层级链接的设计,本质上是为每个医学概念找到了“根”,极大增强了答案的可信度。

4)关系链接

指示LLM识别所有实体之间的关系,包括源实体、目标实体、关系描述,以及一个亲密程度分数(从“非常相关”到“非常无关”)。每个文本块都会生成一个加权有向图,称为元图。

5)标签生成与合并图

有了元图之后,需要将它们合并成一张全局图。具体方法是用LLM为每个元图生成摘要标签,然后计算不同元图之间的标签相似度,相似度最高的合并成一个新图。合并后的图保留原始元图和标签,继续生成新的摘要,再和别的图比较。这个过程可以重复,直到只剩下一张全局图。实际应用中,限制重复24次,以免丢失过多细节。

3、基于图的检索——U-检索

当用户提出查询时,LLM会采用一套名为U-检索的策略,高效地从图中提取信息。

第一步,用摘要标签进行自上而下的匹配,从最大的全局图逐层下探,直到命中元图层,获取多个相关实体。

第二步,收集这些实体的全部内容,包括它们关联的基础医学知识、与其他实体的关系、以及所有链接实体的信息。

第三步,LLM先生成一个中间响应,然后结合上层图的摘要信息,自下而上地不断迭代、细化,直到生成最终响应。这相当于让LLM先看局部细节,再回看整体全貌,确保回答既有深度又有广度。

4、具象化的效果

可以看看最终的效果。

总结

这两个工作,一个聚焦于细粒度引文的生成与对齐,一个侧重于通过图结构来增强领域知识的深度和可靠性。虽然切入点不同,但都指向RAG落地的核心——如何让模型给出的答案更有依据、更可信。里面的算法思想都值得细细品味。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc