微调baichuan2-7b遇到的显存坑
问题描述:
微调baichuan2-7b模型,验证一轮后继续训练第一个iteration显存大幅增加
项目链接:
https://github.com/wp931120/baichuan_sft_lora
具体描述:
由于某些原因,笔者是在transformers4.30.2、torch2.0.1,accelerate==0.22版本上进行实验。
在训练过程中,发现显存溢出,考虑是句子长度问题,将1024设置为512。
然而训练还是显存溢出,通过调试分析,在评估验证集之前,显存大概占用11G左右,在评估过程中,显存依然保持11G左右,然而评估一结束,继续训练时,显存大幅增加,变为20G左右,后面不管怎么训练和评估,显存基本上都维持在20G。
然而根据项目作者的实验,明明12G左右的显存就够。
为此,后经群里大佬提示,考虑释放torch缓存或者更新transformers版本。
1、尝试各种方式在评估之后释放显存依然无效。
2、由于某些原因无法更新transformers版本,暂无法验证。
由于作者在原始代码上的更改并不多,遂怀疑是否是由于基座大模型(baichuan2-7b)的原因导致显存增加,因此将基座大模型换成chatglm2-6b,将数据处理的代码稍作修改后进行实验,发现模型在评估后继续训练显存没有大幅增加。
至此,虽然不清楚为什么baichuan-7b在当前环境无法正常训练,可能的原因是当前版本的transformers不太足够支持baichuan-7b的训练,对chatglm2-6b训练是足够的。
注释:
卡2是chatglm2-6b在qlora训练模式下的显存占用,卡3是baichuan2-7b在qlora训练模式下的显存占用。

微调baichuan2-7b遇到的显存坑的更多相关文章
- 我的Keras使用总结(5)——Keras指定显卡且限制显存用量,常见函数的用法及其习题练习
Keras 是一个高层神经网络API,Keras是由纯Python编写而成并基于TensorFlow,Theano以及CNTK后端.Keras为支持快速实验而生,能够将我们的idea迅速转换为结果.好 ...
- 分页型Memory LCD显存管理与emWin移植
上一篇随笔整理了一下逐行扫描型Memory LCD的显存管理与emWin移植,这篇就整理一下分页型Memory LCD显存管理与emWin移植. //此处以SSD1306作为实例 //OLED的显存/ ...
- 逐行扫描型Memory LCD显存管理与emWin移植
因为Memory LCD 的特性,不能设置像素坐标,只能用缓存整体刷新. 所以对于Memory LCD来说,emWin移植仅与打点函数有关,这里用Sharp Memory LCD(ls013b7dh0 ...
- Cpu Gpu 内存 显存 数据流
[精]从CPU架构和技术的演变看GPU未来发展 http://www.pcpop.com/doc/0/521/521832_all.shtml 显存与纹理内存详解 http://blog.csdn.n ...
- OpenGL8-直接分配显存-极速绘制(2)
视频教程请关注 http://edu.csdn.net/lecturer/lecturer_detail?lecturer_id=440/*** OpenGL8-直接分配显存-极速绘制(Opengl1 ...
- OpenGL8-直接分配显存-极速绘制(Opengl1.5版本才有)
视频教程请关注 http://edu.csdn.net/lecturer/lecturer_detail?lecturer_id=440 /** * 这个例子介绍如何使用显卡内存进行绘制 下载地址 : ...
- Nvidia显卡怎样查看显存大小及硬件相关信息
在电脑上安装Nvidia显卡驱动,平时也会通过Nvidia控制面板来查看显示显存位宽及宽带.显示显存容量和显示显存芯片信息等等,那么该如何查看Nvidia显存大小以及Nvidia硬件相关信息呢? 1. ...
- gpu显存(全局内存)在使用时数据对齐的问题
全局存储器,即普通的显存,整个网格中的随意线程都能读写全局存储器的任何位置. 存取延时为400-600 clock cycles 很easy成为性能瓶颈. 訪问显存时,读取和存储必须对齐,宽度为4B ...
- [自制操作系统] 图形界面&VBE工具&MMIO显存&图形库/字库
本文记录了在JOS(或在任意OS)上实现图形界面的方法与一些图形库的实现. 本文中支持的新特性: 支持基本图形显示 支持中英文显示(中英文点阵字库) 相关:VBE VESA MMIO 点阵字库 Git ...
- [置顶]
基于FPGA的VGA简易显存设计&NIOS ii软核接入
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...
随机推荐
- [Bread.Mvc] 开源一款自用 MVC 框架,支持 Native AOT
Bread.Mvc Bread.Mvc 是一款完全支持 Native AOT 的 MVC 框架,搭配同样支持 AOT 的 Avalonia,让你的开发事半功倍.项目开源在 Gitee,欢迎 Star. ...
- CodeForces-1278B-A-and-B
题意 对于\(t(1\leq t\leq 100)\)个测试点,给两个数\(a\)和\(b\),作如下操作: 第一次挑一个数使其加\(1\),第二次挑一个数使其加\(2\),以此类推,最后两个数相等, ...
- 【krpano】 ASP浏览量插件
简述 这是一个Asp版krpano统计访问量案例,运用asp代码控制增值来实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户进入网页增值或刷新增值. 案例展示 所有文件如下图 ...
- Visual Studio 2022 Preview 3和2019 16.11发布
Visual Studio 2022 Preview 3 主要特点 个人和团队生产力 附加到进程改进 新项目设计器 黑暗主题提升 开发现代应用 远程测试 新的JavaScript和TypeScript ...
- Kruskal重构树 学习笔记
Kruskal 重构树 最大生成树将部分内容倒置即可 回顾:Kruskal 基本信息 求解最小生成树 时间复杂度:\(O(m \log m)\) 更适合稀疏图 算法思想 按照边权从小到大排序 依次枚举 ...
- [MAUI]实现动态拖拽排序列表
@ 目录 创建页面元素 创建可绑定对象 创建绑定服务类 拖拽(Drag) 拖拽悬停,经过(DragOver) 释放(Drop) 限流(Throttle)和防抖(Debounce) 项目地址 上一章我们 ...
- 前端框架——Vue3
文章目录 Vue3快速上手 1.Vue3简介 2.Vue3带来了什么 1.性能的提升 2.源码的升级 3.拥抱TypeScript 4.新的特性 一.创建Vue3.0工程 1.使用 vue-cli 创 ...
- Welcome to the Android Open Source Project!
Android is an open-source software stack for a wide range of mobile devices and a corresponding open ...
- DELL R750
两种情况不常见 1.如果R750的配置单里提到 跳线-C13/C14.0.6M.250V.10A(中国.韩国) 要注意里面写的0.6M,表示这个线是0.6米的,较短,客户机房环境复杂的情况下,很可 ...
- 【v2v迁移】Xen2kvm 迁移-linux篇
迁移环境: 源平台:华为FusionComputeV100R006C10SPC101 目标平台:基于KVM虚拟化的云平台,本文以原生的libvirt为例 虚拟机:centos 7.6 具体操作步骤: ...