工业异常检测AnomalyGPT-Demo试跑

写在前面:如果你有大的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.


http://www.niftyadmin.cn/n/5312141.html

相关文章

第7章-第7节-Java中的TreeMap和HashTable以及collections工具类

1、TreeMap: 1)、 概述 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的 2)、 特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 键允许为空值 元素有序(具体的排序规则有Comparable 或者…

Dijkstra算法——邻接矩阵实现+路径记录

本文是在下面这篇文章的基础上做了一些补充,增加了路径记录的功能。具体Dijkstra的实现过程可以参考下面的这篇文章。 [jarvan:Dijkstra算法详解 通俗易懂](Dijkstra算法详解 通俗易懂 - jarvan的文章 - 知乎 https://zhuanlan.zhihu.com/p/338414118) …

自动化办公excel

一、应用场景:----可以完成什么操作 ①把mysql数据导入到excel文件中,然后报错了导出来日期类型是反着的,格式对不上 列:MySQL的格式:2023/12/12 excel:12/12/2023 解决办法:写个pythin脚本改变它…

即将消失的五种编程语言?

1. Ruby Ruby 在 1999 年发布后立即受到程序员们的热捧,它能够快速构建应用程序的特性给程序员留下了非常深刻的印象。紧随其后,备受欢迎的 Ruby on Rails 框架于 2004 年发布,由于 Ruby 和 Rails 这两个名称在当时几乎成为了同义词&#xf…

Prokka: ubuntu安装的时候出现错误

[14:10:57] Running: cat /app/prokka_result/ref_file/ref_file.HAMAP.hmm.tmp.77.faa | parallel --gnu --plain -j 2 --block 108208 --recstart ‘>’ --pipe hmmscan --noali --notextw --acc -E 1e-09 --cpu 1 /opt/prokka/db/hmm/HAMAP.hmm /dev/stdin > /app/pro…

【嵌入式-网络编程】vmware中使用UDP广播失败问题

问题描述: 自己在vmware中搭建了2台虚拟机,虚拟机A向虚拟机A和虚拟机B发送广播信息,接收端在虚拟机A和虚拟机B,这个时候,由于没配置sin.sin_addr.s_addr htonl(INADDR_ANY);,而是配置的inet_pton(AF_INET,…

MySQL5.7 InnoDB 磁盘结构之Table

官网地址:MySQL :: MySQL 5.7 Reference Manual :: 14.6.1.1 Creating InnoDB Tables 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. MySQL 5.7 参考手册 / ... / 创建 InnoDB 表 14.6.1.1 创建In…

基于zookeeper实现服务节点HA主备自动切换

文章目录 前言一、架构图和流程图二、流程说明1.服务启动初始化ZK、注册所有服务节点信息-MasterRegister2.创建、运行服务节点,并管理服务节点-LeaderSelectorZkClient。3.典型场景-调度服务单体执行-DigitalEmpTask 总结参考 前言 Spring Boot 主备切换可以采用数…