多模态——基于XrayGLM的X光片诊断的多模态大模型

0.引言

近年来,通用领域的大型语言模型(LLM),如ChatGPT,已在遵循指令和生成类似人类的响应方面取得了显著成就。这些成就不仅推动了多模态大模型研究的热潮,也催生了如MiniGPT-4、mPLUG-Owl、Multimodal-GPT和LLaVA等多模态大模型的诞生。然而,在医学领域,尤其是针对中文医学数据的研究,多模态大模型的发展相对滞后,这在一定程度上限制了该领域研究的深度和广度。

尽管模型如visual-med-alpaca在医学多模态大模型方面取得了一定的进展,但其使用的英文诊断报告数据限制了其在中文医学领域的应用和推广。为了解决这一问题,我们开发了XrayGLM,旨在填补中文医学多模态大模型研究的空白,并推动相关技术的发展。

XrayGLM在医学影像诊断和多轮交互对话方面展现出了巨大的潜力。通过利用先进的深度学习技术和大量的中文医学影像数据,XrayGLM不仅能够准确解读医学影像,还能与用户进行有效的多轮对话,提供更加个性化和精准的医疗建议。这一创新不仅有助于提高医疗服务的效率和质量,也为医学研究和实践开辟了新的可能性。

XrayGLM的开发是医学人工智能领域的重要一步,它标志着我们向实现智能化、个性化医疗服务的目标又迈进了一步。随着技术的不断进步和数据集的日益丰富,我们有理由相信,XrayGLM将在未来发挥更加重要的作用,为医学领域带来更多的创新和价值。

1.XrayGLM

1.1 XrayGLM的潜力

XrayGLM作为一个专门分析X光片的多模态大模型,其核心价值在于能够快速、准确地辅助医生进行诊断。通过上传X光片,模型能够自动解读并给出诊断结果,这无疑将极大提高诊断效率,减轻医生的工作负担,同时让病人不必长时间等待诊断结果。

1.2 当前的限制

尽管XrayGLM的演示效果令人印象深刻,但它目前还只是一个演示(Demo),不能直接用于实际诊断。主要问题在于:

  1. 过拟合:模型在训练时使用的测试数据集和训练数据集是同一套数据,这导致模型可能在训练集上表现良好,但在新的、未见过的数据上表现不佳。
  2. 缺乏专业评估:模型的诊断结果尚未经过专业医生的评估和验证,因此其准确性和可靠性还有待进一步确认。

1.3 未来展望

尽管存在上述限制,但XrayGLM的设计理念是非常前瞻的。未来,随着技术的不断进步和数据集的不断扩大,这类模型有望成为医生的得力助手,提高诊断的效率和准确性。

2.环境安装

2.1 GPU环境

要本地部署AnomalyGPT 需要用到GPU加速,GPU的显存要大于等于8G,我这里部署的环境是系统是win10,GPU是3090ti 24G显存,cuda版本是11.8,cudnn版本是8.9。
在这里插入图片描述
在这里插入图片描述

2.2 创建环境

# 创建并配置环境依赖
conda create -n agpt python=3.10
conda activate xglm

2.3 下载源码

git clone https://github.com/WangRongsheng/XrayGLM.git

2.4 安装依赖

2.4.1 pytorch

这里pytorch建议单独安装,可以找到cuda对应的版本进行安装:

conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia

2.4.2 安装deepspeed

官方给的环境默认会安装deepspeed库(支持sat库训练),此库对于模型推理并非必要,同时部分Windows环境安装此库的某些版本时会遇到问题。 这里可以使用deepspeed 0.3.16这个版本:

pip install deepspeed==0.3.16

2.4.3 安装requirements.txt文件内其他依赖

打开源码里面的requirements_wo_ds.txt文件,把torch和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"

3.模型推理

3.1 模型下载

可以从官员提供的链接下载模型:https://huggingface.co/wangrongsheng/XrayGLM-3000/tree/main :
在这里插入图片描述
在这里插入图片描述
放到指定目录:
在这里插入图片描述

3.2 模型推理

3.2.1 命令行推理

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

在这里插入图片描述

3.2.2WebUI运行

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

在这里插入图片描述

3.3 官方示例

在这里插入图片描述
在这里插入图片描述

4.报错解决

4.1 torch._six

主要原因是因为 torch 升级到2.0之后,这个api不能用了,以下是解决方法,将from torch._six import inf调整为下面

from torch import inf

在这里插入图片描述

from torch._six import inf
ModuleNotFoundError: No module named ‘torch._six’

在这里插入图片描述
在这里插入图片描述

4.2 web ui报端口问题

在这里插入图片描述

ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True or check your proxy settings to allow access to localhost.

在web_demo.py添加前面加这两行代码:

import os
os.environ["no_proxy"] = "localhost,127.0.0.1,::1"

然后gradio的版本尽量是3.50.0。

4.3 依赖

下面是我部署成功完全依赖:

aiofiles                  23.2.1
aiohappyeyeballs          2.4.0
aiohttp                   3.10.5
aiosignal                 1.3.1
altair                    5.4.1
annotated-types           0.7.0
anyio                     4.4.0
async-timeout             4.0.3
attrs                     24.2.0
bitsandbytes              0.39.0
boto3                     1.35.24
botocore                  1.35.24
braceexpand               0.1.7
Brotli                    1.0.9
certifi                   2024.8.30
charset-normalizer        3.3.2
click                     8.1.7
contourpy                 1.3.0
cpm-kernels               1.0.11
cycler                    0.12.1
datasets                  3.0.0
deepspeed                 0.3.16
dill                      0.3.8
docker-pycreds            0.4.0
einops                    0.8.0
exceptiongroup            1.2.2
fastapi                   0.115.0
ffmpy                     0.4.0
filelock                  3.13.1
fonttools                 4.53.1
frozenlist                1.4.1
fsspec                    2024.6.1
gitdb                     4.0.11
GitPython                 3.1.43
gmpy2                     2.1.2
gradio                    3.50.0
gradio_client             0.6.1
h11                       0.14.0
hjson                     3.1.0
httpcore                  1.0.5
httpx                     0.27.2
huggingface-hub           0.25.0
idna                      3.7
importlib_resources       6.4.5
Jinja2                    3.1.4
jmespath                  1.0.1
jsonschema                4.23.0
jsonschema-specifications 2023.12.1
kiwisolver                1.4.7
latex2mathml              3.77.0
Markdown                  3.7
markdown-it-py            3.0.0
MarkupSafe                2.1.3
matplotlib                3.9.2
mdtex2html                1.3.0
mdurl                     0.1.2
mkl_fft                   1.3.10
mkl_random                1.2.7
mkl-service               2.4.0
mpmath                    1.3.0
multidict                 6.1.0
multiprocess              0.70.16
narwhals                  1.8.2
networkx                  3.2.1
ninja                     1.11.1.1
numpy                     1.26.4
nvidia-cublas-cu12        12.1.3.1
nvidia-cuda-cupti-cu12    12.1.105
nvidia-cuda-nvrtc-cu12    12.1.105
nvidia-cuda-runtime-cu12  12.1.105
nvidia-cudnn-cu12         9.1.0.70
nvidia-cufft-cu12         11.0.2.54
nvidia-curand-cu12        10.3.2.106
nvidia-cusolver-cu12      11.4.5.107
nvidia-cusparse-cu12      12.1.0.106
nvidia-nccl-cu12          2.20.5
nvidia-nvjitlink-cu12     12.6.68
nvidia-nvtx-cu12          12.1.105
orjson                    3.10.7
packaging                 24.1
pandas                    2.2.2
pillow                    10.4.0
pip                       24.2
platformdirs              4.3.3
protobuf                  3.20.1
psutil                    6.0.0
py-cpuinfo                9.0.0
pyarrow                   17.0.0
pydantic                  2.9.2
pydantic_core             2.23.4
pydub                     0.25.1
Pygments                  2.18.0
pyparsing                 3.1.4
PySocks                   1.7.1
python-dateutil           2.9.0.post0
python-multipart          0.0.9
pytz                      2024.2
PyYAML                    6.0.2
referencing               0.35.1
regex                     2024.9.11
requests                  2.32.3
rich                      13.8.1
rpds-py                   0.20.0
ruff                      0.6.6
s3transfer                0.10.2
safetensors               0.4.5
semantic-version          2.10.0
sentencepiece             0.2.0
sentry-sdk                2.14.0
setproctitle              1.3.3
setuptools                75.1.0
shellingham               1.5.4
six                       1.16.0
smmap                     5.0.1
sniffio                   1.3.1
starlette                 0.38.5
SwissArmyTransformer      0.3.6
sympy                     1.13.2
tensorboardX              1.8
tokenizers                0.13.3
tomlkit                   0.12.0
torch                     2.0.0
torchaudio                2.0.0
torchvision               0.15.0
tqdm                      4.66.5
transformers              4.27.1
triton                    3.0.0
typer                     0.12.5
typing_extensions         4.11.0
tzdata                    2024.1
urllib3                   2.2.2
uvicorn                   0.30.6
wandb                     0.18.0
webdataset                0.2.100
websockets                11.0.3
wheel                     0.44.0
xxhash                    3.5.0
yarl                      1.11.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知来者逆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值