写在前面:如果你有大的cpu和gpu可以使用,直接根据官方的安装说明就可以,如果没有,可以点进来试着看一下我个人的安装经验。
一、试跑环境
NVIDIA4090显卡24g,cpu内存33G,交换空间8g,操作系统ubuntu22.04(试跑过程cpu使用峰值为32.8g,交换空间使用峰值8g)
二、数据准备
1.AnomalyGPT源码下载
git clone https://github.com/CASIA-IVA-Lab/AnomalyGPT.git
2.权重准备
(1) ImageBind 权重:https://dl.fbaipublicfiles.com/imagebind/imagebind_huge.pth
(下载后放到AnomalyGPT/pretrained_ckpt/imagebind_ckpt文件夹下)
(2)vicuna权重:vicuna权重是由llama权重和vicuna 的delta权重组成,完整的vicuna权重需要由这两个权重合并而来。
llama权重获取:https://huggingface.co/huggyllama/llama-7b/tree/main
vicunav0权重获取:https://huggingface.co/lmsys/vicuna-7b-delta-v0
vicunav1权重获取:https://huggingface.co/lmsys/vicuna-7b-delta-v1.1/tree/main
(3)AnomalyGPT的Delta 权重:https://huggingface.co/openllmplayground/pandagpt_7b_max_len_1024
(下载后放在AnomalyGPT/pretrained_ckpt/pandagpt_ckpt/7b文件夹下)
(4)AnomalyGPT权重:
https://huggingface.co/FantasticGNU/AnomalyGPT/blob/main/train_supervised/pytorch_model.pt
(下载后放在AnomalyGPT/code/ckpt/train_supervised文件夹下)
三、运行
1.环境搭建
(打开requirements.txt 把torch版本号去掉让其自动选择安装版本,然后保存。这里修改是因为我本地是cuda12,官方默认装的是cuda11.7对应的torch,担心不适配所以修改一下。)
创建anomalygpt环境并安装相关包
conda create -n anomalygpt python=3.8
conda activate anomalygpt
pip install -r requirements.txt
2.vicuna权重合并
vicuna权重合并用的是fastchat工具
fastchat环境搭建
conda create -n fastchat python=3.8
conda activate fastchat
pip3 install "fschat[model_worker,webui]"
合并命令:(注意:(1).这里的fastchat版本不能为0.1.10,因为0.1.10没有--low-cpu-mem这个参数,无法在cpu内存小的设备上进行合并权重;(2).vicuna的delta权重版本选1.1,vicunav0版本的时候有一个tensor错误,会报RuntimeError: The size of tensor a (32000) must match the size of tensor b (32001) at non-singleton dimension 0错误)
python -m fastchat.model.apply_delta --base llama权重文件夹路径 \--target 合并后的权重保存路径 \--delta vicuna的delta权重文件夹路径 \--low-cpu-mem
合并成功:
3.demo运行
(1)直接运行python web_demo.py,会报被kill的错;
(2)解决被杀死问题:将delta_chpt_path,anomaly_ckpt_path,imagebind_ckpt_path模型加载到gpu上(共5g左右的显存),这样vicuna模型才能正常加载完成。
(3)有时候直接运行python web_demo.py会报ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7891/')的错,
解决方案:在terminal中运行一下命令:
unset all_proxy; unset ALL_PROXY
(4)正常运行运行python web_demo.py成功:
(5)线上线下demo效果对比:
线上:
本地:
五、参考文献
vacuna大模型训练:大模型也内卷,Vicuna训练及推理指南,效果碾压斯坦福羊驼
anomalygpt文章介绍:大模型也能用来做工业异常检测 - 知乎
大模型相关:UC伯克利发布大语言模型排行榜,Vicuna夺冠,清华ChatGLM进前5-36氪
工业缺陷数据集:MVTEC公开数据集_mvtec数据集-CSDN博客
高效大模型微调框架:大模型高效微调-PEFT框架介绍 - 知乎
DeepSpeedAgent: [LLM]大模型训练(一)--DeepSpeed介绍-CSDN博客
SelfInstructTestDataset:生成语料方式【self-instruct方式生成语料代码实战】-CSDN博客
LDAP命令介绍---dsconfig_ldap 查看所有 bind dn-CSDN博客
权重合并操作参考:https://github.com/CASIA-IVA-Lab/AnomalyGPT/tree/main/pretrained_ckpt#1-prepare-vicuna-checkpoint
合并权重操作手册常见的坑:【LLM入门】Vicuna 模型部署与测试 - 知乎
GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena.