VisualGLM-6B微调(V100)

Visualglm-6b-CSDN博客文章浏览阅读1.3k次。【官方教程】XrayGLM微调实践,(加强后的GPT-3.5)能力媲美4.0,无次数限制。_visualglm-6bhttps://blog.csdn.net/u012193416/article/details/131074962?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171478876716800184169034%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171478876716800184169034&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-131074962-null-null.nonecase&utm_term=visualglm&spm=1018.2226.3001.4450本次主要是在本地微调visualglm-6b的几个小坑,这玩意环境是麻烦啊,一堆问题。

1.数据问题

记得模型路径别改错。

2.模型加载问题

visualglm的模型加载非常的麻烦,首先字huggingface上开源了hf版本的权重,但是这个权重只能用来推理,无法微调,因此要下微调版本的权重:

可以下这个在Xray上微调的版本,原始的清华云盘已经失效了

https://huggingface.co/wangrongsheng/XrayGLM-300/tree/main

 下载完成之后,注意路径

 然后在代码更改代码:

  model_type = "/home/image_team/image_team_docker_home/lgd/e_commerce_lmm/weights/THUDM_Visualglm6b/"model, args = FineTuneVisualGLMModel.from_pretrained(model_type, args)

AttributeError 'FakeTokenizer' object has no attribute 'encode'

改一下代码,是chtaglm的tokenizer的加载问题

def create_dataset_function(path, args):# tokenizer = get_tokenizer("args")tokenizer = AutoTokenizer.from_pretrained("/home/image_team/image_team_docker_home/lgd/e_commerce_lmm/weights/visualglm-6b/", trust_remote_code=True)image_processor = BlipImageEvalProcessor(224)dataset = FewShotDataset(path, image_processor, tokenizer, args)return dataset

3.版本问题

升级gcc 5.4

sudo rpm -ivh gcc-5.4.0-1.el7.centos.x86_64.rpm
export CC=/usr/local/bin/x86_64-unknown-linux-gnu-gcc
export CXX=/usr/local/bin/x86_64-unknown-linux-gnu-g++

为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本 - VPS侦探CentOS 7虽然已经出了很多年了,但依然会有很多人选择安装CentOS 6,CentOS 6有些依赖包和软件都比较老旧,如今天的主角gcc编译器,CentOS 6的gcc版本为4.4,CentOS 7为4.8。gcc 4.8最主要的一个特性就是全面支持C++11,如果不清楚什么用的也没关系,简单说一些C++11标准的程序都需要gcc 4.8以上版本的gcc编译器编译,如MySQL 8.0版本(8.0.16以上版本是C++14标准,需gcc 5.3以上版本)。icon-default.png?t=N7T8https://www.vpser.net/manage/centos-6-upgrade-gcc.html5.4版本不行,后续在编译c++17时会报错。

直接执行pip install -r requirement.txt

SwissArmyTransformer>=0.3.6
transformers==4.27.1
bitsandbytes==0.39.0
deepspeed==0.14.0

这其中bitsandbytes这个库和量化有关,可能要升级你的gcc等,比较麻烦

遇到了yum卡主了不动的情况

rpm和yum卡住 - 知乎问题描述今天使用yum 安装 一个软件的时候,发现一只卡在yum 这一步, 没有任何报错信息, 且无法 ctrl + c 终止, 只能通过后台 kill -9 杀死 问题解决1. 通过添加 -vv 查看日志 yum -vv + 软件包会发现卡在 loading …icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/358154111一直编译fused_adam失败

deepspeed-ninja报错解决 - Be With youdeepspeed训练模型时ninja报错解决1、报错如下:12345678910111213141516171819202122232425[1/3] /usr/bin/nvcc -DTORCH_EXTENSION_NAME=fused_adam -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\"icon-default.png?t=N7T8https://johnson7788.github.io/2023/08/23/deepspeed-ninja%E6%8A%A5%E9%94%99%E8%A7%A3%E5%86%B3/c++17 nvcc版本不支持c++17编译,nvcc是11.8,gcc7.3就可以支持了

/usr/local/cuda-12.1/bin/nvcc  -ccbin /usr/local/bin/x86_64-unknown-linux-gnu-gcc -DTORCH_EXTENSION_NAME=fused_adam -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -I/home/miniconda3/envs/visualglm/lib/python3.10/site-packages/deepspeed/ops/csrc/includes -I/home/miniconda3/envs/visualglm/lib/python3.10/site-packages/deepspeed/ops/csrc/adam -isystem /home/miniconda3/envs/visualglm/lib/python3.10/site-packages/torch/include -isystem /home/miniconda3/envs/visualglm/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -isystem /home/miniconda3/envs/visualglm/lib/python3.10/site-packages/torch/include/TH -isystem /home/miniconda3/envs/visualglm/lib/python3.10/site-packages/torch/include/THC -isystem /usr/local/cuda-11.1/include -isystem /home/miniconda3/envs/visualglm/include/python3.10 -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 --compiler-options '-fPIC' -O3 -DVERSION_GE_1_1 -DVERSION_GE_1_3 -DVERSION_GE_1_5 -lineinfo --use_fast_math -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70 -std=c++14 -c /home/miniconda3/envs/visualglm/lib/python3.10/site-packages/deepspeed/ops/csrc/adam/multi_tensor_adam.cu -o multi_tensor_adam.cuda.o

4.微调

#! /bin/bash
NUM_WORKERS=1
NUM_GPUS_PER_WORKER=4
MP_SIZE=1script_path=$(realpath $0)
script_dir=$(dirname $script_path)
main_dir=$(dirname $script_dir)
MODEL_TYPE="visualglm-6b"
MODEL_ARGS="--max_source_length 64 \--max_target_length 256 \--lora_rank 10 \--layer_range 0 14 \--pre_seq_len 4"# OPTIONS_SAT="SAT_HOME=$1" #"SAT_HOME=/raid/dm/sat_models"
OPTIONS_NCCL="NCCL_DEBUG=info NCCL_IB_DISABLE=0 NCCL_NET_GDR_LEVEL=2"
HOST_FILE_PATH="hostfile"
HOST_FILE_PATH="hostfile_single"train_data="/home/image_team/image_team_docker_home/lgd/e_commerce_lmm/data/fewshot-data/dataset.json"
eval_data="/home/image_team/image_team_docker_home/lgd/e_commerce_lmm/data/fewshot-data/dataset.json"gpt_options=" \--experiment-name finetune-$MODEL_TYPE \--model-parallel-size ${MP_SIZE} \--mode finetune \--train-iters 300 \--resume-dataloader \$MODEL_ARGS \--train-data ${train_data} \--valid-data ${eval_data} \--distributed-backend nccl \--lr-decay-style cosine \--warmup .02 \--checkpoint-activations \--save-interval 300 \--eval-interval 10000 \--save "/home/image_team/image_team_docker_home/lgd/e_commerce_lmm/results/visualglm_6b_xray" \--split 1 \--eval-iters 10 \--eval-batch-size 8 \--zero-stage 1 \--lr 0.0001 \--batch-size 4 \--skip-init \--fp16 \--use_lora
"run_cmd="${OPTIONS_NCCL} ${OPTIONS_SAT} deepspeed --master_port 16666 --hostfile ${HOST_FILE_PATH} finetune_visualglm.py ${gpt_options}"
echo ${run_cmd}
eval ${run_cmd}set +x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6432.shtml

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

相关文章

使用Axios从前端上传文件并且下载后端返回的文件

前端代码: function uploadAndDownload(){showLoading();const fileInput document.querySelector(#uploadFile);const file fileInput.files[0];const formData new FormData()formData.append(file, file)return new Promise((resolve, reject) > {axios({…

【经典论文阅读1】FM模型——搜推算法里的瑞士军刀

全文由『说文科技』原创出品,文章同步更新于公众号『说文科技』。版权所有,翻版必究。 FM模型发表于2010年,它灵活好用且易部署。作者行文极其流畅,作者首先对要处理的问题进行介绍,接着作者提出FM模型,这…

Vue单页面应用和多页面应用的区别

概念: SPA单页面应用(SinglePage Web Application),指只有一个主页面的应用,一开始只需要加载一次js、css等相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换…

Grad-CAM(梯度加权类激活图)

Grad-CAM(Gradient-weighted Class Activation Mapping)是一种可视化技术,用于解释卷积神经网络(CNN)的决策过程。它通过生成类激活图(Class Activation Map,CAM)来突出显示对网络预…

笔试强训-day17_T2 十字爆破

一、题目链接 十字爆破 二、题目描述 牛牛在玩一个游戏: 一共有n行m列共nm个方格,每个方格中有一个整数。 牛牛选择一个方格,可以得到和这个方格同行、同列的所有数之和的得分。 例如:对于一个22的方格: 1 2 3 4 牛牛…

Python字符串常用方法(全网最细,仅此一份)

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 👉Python从入门到精通 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python180G全栈视频教程以及Python相关电子书合集 😊私信未回可以加V:hacker0327 备注P…

Nodejs-异步并发控制

异步并发控制 在 node 中可以利用异步发起并行调用。但是如果并发量过大,就会导致下层服务器吃不消。 bagpipe 解决方案 解决方案 通过一个队列来控制并发量如果当前活跃的异步调用小于限定值,从队列中取出执行如果活跃调用达到限定值,调…

文心一言 VS 讯飞星火 VS chatgpt (251)-- 算法导论18.2 4题

四、假设关键字 {1,2,…,n} 被插入一棵最小度数为 2 的空 B 树中,那么最终的B树有多少个结点?如果要写代码,请用go语言。 文心一言: B树(B-tree)是一种自平衡的树&…

对于Java和mysql的时间类型不一样而引发的问题应该怎么处理

在Java和MySQL中,时间类型有一些不同,可能会导致一些问题。一种常见的情况是Java中的时间类型与MySQL中的时间类型不匹配,例如Java中的java.sql.Timestamp和MySQL中的TIMESTAMP类型之间的差异。这种情况下,可以采取以下处理方法&a…

深入探索微信小程序:图像处理与优雅预览的艺术

深入探索微信小程序:图像处理与优雅预览的艺术 微信小程序中的图片基础一、图片上传与压缩二、图片预览技巧三、图片处理进阶:Canvas与滤镜四、性能优化与最佳实践参考资料 微信小程序中的图片基础 图片资源存储:本地资源与网络资源的使用区…

Linux系统下设置命令的别名

给常用Docker命令起别名,方便我们访问: 第一步:修改/root/.bashrc文件 vi /root/.bashrc第二版:添加别名 # .bashrc # User specific aliases and functionsalias rmrm -i alias cpcp -i alias mvmv -i alias dpsdocker ps --f…

sql数据库——增删改

1.插入 insert into <表><字段1&#xff0c;字段2&#xff0c;字段3> values<值1&#xff0c;值2&#xff0c;值3> 2.更新/修改 update <表名> set 修改字段1值1&#xff0c;修改字段2值2&#xff0c;修改字段3值3&#xff0c; 3.删除 delete …

商务分析方法与工具(一):Python的趣味快捷-运算符、表达式与内置对象

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

【Spring】6.深入解析分布式事务:CAP理论、一致性模型与容错机制

随着业务需求的日益复杂&#xff0c;分布式系统架构已成为构建可扩展、高可用服务的主流选择。然而&#xff0c;分布式系统带来了新的挑战&#xff0c;尤其是在事务处理方面。分布式事务需要在多个服务或数据库实例间保持数据的一致性和完整性&#xff0c;这在技术实现上具有很…

组合数问题

1.直接用递推&#xff1a; 下面是AC代码“&#xff1a; #include<bits/stdc.h> using namespace std; const int N2010,mod1e97; int a[N][N]; void init() {for(int i0;i<N;i){for(int j0;j<i;j){if(j0) a[i][j]1;else a[i][j](a[i-1][j]a[i-1][j-1])%mod;}} } i…

【C++并发编程】(二)线程的创建、分离和连接

文章目录 &#xff08;二&#xff09;线程的创建、分离和链接创建线程&#xff1a;示例线程的分离&#xff08;detach&#xff09;和连接&#xff08;join&#xff09;。 &#xff08;二&#xff09;线程的创建、分离和链接 创建线程&#xff1a;示例 线程&#xff08;Thread…

docker搭建redis集群三主三从

为什么需要做分布式redis 水平扩展&#xff1a; 随着业务的发展&#xff0c;单机Redis可能无法满足日益增长的数据存储和访问需求。分布式Redis可以通过将数据分散到多个节点上来实现水平扩展&#xff0c;提高存储容量和处理能力。高可用性&#xff1a; 单点故障是任何系统的一…

C++关联容器2——关联容器特有操作

关联容器操作 除了http://t.csdnimg.cn/osoJZ 中列出的类型&#xff0c;关联容器还定义了下表中列出的类型。这些类型表示容器关键字和值的类型。 关联容器额外的类型别名 key_type此容器类型的关键字类型mapped_type每个关键字关联的类型&#xff1b;只适用于mapvalue_type对…

macOS asdf 工具版本管理器

一、区别于Homebrew "asdf"和"Homebrew"都是用于管理软件包的工具&#xff0c;但它们的主要区别在于适用范围和管理的内容&#xff1a; 1.适用范围&#xff1a; asdf&#xff1a;是一个通用的版本管理工具&#xff0c;可以用来管理多种不同的软件工具和…

结构体介绍(1)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 结构体&#xff08;1&#xff09; 前言一、struct介绍结构体声明结构体创建和初始化struct 的特殊声明结构体自引用 二、结构体内存对齐2.1.对齐规则 总结 前言 结构体 属于…