多模态——基于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549116.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Synchronized和 ReentrantLock有什么区别?

目录 一、java中的线程同步 二、Synchronized 使用方式 底层原理 synchronized 同步代码块的情况 synchronized 修饰方法的情况 总结 synchronized 和 volatile 有什么区别? 三、ReentrantLock 底层原理 使用方式 四、Synchronized和 ReentrantLock有什…

GPIO端口的使用

目录 一. 前言 二. APB2外设时钟使能寄存器 三. GPIO端口的描述 四. GPIO端口使用案例 一. 前言 基于库函数的开发方式就是使用ST官方提供的封装好的函数。而如果没有添加库函数,那就是基于寄存器的开发方式,这种方式一般不是很推荐。因为由于ST对寄存…

docker pull 超时的问题如何解决

docker不能使用&#xff0c;使用之前的阿里云镜像失败。。。 搜了各种解决方法&#xff0c;感谢B站UP主 <iframe src"//player.bilibili.com/player.html?isOutsidetrue&aid113173361331402&bvidBV1KstBeEEQR&cid25942297878&p1" scrolling"…

维护左边枚举右边

前言&#xff1a;一开始遇到这个题目的时候没啥思路&#xff0c;但是当我看到值域在1000的时候我想着直接暴力从右边枚举不就行了吗&#xff0c;时间复杂度刚刚好&#xff0c;试一下就过了 正解应该是啥呢&#xff0c;其实也是维护一遍&#xff0c;运行另外一边 O ( n ) O(n)…

所有测试人,下半年的新方向(大模型),赢麻了!!!

现在做测试&#xff0c;真的挺累的。 现在测试越来越难做&#xff0c;晋升困难&#xff0c;工资迟迟不涨……公司裁员&#xff0c;测试首当其冲&#xff01;&#xff01; 做测试几年了&#xff0c;还没升职&#xff0c;就先到了“职业天花板”。 想凭工作几年积累的经验&…

Linux进程:fork函数深度剖析

目录 一、初识fork函数 二、fork函数的返回值 三、fork之后&#xff0c;父子进程谁先运行 四、fork的使用示例 一、初识fork函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 进程调用fork…

Apache POI快速入门

介绍 Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下&#xff0c;POI都是用于操作 Excel 文件。 Apache POI的主要组件包括&#xff1a; HS…

监控易监测对象及指标之:全面监控Sybase_New数据库

随着企业数据量的不断增长和业务的复杂化&#xff0c;数据库的稳定性和性能成为了保障业务连续性的关键因素。Sybase_New数据库作为众多企业选择的数据管理解决方案&#xff0c;其稳定性和性能对于企业的运营至关重要。 为了确保Sybase_New数据库的稳定运行和高效性能&#xff…

单体到微服务架构服务演化过程

架构服务化 聊聊从单体到微服务架构服务演化过程 单体分层架构 在 Web 应用程序发展的早期&#xff0c;大部分工程是将所有的服务端功能模块打包到单个巨石型&#xff08;Monolith&#xff09;应用中&#xff0c;譬如很多企业的 Java 应用程序打包为 war 包&#xff0c;最终会形…

基于vue框架的刺梨销售管理系统pgl49(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,刺梨分类,刺梨产品,刺梨新闻 开题报告内容 基于Vue框架的刺梨销售管理系统开题报告 一、引言 随着现代农业的快速发展和消费者对健康食品需求的日益增长&#xff0c;刺梨这一富含营养价值的水果逐渐受到市场的青睐。然而&#x…

学习Python的难点分析

一、语法灵活性带来的困惑 缩进规则 Python使用缩进来表示代码块&#xff0c;而不是像其他编程语言&#xff08;如C或Java&#xff09;使用大括号。这虽然使代码看起来简洁&#xff0c;但对于初学者来说可能会造成困扰。例如&#xff1a; if True:print("This is insid…

网站建设中,营销型网站与普通网站有什么区别

营销型网站与普通网站在建站目的、交互设计以及结构优化等方面存在区别。以下是具体分析&#xff1a; 建站目的 营销型网站&#xff1a;以销售和转化为主要目标&#xff0c;通过专业的市场分析和策划来吸引潜在客户&#xff0c;并促使其采取购买行动。普通网站&#xff1a;通常…

零基础学Servlet

零基础学Servlet 一。介绍&#xff1a; servlet是一种比较古老的编写网站的方式&#xff0c;在2010年之前比较流行&#xff0c;在此之后&#xff0c;有一堆大佬创造了Spring&#xff08;一种框架&#xff09;&#xff0c;Spring是针对Servlet进行进一步封装&#xff0c;从而让…

OpenSource - 开源日历库tui.calendar

文章目录 强大且灵活的开源日历库推荐&#xff1a;tui.calendar多视图支持&#xff1a; Monthly, Weekly, Daily and Various View Types支持拖拽: Dragging and Resizing a Schedule事件管理支持多语言集成与扩展高度定制化其他功能地址总结 强大且灵活的开源日历库推荐&#…

关于Chrome浏览器F12调试,显示未连接到互联网的问题

情况说明 最近笔者更新下电脑的Chrome浏览器&#xff0c;在调试前端代码的时候&#xff0c;遇到下面一个情况&#xff1a; 发现打开调试面板后&#xff0c;页面上显示未连接到互联网&#xff0c;但实际电脑网络是没有问题的&#xff0c;关闭调试面板后&#xff0c;网页又能正…

防砸安全鞋这样挑,舒适又安心!

在复杂多变的工作环境中&#xff0c;安全始终放在首位&#xff0c;特别是对于那些在工地、车间等危险环境中工作的朋友们来说&#xff0c;一双好的防砸安全鞋无疑是工作中的“守护神”。然而&#xff0c;市面上的防砸安全鞋种类繁多&#xff0c;如何挑选一双既舒适又安心的鞋子…

汇川技术即将在工博会发布类博途全集成自动化平台,德国研发中心功不可没,投资数亿打造工业利器

在即将拉开帷幕的9月中国工博会上&#xff0c;汇川技术将向世界展示其自主研发的全新成果——IFA&#xff0c;一个全集成、全场景覆盖的工厂自动化软件平台。这一平台的发布&#xff0c;不仅标志着汇川技术在工业自动化领域的又一里程碑式突破&#xff0c;更彰显了其与国际工业…

VS code Jupyter notebook 导入文件目录问题

VS code Jupyter notebook 导入文件目录问题 引言正文引言 这几天被 VS code 中 Jupyter Notebook 中的文件导入折磨的死去活来。这里特来说明一下放置于不同文件夹下的模块该如何被导入。 正文 首先,我们需要按下 Ctrl + , 键打开设置,然后搜索 notebook file root。在如…

五.海量数据实时分析-FlinkCDC+DorisConnector实现数据的全量增量同步

前言 前面四篇文字都在学习Doris的理论知识&#xff0c;也是比较枯燥&#xff0c;当然Doris的理论知识还很多&#xff0c;我们后面慢慢学&#xff0c;本篇文章我们尝试使用SpringBoot来整合Doris完成基本的CRUD。 由于 Doris 高度兼容 Mysql 协议&#xff0c;两者在 SQL 语法…