logo
8
0
WeChat Login

Newbie Lora Trainer

借用隔壁的 NetaLumina 镜像搞的,懒得配环境了。

注意,本仓库想要玩得6,需要你会多一点git及其他命令的小知识,建议完整阅读完该文章

官方教程

https://www.notion.so/Newbie-AI-lora-2b84f7496d81803db524f5fc4a9c94b9

目前已验证可用,跟着步骤,下载模型,准备好数据集训练配置可以直接开炉

还要看本丹炉的使用方法

示例 toml 配置模板

  • /workspace/NewbieLoraTrainer/lokr.toml
  • /workspace/NewbieLoraTrainer/lora.toml

具体的配置说明可查看/workspace/NewbieLoraTrainer/config_template.toml

自己想练lora还是lokr,复制上面的其中一个,随便找个地方放,然后修改里面的内容,然后用它来训练

目录说明

# https://github.com/NewBieAI-Lab/NewbieLoraTrainer
/workspace/NewbieLoraTrainer # 官方训练器

# https://huggingface.co/NewBie-AI/NewBie-image-Exp0.1/tree/main
/workspace/Models # 模型目录

/workspace/Datasets # 数据集目录(可以自己随便找地放,配置写对了就行)

跟以往练 Lora 逻辑大差不差

开炉方法

显卡控制

修改.cnb.yml,从里面找到# tags: cnb:arch:amd64:gpu:L40那一行,把这行取消注释就启用显卡了,注意额度消耗,不用GPU记得把注释给上,使用CPU处理一些无关紧要的事,例如下模型

训练步骤

  1. Fork本仓库,点那个绿色的Fork按钮,这样会变成自己的仓库,就可以运行了
  2. 准备训练集
  3. 使用/workspace/dl-model.ipynb下载模型
  4. /workspace/NewbieLoraTrainer里找到并复制一个toml并按自己需求修改好,toml在上边 "示例-toml-配置模板" 有说明
  5. 修改run.sh,把原有的toml配置路径改成你的toml配置路径
  6. 运行prepare-venv.sh安装依赖(每次开炉都要)
  7. 运行run.sh

产物说明

  • pt文件是用来续训用的
  • safetensors文件才是你最终的Lora

续训方法

将pt文件留在原来你设的Output文件夹,就可以直接重启了

其他提示

  • 下载完模型之后,可以用git提交然后推送,下次开炉的时候就不用再下载模型了
  • 关于train_newbie_lora_xcn.py,我直接加上了续训时可重置学习率调度器的功能(有bug)
    • 续训练时是否重置学习率调度器,设置true时,续训的时候直接使用learning_rate的值作为续训初始值
    • 开一次就重置了,练过一个ep后(产生新的续训pt文件),往后的训练都使用新的lr调度,所以不可逆
    • 而且不能一直true,只需要true练一个ep就必须关掉,否则就一直重置
# lora.toml 或 lokr.toml

# =============================================================================
# NewbieLoraTrainer/train_newbie_lora_xcn.py 专用参数 
# =============================================================================

# 续训练时是否重置学习率调度器,设置true时,续训的时候直接使用learning_rate的值作为续训初始值
# 开一次就重置了,练过一个ep后(产生新的续训pt文件),往后的训练都使用新的lr调度,所以不可逆
# 而且不能一直true,只需要true练一个ep就必须关掉,否则就一直重置
reset_lr_scheduler = false

# =============================================================================

其他脚本

根据脚本内变量配置,自动关机,保护你的白嫖余额

python /workspace/autoshutdown.py

根据脚本内变量配置,自动 清理 并 git push,保护你的训练进度

python /workspace/autopush-newbie.py

更新了newbie版的自动清理和自动推送,自动只保留最新步数的,如果需要全部保留可以丢给豆包改改

finishpush.py

根据cnb配置,销毁时将自动执行最后的push,但是建议开启自动同步脚本,防止endstage执行失败

About

Newbie-Lora-Trainer-Public

Language
Python35.3%
Shell0%
Others64.7%