GitHub地址:https://github.com/dvlab-research/LISA
該項(xiàng)目論文paper reading:https://blog.csdn.net/Transfattyacids/article/details/132254770
在GitHub上下載源文件,進(jìn)入下載的文件夾,打開該地址下的命令控制臺(tái),執(zhí)行指令:
pip install -r requirements.txt
pip install flash-attn --no-build-isolation
幾種報(bào)錯(cuò)解決方法:
下載包失敗
例:“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.”
解決:帶上具體版本號(hào),如“pip install numpy==1.23”就是下不下來
例: “ERROR: Could not build wheels for XXX, which is required to install pyproject.toml-based projects”
解決:去網(wǎng)站下安裝包,“.whl”文件到本地安裝,列幾個(gè)下載網(wǎng)站:
https://download.pytorch.org/whl/
https://pypi.org/project(除了這2個(gè),法1中的3個(gè)源也可以使用)
(還是下不下來,去對(duì)應(yīng)包的GitHub,下載對(duì)應(yīng)版本的releases)
下載完后執(zhí)行:pip install file_name.whl(file_name是絕對(duì)地址)之前https://www.lfd.uci.edu/~gohlke/pythonlibs/也可以下載whl,現(xiàn)在點(diǎn)進(jìn)去是這樣的下不了了
4. 還有一個(gè)很奇怪的方法:conda install -c conda-forge XXX
- 下載預(yù)訓(xùn)練權(quán)重
如果想要自訓(xùn)練:
LLaVA:https://huggingface.co/decapoda-research
SAM:https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
直接使用提供的權(quán)重:
LISA:https://huggingface.co/xinlai
有6個(gè)版本
我下載了LISA-13B-llama2-v0-explanatory(別下這個(gè),我當(dāng)時(shí)是因?yàn)樽髡咧话l(fā)布了兩個(gè)版本,才下的,后面沒用上,要下就選擇v1的版本,內(nèi)存大的下13B,小的下7B)
要用梯子,大文件要使用LFS,git clone不能克隆需要LFS的文件,大文件我都是一個(gè)個(gè)單獨(dú)下的(漫長的下載過程orz
記得修改chat.py里權(quán)重的地址(圖中第20行)
- 運(yùn)行chat.py
不出意料的報(bào)錯(cuò)了
模型加載不成功,應(yīng)該歸因于我過小的內(nèi)存orz,借了一個(gè)云服務(wù)器
嘗試運(yùn)行的過程就是不斷產(chǎn)生新的錯(cuò)誤orz
這里不將遇到的報(bào)錯(cuò)一一羅列(太多太雜了),只展示遇到的最后兩個(gè)error,uu們?nèi)绻衅渌麊栴}可以在評(píng)論區(qū)提出了,我看到了且會(huì)解決的,就回復(fù)。
下面先展示一下我使用的云服務(wù)器的配置
- 虛擬機(jī)
![]()
- 顯卡
![]()
- python版本
![]()
- torch和torchvision
![]()
- ERORR_1:
原因: 我剛拿到時(shí)cuda版本(如圖)與PyThorch不兼容
解決: 升級(jí)CUDA(以及driver)的版本
# 禁用現(xiàn)有NVIDIA驅(qū)動(dòng)程序并卸載
sudo systemctl stop nvidia-persistenced
sudo systemctl stop nvidia-fabricmanager
sudo apt-get remove --purge '^nvidia-.*'
# 關(guān)閉xserver
systemctl stop gdm.service
# 下載對(duì)應(yīng)的CUDA包
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
# 安裝(一路默認(rèn)安裝)
sudo sh cuda_11.7.0_515.43.04_linux.run
# 安裝完畢后,啟動(dòng)X Server
systemctl start gdm.service
-
ERROR_2:
誰能想到還是報(bào)OutOfMemoryError了呢orz(我說怎么就給我用了呢)
超出內(nèi)存一般有幾種解決辦法- 減少模型的大小: 可以考慮減少模型的大小,例如通過選擇更小的模型、減少模型的層數(shù)或通道數(shù)等方式,來降低內(nèi)存需求。
- 減少批量大小:嘗試減少輸入數(shù)據(jù)的批量大小,降低每次前向計(jì)算所需的內(nèi)存??梢試L試減小batch_size參數(shù)的值。
- 釋放不需要的顯存:在某些情況下,可能存在一些不需要的顯存被占用,可以使用torch.cuda.empty_cache() 來釋放不需要的顯存。
- 啟用混合精度訓(xùn)練:可以嘗試啟用混合精度訓(xùn)練,即使用半精度浮點(diǎn)數(shù) (torch.float16 代替默認(rèn)的單精度浮點(diǎn)數(shù) (torch.float32。這可以顯著降低內(nèi)存使用,但可能會(huì)影響模型的訓(xùn)練效果。
- 調(diào)整 PyTorch 內(nèi)存管理設(shè)置:可以嘗試調(diào)整 PyTorch 的內(nèi)存管理設(shè)置,例如通過設(shè)置max_split_size_mb 來避免內(nèi)存碎片化??梢栽?PyTorch 的文檔中查找有關(guān)內(nèi)存管理和PYTORCH_CUDA_ALLOC_CONF 的詳細(xì)信息。
進(jìn)行如下改動(dòng):
- 將13B模型替換為7B模型
- model_max_length:512–>256;lora_r:8–>4
- 訓(xùn)練精度:bf16–>fp16
- load_in:8bit–>4bit
- 設(shè)置max_split_size_mb
進(jìn)入batch文件(vim ~/.bashrc
)
添加:export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32
esc、:wq、source ~/.bashrc
調(diào)整完后,終于是可以運(yùn)行了
輸入:
CUDA_VISIBLE_DEVICES=1 python chat.py --version='./LISA-7B-v1' --precision='fp16' --load_in_4bit
p.s. --version是你下載的模型地址,這里附上我項(xiàng)目目錄
還有就是為了控制云服務(wù)器我使用的軟件有:WinSCP(進(jìn)行文件傳輸和代碼修改)和PuTTY(命令行控制)
(下面是PuTTY運(yùn)行截圖)
根據(jù)提示輸入propmt語句和待分割圖片路徑:
分割后的圖像存儲(chǔ)再了./vis_output文件夾中。
但是結(jié)果不正確,可能是調(diào)整了模型的緣故吧,沒分割出LISA,分割出了ROSé
文章來源:http://www.zghlxwxcb.cn/news/detail-687197.html
算了,這個(gè)模型就先到這里,等有再好一點(diǎn)的卡再試試,去讀paper了。文章來源地址http://www.zghlxwxcb.cn/news/detail-687197.html
到了這里,關(guān)于本地部署體驗(yàn)LISA模型(LISA≈圖像分割基礎(chǔ)模型SAM+多模態(tài)大語言模型LLaVA)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!