11. XrayGLM —— 首个会看胸部X光片的中文多模态医学大模型
项目简介
通用领域的大语言模型 (LLM),例如 ChatGPT,在遵循指令和产生类似人类响应方面取得了显著的成功,这种成功间接促进了多模态大模型的研究和发展,如通用领域的多模态大模型MiniGPT-4、mPLUG-Owl、Multimodal-GPT和LLaVA,然而,此类多模态大模型却很少出现在医学领域的研究中,阻碍了相关研究发展。visual-med-alpaca虽然在医学多模态大模型方面做出了一些很有成效的工作,然而其数据为英文诊断报告,不利于促进中文领域医学多模态大模型的研究发展。XrayGLM力图解决上述问题。XrayGLM在医学影像诊断和多轮交互对话上显示出了非凡的潜力。
项目主要包括以下两项工作:
- 借助ChatGPT以及公开的数据集,构造了一个X光影像-诊断报告对的医学多模态数据集;
- 将构建的中文胸部X光片诊断数据集在VisualGLM-6B进行微调训练,并开放了部分训练权重用于学术研究
项目工作由澳门理工大学应用科学学院硕士生王荣胜 、段耀菲 、李俊蓉完成,指导老师为檀韬副教授、彭祥佑老师,于2023年5月发布于github上。
论文及开源地址
代码地址
https://github.com/WangRongsheng/XrayGLM
数据集构建
数据集主要采用了以下两个:
- MIMIC-CXR是一个公开可用的胸部X光片数据集,包括377,110张图像和227,827个相关报告。
- OpenI是一个来自印第安纳大学医院的胸部X光片数据集,包括6,459张图像和3,955个报告。
在上述工作中的报告信息都为非结构化的,不利于科学研究。为了生成合理的医学报告,项目组对两个数据集进行了预处理,并最终得到了可以用于训练的英文报告。除此之外,为了更好的支持中文社区发展,借助ChatGPT的能力,项目组将英文报告进行了中文翻译,并最终形成了可用于训练的数据集。
数据集 | 数量 | 下载链接 | 质量 |
---|---|---|---|
MIMIC-CXR-zh | - | - | - |
OpenI-zh | 6,423 | 诊疗报告(英文)、诊疗报告(中文) 、X光影像 | 低 |
OpenI-zh-plus | 6,423 | - | 高 |
项目库中包含了数据集及数据集构建脚本。
模型训练
项目给出了模型训练的脚本以及需要准备的数据集,以保证过程复现。
项目组训练采用的A100(4X, 80G)的硬件配置。
项目同时给出了模型训练微调的视频参考及书籍参考。
项目也给出了基于微调训练的模型权重进行验证推理试验的脚本及其依赖环境包。
模型权重 | 下载链接 | 质量 | 微调方法 |
---|---|---|---|
checkpoints-XrayGLM-300 | https://huggingface.co/wangrongsheng/XrayGLM-300 | 低 | LoRA |
checkpoints-XrayGLM-3000 | https://huggingface.co/wangrongsheng/XrayGLM-3000 | 低 | LoRA |
checkpoints-XrayGLM-xxx-plus | - | 高 | - |
python cli_demo.py —from_pretrained checkpoints/checkpoints-XrayGLM-3000 —prompt_zh ‘详细描述这张胸部X光片的诊断结果’
也开发了简单的WebUI demo
python web_demo.py —from_pretrained checkpoints/checkpoints-XrayGLM-3000
模型效果
以下两种场景示例
- 影像诊断
- 多轮对话
开放程度
与MedQA-ChatGLM类似,github库中包含了项目重现的全部内容,同时对相关的工作,都给予了致谢说明, 体现了真正的开源精神。
项目说明相关资源仅供学术研究之用,严禁用于商业用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。模型生成的内容受模型计算、随机性和量化精度损失等因素影响,无法对其准确性作出保证。
作者也提到, 即使项目模型输出符合医学事实,也不能被用作实际医学诊断的依据。对于模型输出的任何内容,项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。
项目列出了相关的重要参考:
- VisualGLM-6B为项目提供了基础的代码参考和实现;
- MiniGPT-4为项目提供了研发思路;
- ChatGPT生成了高质量的中文版X光检查报告以支持XrayGLM训练;
- gpt_academic为文档翻译提供了多线程加速;
- MedCLIP、BLIP2、XrayGPT等工作也有重大的参考意义;
项目存储库遵循CC BY-NC-SA。
最新进展
作者提及未来的一些预期与展望:
- 模型的能力更多来源于数据的支持,OpenI-zh作为微调数据集,其数据量足以支持研究,在更广泛的任务和性能表现上,我们认为在大规模数据集上预训练并在高质量少量数据集上微调是一种可行的方案;
- 普遍意义的理解上,视觉多模态模型=视觉模型+语言模型。除了需要关注视觉模型信息与语言模型输出的搭配外,还需要额外关注到语言模型的加强,在人机的对话中,尤其是医疗语言模型的问答上,除了专业的医疗问题回答,带有人文情怀的有温度的回答更应该是我们追寻的目标。
- 高精度的模型永远打不过大参数的模型,如果在6B模型和13B模型上选择微调,请在资源充足情况下选择13B的大参数模型;
作者目前正在构建一种能够产生最贴近真实医生问诊效果的医疗大语言模型IvyGPT,相关链接如下:
https://github.com/WangRongsheng/IvyGPT
IvyGPT,这是一个医疗大语言模型,它在高质量的医学问答数据上进行了监督微调,并使用人类反馈的强化学习进行了训练。该项目的特性包括:
- 支持在医疗问答LLM上全流程训练:监督训练、奖励模型、强化学习 (RLHF);
- ️多微调方法支持:LoRA、QLoRA等;
- 高效智能的数据集制作工具:奖励模型训练数据集生成工具-Rank Dataset Generator、监督训练数据集生成工具-Instruction Dataset Generator;
- 超30万高质量医患对话数据集用于支持训练;
目前作者仅仅发布了一些效果展示图,并未发布更多的源码、数据及相关使用操作信息。