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

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
几种报错解决方法:
下载包失败
例:“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安装包版本冲突
例:“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”就是下不下来
例: “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(我说怎么就给我用了呢)
超出内存一般有几种解决办法- 减少模型的大小: 可以考虑减少模型的大小,例如通过选择更小的模型、减少模型的层数或通道数等方式,来降低内存需求。
- 减少批量大小:尝试减少输入数据的批量大小,降低每次前向计算所需的内存。可以尝试减小batch_size参数的值。
- 释放不需要的显存:在某些情况下,可能存在一些不需要的显存被占用,可以使用torch.cuda.empty_cache() 来释放不需要的显存。
- 启用混合精度训练:可以尝试启用混合精度训练,即使用半精度浮点数 (torch.float16 代替默认的单精度浮点数 (torch.float32。这可以显著降低内存使用,但可能会影响模型的训练效果。
- 调整 PyTorch 内存管理设置:可以尝试调整 PyTorch 的内存管理设置,例如通过设置max_split_size_mb 来避免内存碎片化。可以在 PyTorch 的文档中查找有关内存管理和PYTORCH_CUDA_ALLOC_CONF 的详细信息。
进行如下改动:
- 将13B模型替换为7B模型
- model_max_length:512–>256;lora_r:8–>4
- 训练精度:bf16–>fp16
- load_in:8bit–>4bit
- 设置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了。

相关文章:
本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)
GitHub地址:https://github.com/dvlab-research/LISA 该项目论文paper reading:https://blog.csdn.net/Transfattyacids/article/details/132254770 在GitHub上下载源文件,进入下载的文件夹,打开该地址下的命令控制台,…...
SpotBugs代码检查:instanceof总是返回true(BC_VACUOUS_INSTANCEOF)
https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#bc-instanceof-will-always-return-true-bc-vacuous-instanceof 使用instanceof判断的时候,总是返回true,除非被检测的结果是null。遇到这种告警,可能是写代码的人理解错误…...
Redis的Java客户端:Jedis入门
Jedis的优点在于方法名称和Redis命令基本一致,不过存在线程安全问题,在多线程操作时需要引入线程池。 一、引入依赖 <!--jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifa…...
【完整代码】2023数学建模国赛C题代码--蔬菜类商品的自动定价与补货决策
C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需 求情况每天进…...
idea:java: Compilation failed: internal java compiler error
java: Compilation failed: internal java compiler error错误 检查下面2个即可:...
普罗米修斯(Prometheus)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、普罗米修斯(Prometheus)是什么?1.下载Prometheus工具(切记和操作系统版本对应)2.解压命令3.修改prom…...
JAVA面试题2012年版本
1、已知a10,b15,在不用第三方变量的情况下,将a、b的值调换? 2、Session容易丢值,cookie不安全,用什么可以代替它们? 3、简述多态的特征及意义 4、冒泡排序 5、已知int array[]{3,7,5,12,20};实现从大到小排序并返回数组输出…...
IED设备模型
IED设备模型 IED设备模型是指对工业电子设备进行详细描述和建模的模型。它的核心是通过设备的特性和功能来建立相应的数学模型,以便进行仿真、测试和优化等操作。 建立IED设备模型需要遵循以下步骤: 设备描述:首先需要详细描述设备的功能、特性、参数等信息,以便建立相应…...
HTTP代理如何设置
HTTP代理是一种非常重要的网络工具,它可以帮助我们在访问互联网时提高访问速度,保护用户隐私等等。在使用HTTP代理时,需要先进行设置。下面就来介绍一下HTTP代理如何设置。 一、了解HTTP代理 在开始设置HTTP代理之前,我们需要先了…...
【设计模式】单例设计模式
目录 1、前言 2、基本语法 2.1、懒汉式单例 2.2、饿汉式单例 2.3、双重检验锁单例模式 2.4、静态内部类单例模式 2.5、枚举单例模式 2.6、ThreadLocal单例模式 2.7、注册单例模式 3、使用场景 4、使用示例 5、常见问题 5、总结 1、前言 单例模式是一种设计模式&…...
SpingBoot整合Sa-Token框架(1)
一、文档参考:框架介绍 (sa-token.cc) 框架生态——开源项目 (sa-token.cc) 二、与SpingBoot整合 1、创建项目 在 IDE 中新建一个 SpringBoot 项目,例如:sa-token-demo-springboot(不会的同学请自行百度或者参考:Sp…...
软件测试技术题目大全【含答案】
请看下面 你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己&#x…...
C#__线程的优先级和状态控制
线程的优先级: 一个CPU同一时刻只能做一件事情,哪个线程优先级高哪个先运行,优先级相同看调度算法。 在Thread类中的Priority属性(Highest,Above,Normal,BelowNormal,Lowest)可以影响线程的优先级 关于…...
103.36.167.X在服务器删除、复制文件的时候会出现卡的情况,是什么原因?
服务器硬盘在删除文件或复制文件时出现卡顿情况可能有多种原因。以下是一些常见的问题和解决方法: 硬盘性能低下:如果服务器硬盘的读写速度较慢,可能会导致卡顿现象。解决方法可以是升级到更高性能的硬盘或者使用RAID技术提升硬盘读写速度。 …...
Vim 插件应用篇 vim-plug:简洁高效的Vim插件管理工具
用插件管理插件 Vim-plug介绍 Vim-plug 是一个Vim插件管理器,利用异步并行可以快速地安装、更新和卸载插件。它的安装和配置都非常简单,而且在操作过程中会给出很多易读的反馈信息,是一个自由、开源、速度非常快的、并行地安装或更新插件&a…...
springboot 请求https的私有证书验证
一、方案描述 我这里采用RestTemplate的方式调用https请求,请求第三方接口获取数据,证书由第三方私自签发的证书,我们构建的是一个springboot的API项目。 1.pom文件引入jar <dependencies><dependency><groupId>org.spr…...
YOLO的基本原理详解
YOLO介绍 YOLO是一种新的目标检测方法。以前的目标检测方法通过重新利用分类器来执行检测。与先前的方案不同,将目标检测看作回归问题从空间上定位边界框(bounding box)并预测该框的类别概率。使用单个神经网络,在一次评估中直接…...
【UE 材质】制作飘动的旗帜
效果 步骤 1. 首先在建模软件中创建一个平面,注意分段数一定要多 2. 在UE中创建一个材质,这里命名为“Mat_Flag” 打开“Mat_Flag”,先将旗帜纹理连接到基础颜色 先选中导入的模型然后点击根据选中的模型预览材质 创建如下节点可以看到此时模…...
windows苹果商店上架ipa(基于appuploader)
参考文章: 上传ipa到appstore详细步骤 1、苹果商店地址:https://appstoreconnect.apple.com/apps 2、创建我的app 使用hbuilderx或apicloud云打包后,会生成一个ipa文件,而iphone是无法直接安装这个ipa文件的,需要将这…...
什么是SpringCloud Eureka服务注册与发现
😀前言 本篇博文是关于SpringCloud Eureka 介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力&…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...






还有就是为了控制云服务器我使用的软件有:WinSCP(进行文件传输和代码修改)和PuTTY(命令行控制)