7 使用xtuner微调开源大模型课程回顾 #14

Open
opened 2024-10-20 21:44:26 +08:00 by 12390900721cs · 0 comments

这里想完整的写一遍用xtuner微调大模型的完整流程。

环境准备

每次在平台中打开新的终端都要进行网络代理设置、huggingface下载目录设置和huggingface下载访问的镜像。

export http_proxy=http://10.10.9.50:3000
export https_proxy=http://10.10.9.50:3000
export no_proxy=localhost,127.0.0.1

export HF_HOME=/code/huggingface-cache

export HF_ENDPOINT=https://hf-mirror.com

模型和数据集下载

#模型下载:
huggingface-cli download YOUR_MODEL --revision main --local-dir-use-symlinks False --local-dir /code/YOUR_MODEL_DIR

#数据集下载:
huggingface-cli download YOUR_DATASET --repo-type dataset --revision main --local-dir-use-symlinks False --local-dir /code/YOUR_DATASET_DIR

这里的YOUR_MODEL\YOUR_DATASET都可以在huggingface官网或镜像网站上找到相应名称,改写后并选择好目录并可下载。

查找配置文件

完成了数据集和模型的下载后,需要根据你的模型来选择合适的配置文件来进行微调。而xtuner则包含了大多数市面上常用模型的配置文件来方便我们的操作。这里介绍两个常用的:

  1. xtuner list-cfg -p YOUR_MODEL

该命令可以根据你的模型名称在xtuner的预下载文件中查找你想要的配置文件。

  1. xtuner copy-cfg YOUR_FILE YOUR_PATH

该命令可以将你想要使用的xtuner中预下载过的配置文件拷贝到你想要的目录中。

修改配置文件

配置文件中需要注意的参数如下:

** 注意:平台暂时不支持量化训练需要将相关参数注释掉不启用,这里是典型的错误案例:xtuner课程复现遇到的问题

启动微调

  1. 单机单卡训练:
xtuner train /code/配置文件
  1. 单机多卡训练
NPROC_PER_NODE=4 xtuner train /code/配置文件 --deepspeed deepspeed_zero3
  1. 多机多卡训练
#平台上使用多机多卡训练时需要先使用IB网络:
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=0
export NCCL_IB_HCA==mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1
export NCCL_SOCKET_IFNAME=eth0
export GLOO_SOCKET_IFNAME=eth0
export HF_HOME=/code/huggingface-cache/

#分布式训练代码:
#我这里用我完成课后作业时的代码举例子:
NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=0 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3

NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=1 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3

NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=2 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3

NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=3 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3

这里想完整的写一遍用xtuner微调大模型的完整流程。 ## 环境准备 每次在平台中打开新的终端都要进行网络代理设置、huggingface下载目录设置和huggingface下载访问的镜像。 ```plain export http_proxy=http://10.10.9.50:3000 export https_proxy=http://10.10.9.50:3000 export no_proxy=localhost,127.0.0.1 export HF_HOME=/code/huggingface-cache export HF_ENDPOINT=https://hf-mirror.com ``` ## 模型和数据集下载 ```plain #模型下载: huggingface-cli download YOUR_MODEL --revision main --local-dir-use-symlinks False --local-dir /code/YOUR_MODEL_DIR #数据集下载: huggingface-cli download YOUR_DATASET --repo-type dataset --revision main --local-dir-use-symlinks False --local-dir /code/YOUR_DATASET_DIR ``` 这里的YOUR_MODEL\YOUR_DATASET都可以在huggingface官网或镜像网站上找到相应名称,改写后并选择好目录并可下载。 ## 查找配置文件 完成了数据集和模型的下载后,需要根据你的模型来选择合适的配置文件来进行微调。而xtuner则包含了大多数市面上常用模型的配置文件来方便我们的操作。这里介绍两个常用的: 1. xtuner list-cfg -p YOUR_MODEL 该命令可以根据你的模型名称在xtuner的预下载文件中查找你想要的配置文件。 2. xtuner copy-cfg YOUR_FILE YOUR_PATH 该命令可以将你想要使用的xtuner中预下载过的配置文件拷贝到你想要的目录中。 ## 修改配置文件 配置文件中需要注意的参数如下: ![](https://cdn.nlark.com/yuque/0/2024/png/48516026/1727430617223-79083c6e-1d96-4e9a-89b4-a108872426f8.png) ** 注意:<font style="color:#333333;">平台暂时不支持量化训练需要将相关参数注释掉不启用,这里是典型的错误案例:</font>[<font style="color:#333333;">xtuner课程复现遇到的问题</font>](https://hsw-git.huishiwei.cn/HswOAuth/llm_course/issues/131) <font style="color:#333333;"></font> ## <font style="color:#333333;">启动微调</font> 1. 单机单卡训练: ```plain xtuner train /code/配置文件 ``` 2. 单机多卡训练 ```plain NPROC_PER_NODE=4 xtuner train /code/配置文件 --deepspeed deepspeed_zero3 ``` 3. 多机多卡训练 ```plain #平台上使用多机多卡训练时需要先使用IB网络: export NCCL_DEBUG=INFO export NCCL_IB_DISABLE=0 export NCCL_IB_HCA==mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1 export NCCL_SOCKET_IFNAME=eth0 export GLOO_SOCKET_IFNAME=eth0 export HF_HOME=/code/huggingface-cache/ #分布式训练代码: #我这里用我完成课后作业时的代码举例子: NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=0 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3 NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=1 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3 NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=2 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3 NNODES=4 NPROC_PER_NODE=4 PORT=12345 ADDR=10.244.34.119 NODE_RANK=3 xtuner train /code/yi_6b_qlora_alpaca_enzh_e3_copy.py --work-dir /userhome/xtuner-workdir --deepspeed deepspeed_zero3 ``` ![](https://cdn.nlark.com/yuque/0/2024/png/48516026/1727430944268-754b39be-d6eb-4c4b-ab34-a71a1403a4e8.png)
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_share#14
No description provided.