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,一经查实,立即删除!

相关文章

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

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

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

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

笔试强训-day17_T2 十字爆破

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

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

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

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

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

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

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

组合数问题

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…

结构体介绍(1)

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

复习结构体

1.怎样使用结构体变量2.关于 . 和-> 的用法 pst -> age 会被计算机内部转化为&#xff08;*pst).age&#xff0c;这就是 ->的含义&#xff0c;是一种硬性规定 像 float 类型和 double 类型 &#xff0c;由于编码原因&#xff0c;一般都不能被精确存储 像 数字66.6在C…

【快速入门Linux】10_Linux命令—Vi编辑器

文章目录 一、vi 简介1.1 vi1.2 vim1.3查询软连接命令&#xff08;知道&#xff09; 二、打开和新建文件&#xff08;重点&#xff09;2.1 打开文件并且定位行2.2 异常处理 三、vi三种工作模式&#xff08;重点&#xff09;3.1 末行模式-命令 四、常用命令4.0 命令线路图4.1 移…

多态及相关

多态及相关 多态的概念多态实现的两个条件及特殊情况虚函数虚函数重写的例外C11 override 和 final 重载、覆盖(重写)、隐藏(重定义)的对比题目1抽象类接口继承和实现继承 题目2&#xff08;很重要&#xff09;多态的原理虚函数表为什么Derive中的func4()在监视窗口里没有显示出…

利用大模型提升个性化推荐的异构知识融合方法

在推荐系统中&#xff0c;分析和挖掘用户行为是至关重要的&#xff0c;尤其是在美团外卖这样的平台上&#xff0c;用户行为表现出多样性&#xff0c;包括不同的行为主体&#xff08;如商家和产品&#xff09;、内容&#xff08;如曝光、点击和订单&#xff09;和场景&#xff0…

Javascript基础(三)

Javascript基础&#xff08;一&#xff09; Javascript基础&#xff08;二&#xff09; 引用数据类型 在之前的文章中&#xff0c;我们提及了与基本数据类型并列的引用数据类型&#xff0c;当时提到引用数据类型大致分为三类&#xff1a;数组Array&#xff0c;函数Function&a…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用

在数字化和智能化的浪潮中&#xff0c;GIS&#xff08;地理信息系统&#xff09;和GPT&#xff08;生成式预训练模型&#xff09;的结合正日益成为推动科研、城市规划、环境监测等领域发展的关键技术。GIS以其强大的空间数据处理、先进的空间分析工具、灵活的地图制作与可视化能…

JavaEE初阶-多线程易忘点总结

文章目录 1.PCBPID文件描述符表内存指针状态上下文优先级记账信息tgid 2.线程与进程的区别3.sleep和interrupt方法的关系变量终止线程interrupt方法终止线程 4.线程状态5.出现线程不安全的原因线程在系统中是随即调度&#xff0c;抢占式执行的。多个线程修改同一个变量线程针对…

《MySQL对数据库中表的结构的操作》

文章目录 一、建表二、查看表结构所有能查看到数据库&#xff0c;表的操作痕迹的本质都是服务器保存下来了这些操作记录。 三、修改表1.改表名字2.添加表记录3.添加表的更多字段4.修改表的字段5. 删除表的字段 总结 以下的数据库表的操作全是基于user_db这个数据库操作的&#…

如何加入亚马逊云科技AWS特邀技领云合作博主

这一年来&#xff0c;小李哥帮助过上千名小伙伴学习AWS和考取认证&#xff0c;这次非常荣幸能和丸子爸比大哥、程序员学习日常成为第一批亚马逊AWS云领袖计划的特邀合作博主&#xff01;感谢AWS培训与认证各位老师的支持&#xff0c;未来小李哥会继续坚持社区分享&#xff0c;带…

AC自动机

AC自动机 AC自动机有一个很出色的功能&#xff1a;实现多模式匹配。 多模式匹配&#xff1a;模式串有多个&#xff0c;主串只有一个&#xff0c;要进行多次模式串匹配。如果用KMP就要一个一个模式串进行匹配&#xff0c;效率低。AC自动机就可以做到&#xff0c;只要经过一些预…

【全网首出】npm run serve报错 Expression: thread_id_key != 0x7777

总结 困扰了一天&#xff01;&#xff01;&#xff01;一直以为是自己哪里配置错了&#xff0c; 结果最后发现是node.js官方的问题&#xff0c; Node.js v16.x版本的fibers.node被弃用 本文阅读大概&#xff1a;3min #npm run serve时就报错 #找了一天的文章&#xff0c;找不…

# 从浅入深 学习 SpringCloud 微服务架构(八)Sentinel(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;八&#xff09;Sentinel&#xff08;1&#xff09; 一、sentinel&#xff1a;概述 1、前言 – 服务熔断 Hystrix 的替换方案。 1&#xff09;2018年底 Netflix 官方宣布 Hystrix 已经足够稳定&#xff0c;不再积极开发 Hys…