在AutoDL上使用LLamaFactory进行模型训练 原创

发布于 2025-1-15 15:52
浏览
0收藏

前言

在众多的GPU云平台中,AutoDL是我们常用的一个。它因为显卡可快速扩展、实例运行稳定、网络连接速度快,深受大家的喜爱。不过其端口映射略微复杂,所以本篇文章,我们将介绍在AutoDL平台上进行模型训练的过程。

环境准备

1.1 创建实例

通过查看LLamaFactory的官方文档,我们可以得知,LLamaFactory的运行需要依赖以下环境:

必需依赖

最低版本

推荐版本

python

3.8

3.11

torch

1.13.1

2.4.0

transformers

4.41.2

4.43.4

datasets

2.16.0

2.20.0

accelerate

0.30.1

0.32.0

peft

0.11.1

0.12.0

trl

0.8.6

0.9.6

可选依赖

最低版本

推荐版本

CUDA

11.6

12.2

deepspeed

0.10.0

0.14.0

bitsandbytes

0.39.0

0.43.1

vllm

0.4.3

0.5.0

flash-attn

2.3.0

2.6.3

根据以上的依赖环境版本,我们在AutoDL上选择较为稳定的​​Pytorch2.3.0+Python3.12+CUDA12.1​​。

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

1.2 (可选)无卡模式运行

  • AutoDL实例创建成功之后,默认是带着显卡启动运行的,此时的费用是2元/小时。
  • 因为我们前期进行环境部署以及拉取数据,暂时不涉及训练部分,也就用不到GPU。
  • 这种情况下,我们可以将实例关闭之后以无卡模式运行。

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

注意:
当后续开启训练时,不要忘了切换回有显卡模式运行。

1.2 下载LLamaFactory

# 拉取LLamaFactory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

# 进入LLamaFactory目录
cd LLaMA-Factory

# 安装依赖
pip install -e ".[torch,metrics]"

1.3 启动LLamaFactory

llamafactory-cli webui

运行结果:

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

1.4 端口映射

因为LLamaFactory的默认访问端口为​​7860​​,所以我们需要进行端口映射才可以访问。

注意:

  • 在ModelScope中,我们是通过​​export GRADIO_SERVER_PORT=7860 GRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/​​命令设置环境变量来实现的。
  • 以上方法不可行在AutoDL中不可行。

AutoDL官方提供方法是使用SSH隧道来实现。
具体方法:

1.点击自定义服务

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

2.在弹出的页面中提示中,选择对应操作系统的方法。

1.4.1 Mac用户

Mac用户下使用此方法:

1.复制ssh命令

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

2.在MAC的terminal命令行下执行如下命令

ssh -CNg -L 7860:127.0.0.1:7860 root@connect.nmb1.seetacloud.com -p 16035

执行结果:

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

注意:

  1. 因为LLamaFactory的默认访问端口为​​7860​​,所以我们根据需要修改上面的命令行中的端口为​​7860​​。
  2. 运行ssh命令行后,系统会提示是否继续,输入​​yes​​继续。

3. 复制密码

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

4. 输入密码
在命令行粘贴上一步的代码后回车,回车之后如果没有提示连接中断,始终闪烁光标,那么代表端口监听正常。

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

如果提示​​Permission denied, please try again.​​,代表密码输入错误,请重试。

5. 浏览器访问llamafactory
在上一步,我们通过SSH与服务器成功建立了隧道连接,接下来,我们就可以在浏览器中输入如下地址访问。

http://localhost:7860/

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

注意:
请保持命令行全程后台运行,不要关闭,否则链接会中断。

1.4.2 Windows用户

Windows用户与服务器建立隧道连接的方法不同,需要按照官网提示下载程序。

1.下载AutoDL-SSH-Tools

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

2.解压.zip文件后,双击运行​​AutoDL.exe​在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

3.复制SSH和密码,填入工具相应位置

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

4.启动代理

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

5.浏览器中输入​​http://localhost:7860/​​后,访问llamafactory

在AutoDL上使用LLamaFactory进行模型训练-AI.x社区

模型训练

1. 数据准备

此处复用【课程总结】day24(上):大模型三阶段训练方法(LLaMa Factory)中的数据。

1.1 下载数据

git clone https://www.modelscope.cn/datasets/xiaofengalg/Chinese-medical-dialogue.git

1.2 注册自定义数据

在LLamaFactory的​​dataset_info.json​​中添加如下数据集:

"custom_sft_train_data":{
"file_name":"/root/Chinese-medical-dialogue/data/data/train_0001_of_0001.json",
"columns":{
    "prompt":"instruction",
    "query":"input",
    "response":"output"
    }
},

注意:
以上file_name是数据集的绝对路径,需要根据实际情况修改。

2. 模型准备

git clone https://www.modelscope.cn/qwen/Qwen2-0.5B.git

3. 模型训练

后续内容与​​【大模型三阶段训练方法(LLaMa Factory)】​​一致,此处不再赘述。

总结

  • 在AutoDL上使用LLamaFactory进行模型训练,需要进行端口映射,具体方法为使用SSH隧道。
  • 建立SSH隧道在Mac和Windows下不同,Mac直接使用命令行运行ssh命令,Window下需要下载客户端程序运行。
  • 运行SSH命令时,需要根据需要设置相应映射的端口。

本文转载自公众号一起AI技术 作者:热情的Dongming

原文链接:​​https://mp.weixin.qq.com/s/N4qG9mazswyzUWRHuSpjUA​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐