M3D:多模态大语言模型助力3D医学图像分析的进步
随着人工智能技术的快速发展,大语言模型在各个领域都展现出了强大的潜力。在医学影像这一关键领域,研究人员们也一直在探索如何将大模型的优势与3D医学图像分析相结合。近日,北京智源人工智能研究院(BAAI)的研究团队推出了一个名为M3D的开创性项目,这是首个针对3D医学分析的多模态大语言模型系列工作,为该领域带来了新的突破与机遇。
M3D项目概览
M3D项目包含三个核心组成部分:
- M3D-Data: 目前最大规模的开源3D医学数据集,包含12万对图像-文本配对数据和66.2万对指令-响应数据。
- M3D-LaMed: 多功能的多模态模型,采用M3D-CLIP预训练的视觉编码器,能够执行图像-文本检索、报告生成、视觉问答、定位和分割等多种任务。
- M3D-Bench: 最全面的自动评估基准,涵盖8个任务。
这三个部分共同构成了一个完整的技术生态系统,为3D医学图像分析提供了强大的支持。
M3D-Data: 大规模3D医学数据集
M3D-Data是该项目的基石,它包含四种类型的数据:
- M3D-Cap: 120,092对3D图像-文本配对数据
- M3D-VQA: 96,170个3D图像以及509,755个问题和答案
- M3D-Seg: 5,772个3D图像,附带149,196个类别文本和分割掩码
- M3D-RefSeg: 210个3D图像,配有2,778个问题、答案和分割掩码
这些数据覆盖了多种医学影像模态和分析任务,为模型的训练和评估提供了丰富的素材。研究者们可以通过HuggingFace或ModelScope平台获取这些数据集。
M3D-LaMed: 多功能多模态模型
M3D-LaMed是该项目的核心模型,它采用了创新的架构设计:
- 视觉编码器: 使用M3D-CLIP预训练的3D ViT模型
- 语言模型: 基于Phi-3-4B或Llama-2-7B等大语言模型
- 多模态对齐: 通过预训练和指令微调实现视觉与语言的对齐
- 分割模块: 集成了SegVol分割模型
通过这种设计,M3D-LaMed能够执行多种复杂任务,包括:
- 图像-文本检索
- 医学报告生成
- 视觉问答
- 目标定位
- 语义分割
目前,研究团队已经发布了两个版本的M3D-LaMed模型:
- M3D-LaMed-Phi-3-4B: 基于Phi-3-4B语言模型,体积更小但性能强劲
- M3D-LaMed-Llama-2-7B: 基于Llama-2-7B语言模型,能力更全面
这些模型都可以在HuggingFace平台上获取和使用。
M3D-Bench: 全面的评估基准
为了全面评估模型的性能,研究团队还提出了M3D-Bench评估基准。它涵盖了8个关键任务:
- 图像-文本检索
- 报告生成
- 封闭式视觉问答
- 开放式视觉问答
- 指代表达理解
- 指代表达生成
- 语义分割
- 指代表达分割
这个基准不仅可以评估M3D-LaMed模型,也可以用于其他3D医学图像分析模型的性能评估,为该领域的研究提供了统一的衡量标准。
模型训练与使用
M3D-LaMed模型的训练过程主要分为两个步骤:
- 预训练: 使用图像-文本数据对视觉和语言进行对齐
- 视觉指令微调: 通过多任务数据进行LoRA训练,使模型适应各种下游任务
研究团队还提供了详细的训练脚本和配置文件,方便其他研究者复现和改进模型。
对于想要直接使用M3D-LaMed模型的用户,可以通过HuggingFace平台轻松加载和运行模型。以下是一个简单的示例代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import numpy as np
model_name = 'GoodBaiBai88/M3D-LaMed-Phi-3-4B'
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
# 准备3D医学图像输入
image_np = np.load('example_image.npy')
image_pt = torch.from_numpy(image_np).unsqueeze(0)
# 设置问题
question = "Can you provide a caption for this medical image?"
# 生成回答
input_ids = tokenizer(question, return_tensors="pt").input_ids
output = model.generate(image_pt, input_ids, max_new_tokens=100)
answer = tokenizer.decode(output[0], skip_special_tokens=True)
print(answer)
M3D项目的意义与前景
M3D项目的推出对3D医学图像分析领域具有重要意义:
-
数据贡献: M3D-Data为研究者提供了大规模、高质量的3D医学数据集,这对于模型训练和算法开发至关重要。
-
技术创新: M3D-LaMed模型展示了如何将大语言模型与3D视觉任务有机结合,为多模态AI在医疗领域的应用开辟了新路径。
-
评估标准: M3D-Bench为该领域提供了全面的评估基准,有助于推动技术进步和公平比较。
-
开源共享: 项目团队将数据集、模型和代码都开源发布,极大地促进了学术界和产业界的合作与创新。
-
医疗应用潜力: M3D-LaMed模型的多任务能力为临床决策支持、医学教育等领域带来了新的可能性。
展望未来,M3D项目有望在以下方面继续发展:
- 进一步扩大数据规模,覆盖更多医学影像模态和疾病类型
- 优化模型架构,提升性能并降低计算资源需求
- 探索更多下游任务,如疾病诊断、治疗规划等
- 加强与临床实践的结合,推动AI辅助诊断系统的落地应用
结语
M3D项目的推出标志着3D医学图像分析进入了一个新的发展阶段。通过结合大语言模型的强大能力和专业的医学知识,M3D为医疗AI的发展提供了新的思路和工具。虽然目前该技术还处于研究阶段,但其潜力是巨大的。我们期待看到更多研究者和开发者能够基于M3D项目进行探索,共同推动医疗人工智能技术的进步,最终造福患者和整个医疗健康领域。
随着项目的持续更新和完善,M3D有望成为3D医学图像分析领域的重要基础设施,为相关研究和应用提供强有力的支持。让我们共同期待M3D项目在未来能够带来更多突破性的进展,为医学影像诊断和治疗带来革命性的变革。