工业异常检测AnomalyGPT-Demo试跑

news2024/11/16 23:40:30

写在前面:如果你有大的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.coloradmin.cn/o/1368562.html

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

相关文章

FDA食品接触材料测试项目接触

1. FDA介绍: 美国食品和药品管理局(FDA)负责监管食品接触材料,此类材料必须经过检测,确保达到食品接触安全标准。美国联邦法规(CFR)第21章对此类材料作出具体规定,并将此类材料视…

spring boot 自动扫描Controller、Service、Component原理

项目里面为什么不加上ComponentScan("com.yym.*")注解,也能加载到子目录里面的Controller,Service,Component的bean呢? 启动类没有ComponentScan注解 SpringBootApplication public class BootStrap {public static v…

SpringMVC工作原理

Spring MVC 概述 SpringMVC是一个基于MVC模式的Web框架,它是Spring Framework的一部分。SpringMVC主要用于在Java Web应用程序中实现Web层,提供了一套与平台无关的、可重用的Web组件。 Spring MVC是Spring框架提供的一个实现webMVC设计模式的轻量级框架…

11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

Python自动化测试面试题分享(含答案)

1、如果页面元素经常发生需求变化,你是如何做? 利用po模式,业务逻辑和测试逻辑相分离,当某个页面经常发生变化只需要维护页面,包括元素定位表达式,封装业务方法;不需要修改测试逻辑; 页面经常…

什么是SEO?SEO还存在吗?

曾经火热的seo,至今为啥很少人知道呢?为啥说seo是曾经的火热,这还得从那时百度的算法来说起了,曾经的百度可以通过seo优化自己的网站来获得百度爬虫的爬取,从而在百度获得更高的排名和权重。 现在我们打开百度随便搜索…

C语言中常用的字符串函数(strlen、sizeof、sscanf、sprintf、strcpy)

C语言中常用的字符串函数 文章目录 C语言中常用的字符串函数1 strlen函数2 sizeof函数2.1 sizeof介绍2.2 sizeof用法 3 sscanf函数3.1 sscanf介绍3.2 sscanf用法3.3 sscanf高级用法 4 sprintf函数4.1 背景4.2 sprintf用法 5 strcpy函数5.1 strcpy介绍5.1 strcpy用法 1 strlen函…

【C语言题解】 | 572. 另一棵树的子树

572. 另一棵树的子树 572. 另一棵树的子树代码 572. 另一棵树的子树 该题目需要判断一二叉树是否为另一二叉树的子树 像此类,就不算是root的子树 此题的思路为: 传入subRoot,与root相比较,判断二者是否相同 若与root不相同&#…

Java学习笔记-day02-Flowable基础API小结

1.创建ProcessEngine 使用编码创建 Testpublic void processEngine01(){// 获取 ProcessEngineConfiguration 对象ProcessEngineConfiguration configuration new StandaloneProcessEngineConfiguration();// 配置 相关的数据库的连接信息configuration.setJdbcDriver("…

网安入门12-文件上传(黑白名单,00截断)

黑名单绕过 Pass-03 有的时候后端限制了一些黑名单,比如过滤后缀名.php 我们就可以用黑名单里没有的后缀名进行绕过,例如: 大小写:.phP .pHp .AsPphp1 .php2 .php3 .php9 .phtml(成功率较高)特殊文件名绕…

TypeScript基础(三)扩展类型-接口和类型兼容性

✨ 专栏介绍 TypeScript是一种由微软开发的开源编程语言,它是JavaScript的超集,意味着任何有效的JavaScript代码都是有效的TypeScript代码。TypeScript通过添加静态类型和其他特性来增强JavaScript,使其更适合大型项目和团队开发。 在TypeS…

一文详解VScode 的远程开发

VS code登录服务器后进行编码和调试,VS code上的所有功能都可以使用,和在本地开发基本无区别。 一、配置免密远程登录 因为是要远程登录,那么需要通过使用ssh进行密钥对登录,这样每次登录服务器就可以不用输入密码了。 先来一句官…

【复习】人工智能 第2章 知识表示

一、 知识的概念 (1)知识:把有关信息关联在一起所形成的信息结构。 注:事实与规则的区别: 事实 —— “雪是白色的” 大自然自带的 规则 —— “如果头痛且流涕,则有可能患了感冒” 有点推理意味的 &…

服务器监控软件夜莺使用(二)

文章目录 一、采集器安装1. Categraf简介2. Categraf部署3. 测试服务器部署4. 系统监控插件5. 显卡监控插件6. 服务监控插件 二、监控仪表盘1. 机器列表2. 系统监控3. 服务监控 三、告警配置1. 邮件通知2. 告警规则3. 告警自愈 一、采集器安装 1. Categraf简介 Categraf 需要…

QTableView和QTableWidget之间的联系 和 区别?什么时候该用QTableView,什么时候该用QTableWidget?

参考:tableview与tablewidget的区别_wx64f5321a2db60的技术博客_51CTO博客 QTableView 和 QTableWidget 是 Qt 中用于显示和编辑表格数据的两个不同的部件,它们之间存在一些重要的区别: 一、主要区别是:QTableView可以使用自定义…

拥有影响力,项目经理才能如鱼得水

优秀的项目经理,不仅需要具备卓越的组织和协调能力,还需要拥有足够的影响力,以便能够推动项目的顺利进行。然而,现实情况是,许多项目经理并没有意识到影响力的重要性,导致他们在工作中事半功倍,…

中国建设银行 关于解决微软升级导致插入网银盾无法自动打开企业网银的通知

关于解决微软升级导致插入网银盾无法自动打开企业网银的通知 发布时间:2023-10-18 尊敬的客户: 近期Windows操作系统升级会禁止使用IE浏览器,可能会导致您在插入网银盾后无法自动弹出企业网银登录页面,您可以通过以下方式解决&…

一篇文章带您了解如何实现WordPress主题/插件本地化翻译

要实现WordPress主题和插件的本地化翻译就需要了解什么是国际化和本地化以及WordPress是如何实现国际化和本地化的。 什么是国际化? 国际化是为软件(在本例中为 WordPress)提供多语言支持的过程。国际化通常缩写为 i18n,其中 18 代…

Zoho Mail企业邮箱:跨境协作的利器,荣登Top榜单

在全球化的商业环境中,高效的协作工具对于企业及个人来说都至关重要。邮件因其自身规格正式、全球通用等特点,在跨境通信场景中仍然是最高频使用的工具之一。 Zoho Mail企业邮箱因邮件抵达率高,数据加密严,纯净无广告,…

数据分析求职-常见面试题前言

今天和大家聊聊数据分析求职常见面试题,这是这个系列的第一篇文章,但是我不想开始就直接罗列题目,因为这样的文章实在太多了,同学们的兴趣程度肯定一般。所以,我想先和大家聊聊在准备面试题时候通常遇到的困扰&#xf…