llama-factory笔记

llama-factory笔记

RoPE 插值方法能提升长文本效果,如果没有特殊需求可以不使用(yarn最好,dynamic能动态变化,linear适合所有文本长度相近的情况且耗时最短)

加速方法:内置了flash_attention,auto即为flash_attention,unsloth更适合显存低的情况;flash_attention和unsloth主要用在训练过程中,vllm主要用在推理过程中

Qlora框架下的具体量化方法:bitsandbytes直接内置比较方便,hqq在显存极低情况下更好用(显存占用下降更多),但需要安装

Qlora最低容忍度为4bit量化,损失在4-8%(8bit损失<1%),但3比特及以下都有两位数的损失

Qlora只是在微调过程中牺牲精度来量化微调,模型本身依然是全精度的

微调后量化使用的导出量校准数据集格式为[{"text":"abc"},...]

导出设备选择auto,cpu可能报错;大模型文件导出可能报错,需要修改最大分块大小,即单个模型文件的最大大小(GB)。

evaluate主要比的是BLEU相似度,不是准确率

截断长度对显存占用影响较大,若数据集长度固定,可以降低到max_length甚至低于max_length(抛弃长文本数据)

记录

Device : AMD 7940HX + 4060(8GB) + 64GB RAM
数据量:692240条

1epoch Qwen2.5-1.5B-Instruct 模型本身2.87GB

batch_size=1 86530item 截断长度1024 时长43h 显存3.7GB

QLoRA未启用 加速方式flashattn

batch_size=4 21632item 截断长度256 时长11.5h 显存3.9GB

QLoRA未启用 加速方式flashattn

batch_size=4 21632item 截断长度256 时长15.5h 显存2.1GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

batch_size=4 21632item 截断长度256 时长32h 显存2.7GB

QLoRA启用(8bit) 量化方法bitsandbytes 加速方式flashattn

1epoch Qwen2.5-7B-Instruct 模型本身14.1GB

batch_size=1 86530item 截断长度256 时长700h 显存14.5GB

QLoRA未启用 量化方法bitsandbytes 加速方式flashattn

batch_size=1 86530item 截断长度256 时长174h 显存6.2GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

1epoch Qwen2.5-3B-Instruct 模型本身5.74GB

batch_size=1 86530item 截断长度256 时长58h 显存6.7GB

QLoRA未启用 量化方法bitsandbytes 加速方式flashattn

batch_size=1 86530item 截断长度256 时长84h 显存2.6GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

batch_size=4 21632item 截断长度256 时长27h 显存3.1GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

batch_size=16 5409item 截断长度256 时长16h 显存5.1GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

batch_size=32 2704item 截断长度256 时长16h 显存7.1GB

QLoRA启用(4bit) 量化方法bitsandbytes 加速方式flashattn

相关推荐
巴伦是只猫4 分钟前
【机器学习笔记Ⅰ】11 多项式回归
笔记·机器学习·回归
DKPT3 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
巴伦是只猫5 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
X_StarX11 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS11 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
巴伦是只猫12 小时前
【机器学习笔记 Ⅱ】1 神经网络
笔记·神经网络·机器学习
weixin_4373982112 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
teeeeeeemo13 小时前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
致***锌16 小时前
期权标准化合约是什么?
笔记
Wilber的技术分享17 小时前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost