LLM实战:LLM微调加速神器-Unsloth + Qwen1.5
1. 背景
上一篇介绍了基于训练加速框架Unsloth,微调训练Llama3的显卡资源占用及训练时间对比。
近期Unsloth新增了Qwen1.5的模型适配,因此本qiang~马不停蹄地又进行了一次实验对比。
对Unsloth的简介,感兴趣的客观可以查阅上一篇《LLM微调加速神器:Unsloth + LLama3》。
2. 实战
本着眼过千遍不如手过一遍的宗旨,本qiang~针对Unsloth做了一个对比实现。
对比的实验环境为: A800,模型为Qwen1.5-32B-Chat。
可以使用如下命令进行更新unsloth。
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
2.1 比对维度
|
维度 |
说明 |
|
显卡 |
是否支持bf16 |
|
最大文本长度 |
max_seq_length |
|
批次大小 |
per_device_train_batch_size |
|
梯度累加步长 |
gradient_accumulation_steps |
|
秩 |
LoRA的rank |
|
dropout |
lora_droput |
2.2 源码
源码请见地址,由于Qwen1.5和Llama3的prompt模板不一致,因此源码层面上也稍加了改动。
3 实验结果
3.1 A800

3.2 结论
针对于Qwen1.5-32B-Chat进行unsloth训练,与基于transformers框架训练进行比对,结论如下:
集成unsloth后,显卡占用确实更少,平均减少20%-25%,训练效率确实更快,不管是哪种维度,平均训练时间减少了27%-41%。
使用40G显存的单卡如A40,即可进行微调训练。
4. 总结
一句话足矣~
本文主要是使用unsloth框架针对Qwen1.5的高效微调实验,提供了详细的对比代码以及不同维度的对比分析结果。
之后会研读一遍unsloth的底层源码,具体是如何使用triton语言实现加速的,以及如何手写的前馈网络和反向传播的实现~
5. 参考
1. unsloth: https://github.com/unslothai/unsloth

LLM实战:LLM微调加速神器-Unsloth + Qwen1.5的更多相关文章
- 内核融合:GPU深度学习的“加速神器”
编者按:在深度学习"红透"半边天的同时,当前很多深度学习框架却面临着共同的性能问题:被频繁调用的代数运算符严重影响模型的执行效率. 本文中,微软亚洲研究院研究员薛继龙将为大家介绍 ...
- (数据科学学习手札86)全平台支持的pandas运算加速神器
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 随着其功能的不断优化与扩充,pandas已然成为 ...
- Python爬虫加速神器的小试
大名鼎鼎的aiohttp,相信如果你学习Python或者爬虫的时候,肯定听说过这个东西.没听过也不要紧,今天看完文章,只要记住,aiohttp这个东西,在写爬虫的时候,很牛逼就行了. aiohttp ...
- 巧用MySQL AHI加速神器,让你的InnoDB查询飞起来!
DBAPLUS http://mp.weixin.qq.com/s/cIjQIz-ZngSYJ3k2ZBBSsg
- 推荐一个github国内访问加速神器GitHub520
一.介绍 对 GitHub 说"爱"太难了:访问慢.图片加载不出来. 注: 本项目还处于测试阶段,仅在本机测试通过,如有问题欢迎提 issues 本项目无需安装任何程序,通过修改本 ...
- 在一张 24 GB 的消费级显卡上用 RLHF 微调 20B LLMs
我们很高兴正式发布 trl 与 peft 的集成,使任何人都可以更轻松地使用强化学习进行大型语言模型 (LLM) 微调!在这篇文章中,我们解释了为什么这是现有微调方法的有竞争力的替代方案. 请注意, ...
- TensorRT基础笔记
一,概述 TensorRT 是 NVIDIA 官方推出的基于 CUDA 和 cudnn 的高性能深度学习推理加速引擎,能够使深度学习模型在 GPU 上进行低延迟.高吞吐量的部署.采用 C++ 开发,并 ...
- JVM难学?那是因为你没认真看完这篇文章
一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分类: ...
- JVM 一套卷,助你快速掌握优化法则
一:虚拟机内存图解 JAVA 程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行 JAVA 程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分 ...
- JVM难学?那是因为你没认真看完这篇文章(转)
一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分类: ...
随机推荐
- 劫持TLS绕过canary pwn89
劫持TLS绕过canary pwn88 首先了解一下这个东西的前提条件和原理 前提: 溢出字节够大,通常至少一个page(4K) 创建一个线程,在线程内栈溢出 原理: 在开启canary的情况下,当程 ...
- OpenHarmony Meetup北京站招募令
OpenHarmony Meetup城市巡回北京站火热来袭!!日期:2023年11月25日14:00地点:中国科学院软件园区五号楼B402与OpenHarmony技术大咖近距离互动,分享技术见解,结交 ...
- 开源机密计算平台:蓬莱-OpenHarmony
演讲嘉宾 | 杜 东 回顾整理 | 廖 涛 排版校对 | 李萍萍 嘉宾简介 杜东,上海交通大学助理研究员.中国计算机学会CCF会员,ACM会员.研究兴趣为操作系统与体系结构.服务器无感知(Se ...
- C 语言文件读取全指南:打开、读取、逐行输出
C 语言中的文件读取 要从文件读取,可以使用 r 模式: FILE *fptr; // 以读取模式打开文件 fptr = fopen("filename.txt", "r ...
- 重新点亮linux 命令树————grub配置文件[二十]
前言 简单介绍一下grub 配置文件. 正文 grub 是什么呢? 引导配置. grub 配置文件: /etc/default/grub 默认grub配置文件 /etc/grub.d/ /boot/g ...
- 调用App Store Connect Api
对iOS的证书.描述文件.账号.设备等管理,之前都去苹果开发者中心操作,官网上操作也比较繁杂,想搞一些自动化之类的,更是麻烦,有时候官网都打不开-- 其实苹果还提供里一套API接口,创建证书.创建账号 ...
- 使用EPLAN做项目的收获点
收获点如下: 1.消息检查功能. 最具有代表性的EPLAN软件的辅助检查功能.通过自带检查可以发现设计的错误和警告. 2.导线表导出功能. 使用导入模版.宏设置,导出对应线号表. 此类接线通过一个导线 ...
- 【笔记】Oracle 窗口函数
Oracle 窗口函数 简单来说,窗口函数是分析函数的一种,通常可以理解成over()函数 构成:函数名①() over(partition by 分组的列名 order by 排序的列名 XXX) ...
- 在阿里巴巴,我们如何先于用户发现和定位 Kubernetes 集群问题?
简介:本文整理自阿里云高级研发工程师彭南光(光南) 在 KubeCon China 2021 大会的演讲实录,分享了阿里巴巴是如何通过自研通用链路探测+定向巡检工具 KubeProbe 应对大规模集 ...
- OceanBase再破纪录!核心成员陈萌萌:坚持HTAP就是坚持我们做数据库的初心
简介: 2021年5月20日,据国际事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,蚂蚁集团自主研发的分布式关系型数据库Oc ...