使用xtuner微调开源大模型作业(基础版) #119
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#119
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
准备notebook
根据自己训练所需的机器数量准备相应数量的notebook。这里我准备的是4机16卡的训练。
准备微调配置文件
使用命令"xtuner copy-cfg yi_6b_qlora_alpaca_enzh_e3 /code"即可将训练配置文件拷贝到本地的/code路径下。
环境准备
# 在平台上设置网络代理才能连接到互联网
# 设置huggingface的cache目录在共享目录下
# 设置huggingface访问站点为国内镜像站点
准备模型
由于打算训练的是 yi_6b_qlora_alpaca_enzh_e3,所以准备相关的模型以及数据。这里我准备的是01-ai/Yi-6B的模型。
准备数据
由于 yi_6b_qlora_alpaca_enzh_e3 里有两个数据集路径,所以需要准备两个数据集。
这里我准备的是notebook里/dataset/datasets底下的两个数据集:silk-road___alpaca-data-gpt4-chinese 与 tatsu-lab___alpaca;可以通过代码来查找是否有这两个数据集
如果没有的话也可以从huggingface上下载,这里是下载需要的代码:
当然,你也可以替换成自己想要的数据。
修改配置文件
由于yi_6b_qlora_alpaca_enzh_e3是xtuner的内置文件,配置基本写好了,所以只需要修改自己关心的训练参数及重要参数就可以了。
修改路径
pretrained_model_name_or_path 代表模型路径,将模型路径修改成刚刚下载到平台code目录下的01-ai/Yi-6B模型的路径。
alpaca_zh_path 与 alpaca_en_path 都代表数据集路径,将数据集路径也修改成本地路径即可。
接下来可以关注其他重要参数,根据自己的需求来更改或保留原本的参数。其他重要参数参考:
启动微调
多机多卡训练
设置IB网络
由于我打算使用4台机器,所以我需要在4台机器上都进行IB网络设置:
选择Master节点
用 ifconfig 命令来查看机器的通信地址,选择一台作为主节点
分布式训练
在第一台机器上输入:
在第二台机器上输入:
在第三台机器上输入
在第四台机器上输入:
看到有训练的step日志出现,表示训练已经开始:
看论坛在结合上课内容,容易理解
yi_6b_qlora_alpaca_enzh_e3_copy.py 这个可以从哪里下载吗,我的CODE 目录下没有。
还有,微调配置文件,老师好像没进行操作,啥时需要自己进行配置?
在这个文档中准备微调配置文件那里有一行代码:xtuner copy-cfg yi_6b_qlora_alpaca_enzh_e3 /code
这个代码表示在xtuner自带的配置文件里copy这个yi_6b_qlora_alpaca_enzh_e3文件到/code目录下。
运行完这行代码后,你可以通过ls /code来查看是否存在yi_6b_qlora_alpaca_enzh_e3_copy.py这个文件。
这里有xtuner常见命令可以参考一下:
xtuner list-cfg : 列出内置模型微调配置文件
xtuner copy-cfg:复制内置模型微调配置文件
xtuner train :训练
xtuner convert : 模型转换
👍