• Stars
    star
    799
  • Rank 54,946 (Top 2 %)
  • Language
    Python
  • License
    Other
  • Created 12 months ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🩺 首个会看胸部X光片的中文多模态医学大模型 | The first Chinese Medical Multimodal Model that Chest Radiographs Summarization.

Note

欢迎关注我们最新的工作:CareLlama (关怀羊驼),它是一个医疗大语言模型,同时它集合了数十个公开可用的医疗微调数据集和开放可用的医疗大语言模型以促进医疗LLM快速发展:https://github.com/WangRongsheng/CareLlama

在开始看这个项目之前,您应该是保持以学术研究的态度,切不可以实际医疗行为作为评价该项目的标准。我们相信很多事情正是因为有了一步一步的积累才会最终走向成功!

为了更好助力中文社区的医学多模态大模型发展,我们特意在该Repo开设了💬Discussions ,帮助大家互相学习。

介绍

最近,通用领域的大语言模型 (LLM),例如 ChatGPT,在遵循指令和产生类似人类响应方面取得了显著的成功,这种成功间接促进了多模态大模型的研究和发展,如通用领域的多模态大模型MiniGPT-4mPLUG-OwlMultimodal-GPTLLaVA ,然而,此类多模态大模型却很少出现在医学领域的研究中,阻碍了相关研究发展。visual-med-alpaca虽然在医学多模态大模型方面做出了一些很有成效的工作,然而其数据为英文诊断报告,不利于促进中文领域医学多模态大模型的研究发展。为此,我们开发了XrayGLM以解决上述问题。XrayGLM在医学影像诊断和多轮交互对话上显示出了非凡的潜力。

GitHub Contributors
GitHub Contributors Issues GitHub pull requests
GitHub Contributors

🌟【官方视频教程】ChatGLM-6B 微调:P-Tuning,LoRA,Full parameter 🌟【官方视频教程】VisualGLM技术讲解 🌟【官方视频教程】XrayGLM微调实践

本文贡献

  • 借助ChatGPT以及公开的数据集,我们构造了一个X光影像-诊断报告对的医学多模态数据集;
  • 我们将构建的中文胸部X光片诊断数据集在VisualGLM-6B进行微调训练,并开放了部分训练权重用于学术研究;

数据集

  • 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 -

快速上手

1.安装环境

# 安装依赖
pip install -r requirements.txt
# 国内换源安装依赖
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

此时默认会安装deepspeed库(支持sat库训练),此库对于模型推理并非必要,同时部分Windows环境安装此库时会遇到问题。 如果想绕过deepspeed安装,我们可以将命令改为:

# 安装依赖
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements_wo_ds.txt
# 安装SwissArmyTransformer
pip install -i https://mirrors.aliyun.com/pypi/simple/ --no-deps "SwissArmyTransformer>=0.3.6"

2.模型推理

模型权重 下载链接 质量 微调方法
checkpoints-XrayGLM-300 LoRA
checkpoints-XrayGLM-3000 LoRA
checkpoints-XrayGLM-xxx-plus - -

CLI推理

python cli_demo.py --from_pretrained checkpoints/checkpoints-XrayGLM-3000 --prompt_zh '详细描述这张胸部X光片的诊断结果'

更多参数

如果您是Google Colab Pro会员,请可以直接在Colab中运行XrayGLM:GitHub Contributors

WebUI运行

python web_demo.py --from_pretrained checkpoints/checkpoints-XrayGLM-3000

此时访问http://127.0.0.1:7860即可

3.模型训练(复现XrayGLM)

硬件资源

* 实验在A100 (4X, 80GB)上进行

# 设置CUDA变量,主要是为了解决有时候直接训练而出现无法正确加载到显卡问题
export CUDA_VISIBLE_DEVICES=0,1,2,3

# 开始训练
bash finetune_XrayGLM.sh

这里的复现过程非常简单,主要是很多过程我们都为大家准备好了,大家可以随时复现一个自己的XrayGLM

4.模型训练(通用)

效果展示

*以下效果来自于低质量的数据训练和权重

影像诊断:

X光影像 诊疗报告(医生) XrayGLM
根据X射线图像,心脏大小正常,肺部看起来很清晰。已经排除了肺炎、积液、水肿、气胸、腺病、结节或肿块的存在。该发现表明一切正常。换句话说,总体印象是胸部正常。 X光片显示,心脏大小正常。肺部没有气胸或胸腔积液的证据。骨骼结构看起来没有任何异常。总的来说,X光片表明没有发现急性心肺疾病的迹象。
X光图片显示没有扭曲的区域、可疑的骨质不透明度或胸腺积液。心脏大小轻微增大,但非常稳定。此外,没有气胸的证据,肺野也正常。总体来说,X光片显示没有急性心脏异常,但要注意轻微的心脏扩大。 X光片显示,心脏大小正常。肺部和纵隔轮廓清晰,没有气胸或胸腔积液的证据。骨骼结构完整,没有任何急性异常。
心影形态在正常范围内。没有急性骨质异常。有可能出现没有明显的吸水或肺实质状况的线索。没有大面积积液或气胸。有可能怀疑其有误吸或肺实质问题。为了确诊和治疗,可能需要进行适当的影像学随访。 心脏大小正常,肺部和纵隔轮廓清晰。没有急性异常或活动受限的证据。没有任何明显的气胸、胸腔积液或肺不张的迹象。此外,也没有发现任何局灶性骨质异常或其他急性疾病。

多轮对话:

X光影像 诊疗报告(医生)
右侧主动脉突出观察到。心脏大小正常。胸部未发现明显的肺气肿、胸膜积液或可疑的肺部病变。报告指出已知右侧主动脉情况正常。
>> X光影像路径:./data/Xray/861_1.png

>> 用户:这是一张什么图?
>> XrayGLM:这张图片显示的是一张肺部检查的X光片。

>> 用户:请描述这张胸部X光片的诊断结果
>> XrayGLM:心脏大小正常,肺部清晰。没有急性心肺疾病的证据。

>> 用户:是否存在肺气肿?
>> XrayGLM:没有肺气肿。心脏大小正常,肺部清晰。没有发现急性心肺疾病的证据。

>> 用户:平时饮食该注意什么?
>> XrayGLM:饮食应该健康,均衡。建议增加蛋白质的摄入量,因为蛋白质有助于维持肌肉和骨骼的健康。多食用蔬菜、水果、全谷物以及健康的脂肪来源如橄榄油、鱼类等可以帮助获得足够的维生素和矿物质。此外,避免过度饮酒或吸烟,这些习惯可能会对心脏健康产生负面影响。

未来展望

  1. 模型的能力更多来源于数据的支持,OpenI-zh作为微调数据集,其数据量足以支持研究,在更广泛的任务和性能表现上,我们认为在大规模数据集上预训练并在高质量少量数据集上微调是一种可行的方案
  2. 普遍意义的理解上,视觉多模态模型=视觉模型+语言模型。除了需要关注视觉模型信息与语言模型输出的搭配外,还需要额外关注到语言模型的加强,在人机的对话中,尤其是医疗语言模型的问答上,除了专业的医疗问题回答,带有人文情怀的有温度的回答更应该是我们追寻的目标
  3. 高精度的模型永远打不过大参数的模型,如果在6B模型和13B模型上选择微调,请在资源充足情况下选择13B的大参数模型;

项目致谢

  1. VisualGLM-6B为我们提供了基础的代码参考和实现;
  2. MiniGPT-4为我们这个项目提供了研发思路;
  3. ChatGPT生成了高质量的中文版X光检查报告以支持XrayGLM训练;
  4. gpt_academic为文档翻译提供了多线程加速;
  5. MedCLIPBLIP2XrayGPT 等工作也有重大的参考意义;

这项工作由澳门理工大学应用科学学院硕士生王荣胜段耀菲李俊蓉完成,指导老师为檀韬副教授、彭祥佑老师。

*特别鸣谢:USTC-PhD Yongle Luo 提供了有3000美金的OpenAI账号,帮助我们完成大量的X光报告翻译工作

免责声明

本项目相关资源仅供学术研究之用,严禁用于商业用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。模型生成的内容受模型计算、随机性和量化精度损失等因素影响,本项目无法对其准确性作出保证。即使本项目模型输出符合医学事实,也不能被用作实际医学诊断的依据。对于模型输出的任何内容,本项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。

项目引用

如果你使用了本项目的模型,数据或者代码,请声明引用:

@misc{wang2023XrayGLM,
      title={XrayGLM: The first Chinese Medical Multimodal Model that Chest Radiographs Summarization}, 
      author={Rongsheng Wang, Yaofei Duan, Junrong Li, Patrick Pang and Tao Tan},
      year={2023},
      publisher = {GitHub},
      journal = {GitHub repository},
      howpublished = {\url{https://github.com/WangRongsheng/XrayGLM}},
}

我们的工作被Evaluating Large Language Models for Radiology Natural Language Processing引用,希望大家去关注一下相关的工作!

使用许可

此存储库遵循CC BY-NC-SA ,请参阅许可条款。

More Repositories

1

ChatGenTitle

🌟 ChatGenTitle:使用百万arXiv论文信息在LLaMA模型上进行微调的论文题目生成模型
Python
823
star
2

CareGPT

🌞 CareGPT (关怀GPT)是一个医疗大语言模型,同时它集合了数十个公开可用的医疗微调数据集和开放可用的医疗大语言模型,包含LLM的训练、测评、部署等以促进医疗LLM快速发展。Medical LLM, Open Source Driven for a Healthy Future.
Python
504
star
3

MedQA-ChatGLM

🛰️ 基于真实医疗对话数据在ChatGLM上进行LoRA、P-Tuning V2、Freeze、RLHF等微调,我们的眼光不止于医疗问答
Python
280
star
4

Aurora

🐳 Aurora is a [Chinese Version] MoE model. Aurora is a further work based on Mixtral-8x7B, which activates the chat capability of the model's Chinese open domain.
Python
254
star
5

BestYOLO

🌟Change the world, it will become a better place. | 以科研和竞赛为导向的最好的YOLO实践框架!
Python
200
star
6

Use-LLMs-in-Colab

🤖 集合众多大模型在Colab上的使用 | LLMs is all you need.
Jupyter Notebook
109
star
7

make-your-yolov5_dataset

💥Make your yolov5 dataset by using labelimg.I hope my work can help you make your yolov5 datasets more quickly.
Python
76
star
8

SAM-fine-tune

🌌 Fine tune specific SAM model on any task
Python
62
star
9

KDAT

💥一个专为视觉方向目标检测全流程的标注工具集,全称:Kill Object Detection Annotation Tools。
Python
62
star
10

IvyGPT

[CICAI 2023] 💊 产生最贴近真实医生问诊效果的医疗大语言模型IvyGPT
45
star
11

Awesome-LLM-with-RAG

A curated list of Large Language Model with RAG
Python
45
star
12

DS_Yanweimin

🐋 大学《数据结构(C语言版)(第2版)》 严蔚敏版的配套PPT/源代码/实验安排/课时安排
43
star
13

Chinese-LLaMA-Alpaca-Usage

📔 对Chinese-LLaMA-Alpaca进行使用说明和核心代码注解
Jupyter Notebook
42
star
14

PaddleOCR-Flask-deploy

✅Deploy PaddleOCR with flask | 利用Flask对PaddleOCR进行部署,方便调用
HTML
35
star
15

Statistical-learning-method-lihang

《统计学习方法》,作者李航,本书全面系统地介绍了统计学习的主要内容
Jupyter Notebook
23
star
16

Knowledge-Base-LLMs-QA

👽 基于大模型的知识库问答 | Large model-based knowledge base Q&A.
Python
22
star
17

for-Graduate_student

💥考研指导
20
star
18

pytorch-classification

利用pytorch实现图像分类的一个完整的代码,训练,预测,TTA,模型融合,模型部署,cnn提取特征,svm或者随机森林等进行分类,模型蒸馏,一个完整的代码
Jupyter Notebook
20
star
19

tf-pytorch-paddle

💥三大深度学习框架:tensorflow,pytorch,paddle的高层API使用学习
Jupyter Notebook
19
star
20

yolov5-obj-distance-measure

✅yolov5-obj-distance-measure.You can change code in yolov5.
Python
16
star
21

Classify-Leaves

✅Kaggle竞赛之176种树叶图片种类识别分类
Jupyter Notebook
12
star
22

Directory

一个简约又简单的基于云服务部署的私人网盘系统
PHP
11
star
23

DeepLearing-LiMu-Notes

⛏️LiMu Deeplearning notes. | 李沐深度学习课程笔记
Jupyter Notebook
11
star
24

CDNet-yolov5

💟《CDNet:一个基于YOLOv5的在Jetson Nano上实时、鲁棒的斑马线检测网络》论文的原生(ultralytics)yolov5训练、推理baseline仓库
Python
10
star
25

awesome-LLM-resourses

🧑‍🚀 全世界最好的中文LLM资料总结
10
star
26

Yolov5-on-flask

Running YOLOv5 through web browser using Flask microframework
Python
9
star
27

Wear_mask

基于自制数据集+百度EasyDL训练的佩戴口罩识别
8
star
28

DS-python_Zhangguanghe

🐒 大学《数据结构-python语言描述》 张光河版的配套PPT/源代码/实验安排/课时安排
8
star
29

for-CPA

小白CPA(注册会计师)学习考证指南
8
star
30

Interesting-python

💟There are many interesting python examples.
Python
7
star
31

wrsArxiv

👻 Arxiv个性化定制化模版,实现对特定领域的相关内容、作者与学术会议的有效跟进,将Arxiv定制化为MyArxiv.
CSS
5
star
32

YOLOv5_tfjs

✅YOLOv5 TFjs infer demo
JavaScript
5
star
33

EasyDL

✅基于百度EasyDL训练的模型,并可以部署在前端、PC,移动端和微信小程序端,视频流推断
Python
5
star
34

ReadPaper

🧑‍🚀 Professional translation and reading of English academic papers in PDF format.
HTML
4
star
35

mask-yolov5-fastapi

Yolov5 is used for mask recognition, and fastapi is used for web deployment.
Python
4
star
36

Image-Registration

⛏️A collection of tools and practices for image registration. | 图像配准的工具和实践集合
Python
4
star
37

Sentence-BERT-Similarity

📃Train text similarity model based on Sentence-BERT | 基于Sentence-BERT训练自己的文本相似度模型
Python
4
star
38

cnn-visualization

卷积神经网络(CNN)从卷积层到池化层可视化演示
C#
3
star
39

Awesome-Blog

集结优秀的博客与高颜值博客
3
star
40

smart-photo

基于百度飞桨PaddleClas和Watchdog构建的智慧相册
Python
3
star
41

Yolov5-DeepSort-Pytorch

Real-time multi-person tracker using YOLO v5 and deep sort.
Python
3
star
42

Dimensionality-reduction-algorithm

☺️ PCA、LDA、MDS、LLE、TSNE等降维算法的python实现
Jupyter Notebook
3
star
43

yolov5_LPRNet_carcard

Jupyter Notebook
2
star
44

Blog-backup

✅Personal blog posts and page backups.
Jupyter Notebook
2
star
45

Mask-Detection-yolov4-tiny

✅Mask wearing detection based on Yolo V4 tiny.It can be used in graduation project.
Python
2
star
46

Classify-Fu

✅图像分类成长赛——AI集福,“福”字图片识别
Python
2
star
47

Algorithms

😊 All Algorithms.
Python
2
star
48

Machine-Learning-zzh-notes

周志华《机器学习》,一本详细介绍了机器学习领域不同类型的算法的书
2
star
49

Slides-Reports-and-papers

⛏️This is the storage of my Slides、Reports and Papers. | 存储PPT、报告和论文
2
star
50

Bayesian-Personalized-Ranking

Bayesian Personalized Ranking is a learning algorithm for collaborative filtering first introduced in: BPR: Bayesian Personalized Ranking from Implicit Feedback. Steffen Rendle, Christoph Freudenthaler, Zeno Gantner and Lars Schmidt-Thieme, Proc. UAI 2009.
Python
2
star
51

ChatCitation

ChatGPT辅助论文引用格式生成,支持单个和批量生成
Python
2
star
52

weibo-HotSearch-data

微博实时热搜榜数据抓取并保存
Python
2
star
53

IlovePaddleModel

💟集锦PaddlePaddle为我们提供的方便的模型和解决方案 | The best model, the best US.
2
star
54

WangRongsheng

✔️My Github profile. | 我的Github个人主页
Python
2
star
55

MisinfoGenDet

Jupyter Notebook
1
star
56

random-roll-call

随机点名
HTML
1
star
57

Computer-Vision

💟养成系计算机视觉
1
star
58

flask-data-collection

✅基于flask实现的前端数据集收集平台
HTML
1
star
59

Our-Love

[源码]毒💘 /甜💖 鸡汤的网站
CSS
1
star
60

auto-healthy-clock

Henan University of Technology auto healthy clock.
Python
1
star
61

Christmas-lucky-draw

🎅 圣诞抽奖-python
Python
1
star
62

images

参考: https://github.com/jrainlau/picee ,制作的前端上传图片到github,作为图床使用
Python
1
star
63

beautiful

Many beautiful sisters.
HTML
1
star
64

Are-you-still-there

😇 一个python的demo,可以秒速发千万条消息给别人,当代的键盘侠克星
Python
1
star
65

Good-Search_Github

🌝 Github的高级搜索方法
1
star
66

make-EfficientDet-datasets

✅make your EfficientDet datasets.|制作你的EfficientDet可以训练的数据集
Python
1
star
67

CareGPT-Bot

1
star
68

DimensionalityReduction-code

💝 经典降维算法的Demo(python),同时还给出了参考资料的链接。
Jupyter Notebook
1
star
69

Dataset-website

数据集网站的收集
1
star
70

HandWriting-Recognition-GUI

HandWriting-Recognition-GUI.
Python
1
star
71

Pytorch-Tutorial

💟 Learn Pytorch.
Python
1
star
72

Transform-your-data

yolo->voc,voc->yolo,voc->coco,voc-tfrecord
Python
1
star
73

LLM-cookbook

1
star
74

Data-Science-Notes

📔 一份数据科学的笔记以及资料
Jupyter Notebook
1
star
75

Paddle2.0-API

高层API助你快速上手深度学习
HTML
1
star
76

Seven-sorting-methods-python

🐋 实现了常用的排序算法,包括:冒泡排序、直接插入排序、直接选择排序、希尔排序、归并排序、快速排序、堆排序,基于python 3 编程实现。
Python
1
star
77

AI-Practice

⛏️Artificial intelligence project practice. | 人工智能项目实践
Jupyter Notebook
1
star
78

RetrievalCLIP

1
star
79

YOLOv5_Server_deploy

✅YOLOv5 Server deploy
Python
1
star
80

MLPNumberClassifier

基于MLP的简单手写体数字识别
Python
1
star