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

news2024/11/17 1:44:10

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.coloradmin.cn/o/2174694.html

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

相关文章

在vscode在使用idea编辑器的快捷键

在vscode在使用idea编辑器的快捷键 在vscode扩展在搜索idea key结果如下: 选择IntelliJ IDEA Keybindings安装(注意作者是Keisuke Kato),安装后就可以在vscode编辑器中使用idea编辑器的快捷键。

Fastadmin 前台任意文件读取漏洞

漏洞描述 FastAdmin是一个基于ThinkPHP5和Bootstrap的后台开发框架&#xff0c;支持权限管理、响应式开发、多语言、模块化开发、CRUD和自由可扩展等功能。 漏洞复现 FOFA body"fastadmin.net" || body"<h1>fastadmin</h1>" && tit…

c语言200例 066

大家好&#xff0c;欢迎来到无限大的频道 今天给大家带来的是c语言200例。 要求&#xff1a; 根据输入的职业表示&#xff0c;区分是老师还是学生&#xff0c;然后根据输入的信息&#xff0c;将对应的信息输出&#xff0c;如果是学生&#xff0c;则输出班级&#xff0c;如果是…

xlsx库插件读取excel文件

input读取xlsx文件内容 效果代码 前端用input读取 .xlsx文件的内容 xlsx库参考连接 项目中我用的ant-design-vue&#xff0c;不过用input一样的大同小异 注意区分xlsx库和node-xlsx库的使用环境 效果 代码 <!--* Descripttion: * Author: 苍狼一啸八荒惊* Date: 2024-08-…

英文翻译中文怎么做?试试这四款翻译工具!

日常工作中&#xff0c;我时常需要处理各种学术资料&#xff0c;其中不乏英文文献。在这个信息爆炸的时代&#xff0c;翻译工具成为了我们不可或缺的好帮手。今天&#xff0c;我想和大家分享几款我常用的翻译工具&#xff0c;它们在英文翻译中文方面的表现&#xff0c;真的让我…

学习鸿蒙Harmong基础(二)

1.类声明和使用 class Perpon { name : string "小赵"; age : number 24; isShow :boolean true; // 构造函数 constructor(name:string,age:number,isShow:boolean){ this.name name; this.age age; this.isShow isShow } puperyInfo(){ if (this.isShow) { …

Chainlit集成LlamaIndex实现知识库高级检索(子问题查询引擎)

检索原理 llama_index 的 SubQuestionQueryEngine 是一个用于处理复杂查询的机制&#xff0c;它的主要目的是将复杂的查询问题分解成多个较小的、更容易管理和处理的子问题。这种技术有助于提高查询效率和准确性&#xff0c;尤其是在处理大量文档或者需要多步骤推理的情况下。…

2024年【金属非金属矿山(露天矿山)安全管理人员】最新解析及金属非金属矿山(露天矿山)安全管理人员考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员最新解析参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&#…

安装 Nacos 启动报错 java.lang.IllegalArgumentException: db.num is null

java.io.IOException: java.lang.IllegalArgumentException: db.num is nullat com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:130)解决办法&#xff1a; 编辑 startup.cmd 文件 找到 set MO…

计算机毕业设计 基于Python的热门微博数据可视化分析系统的设计与实现 Python+Django+Vue 可视化大屏 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

海外盲盒APP系统:盲盒出海热潮下的选择

近年来&#xff0c;盲盒市场展现出了强劲的发展态势&#xff0c;不仅在国内持续上演“盲盒热”&#xff0c;在海外市场中更是“一盒难求”&#xff01;在盲盒出海的浪潮下&#xff0c;盲盒在国际市场中迅速火爆&#xff0c;一时席卷了全球市场。 海外盲盒系统是企业拓展海外市…

c++模拟真人鼠标轨迹算法

一.鼠标轨迹算法简介 鼠标轨迹底层实现采用 C / C语言&#xff0c;利用其高性能和系统级访问能力&#xff0c;开发出高效的鼠标轨迹模拟算法。通过将算法封装为 DLL&#xff08;动态链接库&#xff09;&#xff0c;可以方便地在不同的编程环境中调用&#xff0c;实现跨语言的兼…

没有建筑工程资质,怎么去投标?

在建筑工程领域&#xff0c;没有资质的企业想要参与投标&#xff0c;可以考虑以下几种方式&#xff1a; 1. 资质借用&#xff1a;可以与具有相应资质的企业合作&#xff0c;通过资质借用的方式参与投标。但这种做法存在法律风险&#xff0c;因为《中华人民共和国招标投标法》明…

kubernetes配置资源管理

目录 一、Secret1.1 Secret 四种类型1.2 Secret 使用条件 二、Secret 使用方式2.1 基于Opaque创建 Secret2.2 内容用 base64 编码&#xff0c;创建Secret2.3 将 Secret 挂载到 Volume 中&#xff0c;以 Volume 的形式挂载到 Pod 的某个目录下2.4 将 Secret 导出到环境变量中2.5…

【Python】Pythonic Data Structures and Algorithms:深入浅出数据结构与算法的 Python 实现

Pythonic Data Structures and Algorithms 是一个开源项目&#xff0c;汇集了各种经典数据结构和算法的 Python 实现。该项目旨在为开发者提供丰富的学习资源&#xff0c;帮助他们通过 Python 代码理解和掌握数据结构与算法的核心原理和应用。项目中的算法涵盖了排序、搜索、图…

南平自闭症寄宿制学校:让孩子自信绽放

在繁华与喧嚣交织的都市之中&#xff0c;有一片静谧而充满希望的土地——广州星贝育园自闭症儿童寄宿制学校&#xff0c;这里不仅是知识的殿堂&#xff0c;更是自闭症儿童心灵成长的温馨家园。星贝育园&#xff0c;以其独特的教育理念与细致入微的关怀&#xff0c;为这些特殊的…

初始爬虫9

1.元素定位后的操作 “find_element“仅仅能够获取元素&#xff0c;不能够直接获取其中的数据&#xff0c;如果需要获取数据需要使用以下方法”。下面列出了两个方法&#xff1a; 获取文本 element.text 通过定位获取的标签对象的 text 属性&#xff0c;获取文本内容 获取属性…

opencv实战项目二十九:GrabCut分割人像

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、GrabCut介绍&#xff1a;二、opencv实现&#xff1a;三、效果&#xff1a; 前言 在数字图像处理领域&#xff0c;人像分割是一项极具挑战性的任务&#xf…

二维数组的使用

本章我将用自己的语言给大家翻译二维数组的使用&#xff0c;要是因为我阐述的不清晰&#xff0c;大家不懂的的可以直接在评论里问。 1.下标 二维数组的下标和一维数组没有多大的区别&#xff0c;唯一的区别就是&#xff0c;一维数组只有列&#xff0c;而二维数组还有行 一维数…

C高级(Day22)

一、学习内容 shell指令 文件相关的指令 重定向 > >> echo :打印字符串 cat: 在终端打印文件的内容 链接文件 硬链接文件&#xff1a;文件的inode号是一样的。 查看文件inode号&#xff1a; ls -i 格式&#xff1a;ln 被链接的文件 创建硬链接文件 1 硬链接的文件…