本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)

news2024/11/16 12:41:46

在这里插入图片描述

GitHub地址:https://github.com/dvlab-research/LISA
该项目论文paper reading:https://blog.csdn.net/Transfattyacids/article/details/132254770

在GitHub上下载源文件,进入下载的文件夹,打开该地址下的命令控制台,执行指令:

pip install -r requirements.txt
pip install flash-attn --no-build-isolation

几种报错解决方法:

  1. 下载包失败
    例:“pip install numpy”
    解决:“pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/”
    其他源:
    清华: https://pypi.tuna.tsinghua.edu.cn/simple/
    阿里云: http://mirrors.aliyun.com/pypi/simple/
    豆瓣:https://pypi.doubanio.com/simple

  2. 安装包版本冲突
    例:“tensorflow-intel 2.12.0 requires numpy<1.24,>=1.22, but you have numpy 1.24.2 which is incompatible.”
    解决:带上具体版本号,如“pip install numpy==1.23”

  3. 就是下不下来
    例: “ERROR: Could not build wheels for XXX, which is required to install pyproject.toml-based projects”
    解决:去网站下安装包,“.whl”文件到本地安装,列几个下载网站:
    https://download.pytorch.org/whl/
    https://pypi.org/project

(除了这2个,法1中的3个源也可以使用)
(还是下不下来,去对应包的GitHub,下载对应版本的releases)
下载完后执行:pip install file_name.whl(file_name是绝对地址)

之前https://www.lfd.uci.edu/~gohlke/pythonlibs/也可以下载whl,现在点进去是这样的下不了了
在这里插入图片描述
4. 还有一个很奇怪的方法:conda install -c conda-forge XXX

  • 下载预训练权重

如果想要自训练:

LLaVA:https://huggingface.co/decapoda-research
SAM:https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth

直接使用提供的权重:

LISA:https://huggingface.co/xinlai

有6个版本
在这里插入图片描述
我下载了LISA-13B-llama2-v0-explanatory(别下这个,我当时是因为作者只发布了两个版本,才下的,后面没用上,要下就选择v1的版本,内存大的下13B,小的下7B)

在这里插入图片描述

要用梯子,大文件要使用LFS,git clone不能克隆需要LFS的文件,大文件我都是一个个单独下的(漫长的下载过程orz

记得修改chat.py里权重的地址(图中第20行)
在这里插入图片描述

  • 运行chat.py

不出意料的报错了
在这里插入图片描述

模型加载不成功,应该归因于我过小的内存orz,借了一个云服务器

尝试运行的过程就是不断产生新的错误orz

这里不将遇到的报错一一罗列(太多太杂了),只展示遇到的最后两个error,uu们如果有其他问题可以在评论区提出了,我看到了且会解决的,就回复。

下面先展示一下我使用的云服务器的配置

  • 虚拟机
  • 显卡 在这里插入图片描述
  • python版本 在这里插入图片描述
  • torch和torchvision
    在这里插入图片描述

  • ERORR_1:在这里插入图片描述
    原因: 我刚拿到时cuda版本(如图)与PyThorch不兼容在这里插入图片描述
    解决: 升级CUDA(以及driver)的版本
# 禁用现有NVIDIA驱动程序并卸载
sudo systemctl stop nvidia-persistenced
sudo systemctl stop nvidia-fabricmanager
sudo apt-get remove --purge '^nvidia-.*'
# 关闭xserver
systemctl stop gdm.service
# 下载对应的CUDA包
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
# 安装(一路默认安装)
sudo sh cuda_11.7.0_515.43.04_linux.run
# 安装完毕后,启动X Server
systemctl start gdm.service
  • ERROR_2:在这里插入图片描述
    谁能想到还是报OutOfMemoryError了呢orz(我说怎么就给我用了呢)
    超出内存一般有几种解决办法

    1. 减少模型的大小: 可以考虑减少模型的大小,例如通过选择更小的模型、减少模型的层数或通道数等方式,来降低内存需求。
    2. 减少批量大小:尝试减少输入数据的批量大小,降低每次前向计算所需的内存。可以尝试减小batch_size参数的值。
    3. 释放不需要的显存:在某些情况下,可能存在一些不需要的显存被占用,可以使用torch.cuda.empty_cache() 来释放不需要的显存。
    4. 启用混合精度训练:可以尝试启用混合精度训练,即使用半精度浮点数 (torch.float16 代替默认的单精度浮点数 (torch.float32。这可以显著降低内存使用,但可能会影响模型的训练效果。
    5. 调整 PyTorch 内存管理设置:可以尝试调整 PyTorch 的内存管理设置,例如通过设置max_split_size_mb 来避免内存碎片化。可以在 PyTorch 的文档中查找有关内存管理和PYTORCH_CUDA_ALLOC_CONF 的详细信息。

    进行如下改动:

    1. 将13B模型替换为7B模型
    2. model_max_length:512–>256;lora_r:8–>4
    3. 训练精度:bf16–>fp16
    4. load_in:8bit–>4bit
    5. 设置max_split_size_mb
      进入batch文件(vim ~/.bashrc
      添加:export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32
      esc、:wq、source ~/.bashrc

调整完后,终于是可以运行了
输入:

CUDA_VISIBLE_DEVICES=1 python chat.py --version='./LISA-7B-v1' --precision='fp16' --load_in_4bit

p.s. --version是你下载的模型地址,这里附上我项目目录
在这里插入图片描述还有就是为了控制云服务器我使用的软件有:WinSCP(进行文件传输和代码修改)和PuTTY(命令行控制)

(下面是PuTTY运行截图)
在这里插入图片描述

根据提示输入propmt语句和待分割图片路径:

在这里插入图片描述

分割后的图像存储再了./vis_output文件夹中。

但是结果不正确,可能是调整了模型的缘故吧,没分割出LISA,分割出了ROSÉ

在这里插入图片描述

算了,这个模型就先到这里,等有再好一点的卡再试试,去读paper了。
在这里插入图片描述

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

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

相关文章

耐蚀点蚀镀铜工艺

引言 随着5G技术的推出&#xff0c;导致电子电路和IC基板在设计中要求更高的密度。由于5G应用的性质&#xff0c;这些设计中的高可靠性和出色的电气性能也越来越重要。为了满足5G应用和其他下一代设备平台的需求&#xff0c;逐渐建立了使用改良半加成加工(mSAP)制造电路板的制…

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下&#xff1a;UTC时间&#xff08;协调世界时&#xff0c;Coordinated Universal Time&#xff09;使用24小时制&#xff0c;以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时&#xff0c;取值范围为00到23。mm 表示分钟…

photoshop,ps自带“不规则图形”在哪

下拉箭头&#xff08;2步&#xff09;后有个“齿轮”&#xff0c;点击齿轮&#xff0c;列表里有“全部”。

大数据HBase学习圣经:一本书实现HBase学习自由

学习目标&#xff1a;三栖合一架构师 本文是《大数据HBase学习圣经》 V1版本&#xff0c;是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下&#xff1a;《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来&#xff0c; 已经汇集了 好几百题&#xff0c;大量的大厂面试…

Springboot 接口方式硬通知实现ConfigurationProperties 、@Value 动态刷新

前言 看到这个文章标题&#xff0c;也许有的看官就觉得很多余&#xff0c; 因为Nacos 可以设置 NacosValue(value "${XXX}",autoRefreshed true) 实现动态刷新&#xff1b; 又因为cloud config的RefreshScope 实现动态刷新&#xff1b; 还有阿波罗...等 这…

MAVEN利器:一文带你了解MAVEN中的依赖管理

前言&#xff1a; 强大的构建工具——Maven。作为Java生态系统中的重要组成部分&#xff0c;Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用&#xff0c;Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…

iOS 使用coreData存贮页面的模型数据中的字典

我们使用coreData时候&#xff0c;会遇到较为复杂的数据类型的存贮&#xff0c;例如&#xff0c;我们要存一个模型&#xff0c;但是一个模型里面有个字典&#xff0c;这时候&#xff0c;我们该如何存贮呢 如图所示&#xff0c;一个对象中含有一个字典 我们实现一个公共的方法…

无涯教程-Flutter - 安装步骤

本章将指导您详细在本地计算机上安装Flutter。 在Windows中安装 在本节中&#xff0c;让无涯教程看看如何在Windows系统中安装 Flutter SDK 及其要求。 第1步 - 转到URL,https: //flutter.dev/docs/get-started/install/windows并下载最新的Flutter SDK。 第2步 - 将zip归档…

(leetcode1761一个图中连通三元组的最小度数,暴力+剪枝)-------------------Java实现

&#xff08;leetcode1761一个图中连通三元组的最小度数&#xff0c;暴力剪枝&#xff09;-------------------Java实现 题目表述 给你一个无向图&#xff0c;整数 n 表示图中节点的数目&#xff0c;edges 数组表示图中的边&#xff0c;其中 edges[i] [ui, vi] &#xff0c;…

电脑锁屏怎么设置?这5个方法都管用!

“我的电脑好像没有锁屏&#xff0c;就算我很久没用电脑也不会息屏。这是为什么呢&#xff1f;有什么方法可以为电脑设置锁屏吗&#xff1f;” 电脑锁屏是保护隐私和安全的重要手段。如果我们希望在不使用电脑时电脑自动进行锁屏&#xff0c;是可以手动设置的。那么&#xff0c…

EXPLAIN的用法

一、语法 EXPLAIN SQL语句二、各字段解释 1、table ● 单表&#xff1a;显示这一行的数据是关于哪张表的。 ● 多表关联&#xff1a;t1为驱动表&#xff0c;t2为被驱动表。 注意&#xff1a; 内连接时&#xff0c;MySQL性能优化器会自动判断哪个表是驱动表&#xff0c;哪个表…

什么是HTTPS协议?与HTTP协议区别?

一、协议科普 HTTP协议&#xff08;超文本传输协议&#xff09;是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议&#xff0c;允许客户端通过Web浏览器等方式向服务器发送请求&#xff0c;服务器则返回响应。HTTP协议是构建万维网&#xff08;WWW&…

使用pip命令安装库,装到其他环境中的问题。

问题描述&#xff1a;我们在pycharm中创建了新的虚拟环境&#xff0c;但是在其终端使用Pip命令安装库时&#xff0c;发现库却安装到了其他conda创建的环境中。图示安装gym库&#xff0c;刚开始安装到了其他地方&#xff0c;第二次正确安装。 原因分析&#xff1a;安装库时&…

USB fastboot

1 Samsung fastboot flashing unlock 2 bootloader增加解锁密码 diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c index e4d46e4..1b4b450 100755 --- a/app/aboot/aboot.c b/app/aboot/aboot.c -2613,6 2613,20 void cmd_oem_unlock(const char *arg, void *data,…

[ES]mac安装es、kibana、ik分词器

一、安装es和kibana 1、创建一个网络&#xff0c;网络内的框架(eskibana)互联 docker network create es-net 2、下载es和kibana docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 3、运行docker命令部署单点eskibana&#xff08;用来操作es&#xff09; doc…

分布式搜索引擎

1 DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0c;一…

开启智能时代:深度解析智能文档分析技术的前沿与应用

开启智能时代&#xff1a;深度解析智能文档分析技术的前沿与应用 本章主要介绍文档分析技术的理论知识&#xff0c;包括背景介绍、算法分类和对应思路。通过本文学习&#xff0c;你可以掌握&#xff1a;1. 版面分析的分类和典型思想 2. 表格识别的分类和典型思想 3. 信息提取的…

C语言函数编程指南:实现模块化和可维护的代码

函数 1. 前言2. 函数是什么3. C语言中函数的分类3.1 库函数3.2 自定义函数 4. 函数的参数4.1 实际参数&#xff08;实参&#xff09;4.2 形式参数&#xff08;形参&#xff09; 5. 函数的调用5.1 传值调用5.2 传址调用 6. 阶段练习6.1 打印100~200之间的素数6.2 打印1000到2000…

WEBGL(2):绘制单个点

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…

基于微信小程序的社交用户交流系统

本文从管理员、用户的功能要求出发&#xff0c;微信小程序的社交系统中的功能模块主要是实现首页、个人中心、用户管理、用户技能管理、技能分类管理、交流论坛、系统管理。经过认真细致的研究&#xff0c;精心准备和规划&#xff0c;最后测试成功&#xff0c;系统可以正常使用…