08-基于LLaMA-Factory的模型微调训练 #159

Closed
opened 2024-10-08 13:28:03 +08:00 by 12535224197cs · 0 comments

https://www.yuque.com/hkutangyu/di80sc/oy84gbs16y1ubzdd

step1: AutoDL租用显卡

https://www.autodl.com/console/instance/list?random=1727683224641
1. 选择RTX4090D,选择基础镜像PyTorch/2.1.2/3.10(ubuntu22.04)/11.8
x.png
2. 打开JupyterLab
x.png
x.png

step2: 安装LLaMA-Factor环境

#源码下载
cd ~/ && wget https://file.huishiwei.top/LLaMA-Factory.tar.gz
tar -xvf LLaMA-Factory.tar.gz
#创建虚拟环境(如果已创建,请忽略此步骤)
conda create -n llama_factory -y python=3.11 pip
#激活虚拟环境
conda activate llama_factory
#使用pip安装依赖
cd ~/LLaMA-Factory
pip install -e ".[torch,metrics]"
pip install modelscope -U

x.png
验证安装是否成功:llamafactory-cli version
x.png

step3: 启动web界面

export USE_MODELSCOPE_HUB=1 # 使用modelscope下载模型
export NCCL_P2P_DISABLE="1"
export NCCL_IB_DISABLE="1"
export MODELSCOPE_CACHE='/root/autodl-tmp/modelscope/'
export MODELSCOPE_MODULES_CACHE='/root/autodl-tmp/modelscope/modelscope_modules'
llamafactory-cli webui ##在LLaMA-Factory目录下运行,后续加载数据集是相对于LLaMA-Factory的路径

x.png

step4: 设置隧道

  1. 在AutoDL查看端口号和密码
    x.png
  2. 设置隧道
    ssh -CNgv -L 7860:127.0.0.1:7860 root@connect.cqa1.seetacloud.com -p 25329

step5: 测试基座模型

1. 打开http://localhost:7860 界面
2. 选择模型GLM-4-9B-Chat
3. 加载模型(花了15分钟时间下载模型)
4. 测试对话

step6: 微调训练

  1. 新建数据文件my_demo.json:在LLaMAFactory/data目录下创建my_demo.json文件
  2. 更新LLaMA-Factory/data/dataset_info.json文件
  3. 加载数据集开始微调训练

step7: 测试微调效果

  1. 选择检查点
  2. 对话测试

step8: 4bit微调训练

  1. 下载微调需要的包
  2. 在高级设置选择量化等级:选择4bit
  3. 加载数据集开始微调训练

step9: 测试4bit微调效果

  1. 选择检查点
  2. 对话测试

step10: 使用仿OpenAI接口启动微调模型

  1. 启动服务
    llamafactory-cli api --model_name_or_path /root/autodl-tmp/modelscope/hub/ZhipuAI/glm-4-9b-chat --template glm4 --adapter_name_or_path saves/GLM-4-9B-Chat/lora/train_2024-10-08-11-21-36 --finetuning_type lora
  2. 设置隧道
    ssh -CNgv -L 8000:127.0.0.1:8000 root@connect.cqa1.seetacloud.com -p 25329
  3. NextChat设置
    x.png
  4. 使用NextChat对话测试
    x.png
https://www.yuque.com/hkutangyu/di80sc/oy84gbs16y1ubzdd ### step1: AutoDL租用显卡 https://www.autodl.com/console/instance/list?_random_=1727683224641 `1. 选择RTX4090D,选择基础镜像PyTorch/2.1.2/3.10(ubuntu22.04)/11.8` ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727697839166-ee291c16-3ce6-4b2f-93c6-9f4aab44d13c.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) `2. 打开JupyterLab` ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727697974547-5a2a1e90-71e0-47b1-9a34-f4a4eadcd99d.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727698039183-2e02031a-ff0c-4a18-8802-3f2878f9c5d9.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) ### step2: 安装LLaMA-Factor环境 ``` #源码下载 cd ~/ && wget https://file.huishiwei.top/LLaMA-Factory.tar.gz tar -xvf LLaMA-Factory.tar.gz #创建虚拟环境(如果已创建,请忽略此步骤) conda create -n llama_factory -y python=3.11 pip #激活虚拟环境 conda activate llama_factory #使用pip安装依赖 cd ~/LLaMA-Factory pip install -e ".[torch,metrics]" pip install modelscope -U ``` ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727698309983-1570f31b-7301-45b2-82f2-19facca4fda5.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) `验证安装是否成功:llamafactory-cli version` ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727698502560-91be384c-a641-4958-b95d-f601380894c4.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) ### step3: 启动web界面 ``` export USE_MODELSCOPE_HUB=1 # 使用modelscope下载模型 export NCCL_P2P_DISABLE="1" export NCCL_IB_DISABLE="1" export MODELSCOPE_CACHE='/root/autodl-tmp/modelscope/' export MODELSCOPE_MODULES_CACHE='/root/autodl-tmp/modelscope/modelscope_modules' llamafactory-cli webui ##在LLaMA-Factory目录下运行,后续加载数据集是相对于LLaMA-Factory的路径 ``` ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727698328367-7f619633-5ce0-485f-96be-6508932a8e5e.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) ### step4: 设置隧道 1. 在AutoDL查看端口号和密码 ![x.png](https://cdn.nlark.com/yuque/0/2024/jpeg/44993204/1727699240779-f17258a5-606d-4c9f-951b-cac9054c3026.jpeg?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0%2Finterlace%2C1) 2. 设置隧道 `ssh -CNgv -L 7860:127.0.0.1:7860 root@connect.cqa1.seetacloud.com -p 25329` ### step5: 测试基座模型 ``` 1. 打开http://localhost:7860 界面 2. 选择模型GLM-4-9B-Chat 3. 加载模型(花了15分钟时间下载模型) 4. 测试对话 ``` <video src="/attachments/bcc86083-74f3-4fa4-a8d8-067adf32b525" title="1-对话测试.mov" controls></video> ### step6: 微调训练 1. 新建数据文件my_demo.json:在LLaMAFactory/data目录下创建my_demo.json文件 2. 更新LLaMA-Factory/data/dataset_info.json文件 3. 加载数据集开始微调训练 <video src="/attachments/8afe058b-143a-43de-87e5-1adf3c32cbfe" title="2-微调.mov" controls></video> ### step7: 测试微调效果 1. 选择检查点 2. 对话测试 ### step8: 4bit微调训练 1. 下载微调需要的包 2. 在高级设置选择量化等级:选择4bit 3. 加载数据集开始微调训练 ### step9: 测试4bit微调效果 1. 选择检查点 2. 对话测试 ### step10: 使用仿OpenAI接口启动微调模型 1. 启动服务 `llamafactory-cli api --model_name_or_path /root/autodl-tmp/modelscope/hub/ZhipuAI/glm-4-9b-chat --template glm4 --adapter_name_or_path saves/GLM-4-9B-Chat/lora/train_2024-10-08-11-21-36 --finetuning_type lora` 2. 设置隧道 `ssh -CNgv -L 8000:127.0.0.1:8000 root@connect.cqa1.seetacloud.com -p 25329` 3. NextChat设置 ![x.png](https://cdn.nlark.com/yuque/0/2024/png/44993204/1728359219404-8bdc8129-028c-4d62-9155-f12c5de9d098.png?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0) 4. 使用NextChat对话测试 ![x.png](https://cdn.nlark.com/yuque/0/2024/png/44993204/1728359234789-e784917f-afbb-41b6-9eb2-b46ba059c609.png?x-oss-process=image%2Fresize%2Cw_1500%2Climit_0)
Sign in to join this conversation.
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_course#159
No description provided.