Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md
3DMed-RAG: Multimodal RAG for Medical Consultation
项目简介
本项目提出 3DMed-RAG,一个集成文本、图像-文本多模态的三维医学问诊系统。系统能够同时处理纯文本问诊、医学图像分析、图像+文本联合查询三种输入模态,面向真实临床场景提供高质量的医学辅助诊断。我们与浙二医院合作,基于 700 张眼科 CD 图像(含 OCT、OCTA、眼底照)进行验证,经专业医学鉴定,导诊效果优秀。
核心创新
1. 领域对齐负面拒绝机制(文本 RAG)
在经典 RAG 的检索-生成流程基础上,我们提出领域对齐负面拒绝机制(Domain-Aligned Negative Rejection),解决医学 RAG 中"检索到不相关内容仍强行回答"的安全性问题。具体而言:
- 医学领域自动分类:基于领域关键词字典与医学实体识别,将用户查询自动归类至 8 大专科(放射科、内科、肿瘤科、消化科等),并提取查询中的医学实体用于术语扩展;
- 领域感知文档分块:按照医学文档的临床结构(病史、体格检查、影像学检查、诊断、治疗方案等)进行语义分割,每个文本块附带领域标签、医学术语密度、章节类型等元数据;
- 领域加权重排序:在 FAISS 粗检索之后,基于领域匹配度、医学术语密度、实体重叠度、章节相关性四个维度对候选结果进行加权重排序;
- 多维置信度评估与拒绝决策:综合最大相似度、覆盖度、一致性、医学相关性、领域对齐度五项指标计算最终置信度,低于阈值时主动拒绝回答并引导用户就医,避免产生不可靠的医学建议。
2. CLIP 双路加权融合检索(多模态 RAG)
针对医学图像的分析与描述生成,我们提出基于 CLIP 双索引加权融合的多模态 RAG 架构,这是本项目的核心模块:
- 统一嵌入空间:使用 CLIP(ViT-Large-Patch14)将医学图像和对应的临床描述文本编码到同一 768 维语义空间,实现跨模态对齐;
- 双路 FAISS 索引:对同一批训练数据分别构建图像嵌入索引和文本嵌入索引。查询时,将待分析图像经 CLIP 编码后,同时在两个索引中检索——图像索引捕捉视觉形态相似性,文本索引利用 CLIP 的跨模态能力捕捉语义相关性;
- Alpha 加权融合:以
α=0.6的图像权重和1-α=0.4的文本权重融合两路检索分数,使"视觉相似 + 语义相关"的候选获得最高排名,相比单一索引检索提升了召回的准确性和鲁棒性; - 同类型优先策略:根据查询图像类型(OCT / OCTA / 眼底照)优先匹配同类型的参考病例,保证检索结果的临床可比性;
- RAG 增强多模态生成:将检索到的 Top-K 参考病例的完整临床描述与查询图像原图共同输入 GPT-4o 多模态 API,使 LLM 在"看到图像 + 参考类似病例描述"的条件下生成专业的医学影像描述;
- 患者级综合报告:支持对同一患者的多张多类型检查图像(OCT + OCTA + 眼底照)逐一分析后,聚合生成一份综合性眼科诊断报告。
系统架构
3DMed-RAG 系统架构
┌─────────────────────────────────────────────────────────┐
│ 用户输入 │
│ 文本查询 / 医学图像 / 图像+文本 │
└──────┬──────────────────┬───────────────────┬───────────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌───────────────┐ ┌────────────────────┐
│ 文本 RAG │ │ 多模态 RAG │ │ 患者综合报告 │
│ │ │ │ │ │
│ MiniLM 编码 │ │ CLIP 双路编码 │ │ 多图聚合 + LLM │
│ 领域感知分块 │ │ 双索引加权融合 │ │ 综合诊断报告生成 │
│ 领域加权重排 │ │ 同类型优先 │ │ │
│ 置信度拒绝 │ │ GPT-4o 生成 │ │ │
└──────────────┘ └───────────────┘ └────────────────────┘
技术栈
| 层次 | 技术 |
|---|---|
| 多模态编码 | OpenAI CLIP (ViT-Large-Patch14) |
| 文本嵌入 | sentence-transformers (MiniLM) |
| 向量检索 | FAISS (IndexFlatIP) |
| 生成模型 | GPT-4o (多模态) / DeepSeek-R1 |
| 文档解析 | PyPDF2, python-docx |
| 图像处理 | Pillow, OpenCV |
| 数据管理 | Pandas, NumPy |
关于 About
我提出了一个集成文本、图像文本多模态、图像的三维医学问诊系统:3DMed-RAG,该系统能够同时处理文本、图像、图像文本三种query形式,并做出高质量医学诊断。我们基于经典的RAG,在检索排位部分提出领域对齐负面拒绝机制,二次判断问诊的专业性;对于官方专家导诊文档(文档末尾一般有流程图概述),我们增强该流程图的数据,使llm在回答导诊路线相关回答时能更加详细。 对于医学图像,我们尝试基础的VQA-MedRAG模型,使用文本-图像对眼科描述问题进行尝试,为了提升准确性,使用Multimodal-RAG对index的文本、图像编码进行加权处理,对未知的患者图像进行有效的医学信息描述。
语言 Languages
Python100.0%
提交活跃度 Commit Activity
代码提交热力图
过去 52 周的开发活跃度3
Total Commits峰值: 2次/周
LessMore