让AI知识触手可及

首页 » 【模型训练】在AutoDL上使用LLamaFactory进行模型训练
内容目录

前言

在众多的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

1.2 (可选)无卡模式运行

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

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

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

运行结果:

1.4 端口映射

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

注意:

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

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

  1. 点击自定义服务

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

1.4.1 Mac用户

Mac用户下使用此方法:

  1. 复制ssh命令

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

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

执行结果:

注意:

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

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

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

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

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

1.4.2 Windows用户

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

  1. 下载AutoDL-SSH-Tools

  2. 解压.zip文件后,双击运行AutoDL.exe

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

  4. 启动代理

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

模型训练

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. 模型训练

后续内容与【课程总结】day24(上):大模型三阶段训练方法(LLaMa Factory)一致,此处不再赘述。

总结

  • 在AutoDL上使用LLamaFactory进行模型训练,需要进行端口映射,具体方法为使用SSH隧道。
  • 建立SSH隧道在Mac和Windows下不同,Mac直接使用命令行运行ssh命令,Window下需要下载客户端程序运行。
  • 运行SSH命令时,需要根据需要设置相应映射的端口。
声明:一起AI技术所有文章,如无特殊说明或标注,均为本站作者原创发布。任何个人或组织,在未征得作者同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
原创不易,内容版权受保护,感谢您的尊重与支持。
5 1 投票
Article Rating
订阅评论
提醒
guest的头像
1 评论
内联反馈
查看所有评论
1610的头像
10 天 前

对算力云用户有帮助,感谢

Picture of Dongming
Dongming
见天地,见众生,见自己。

分类文章

推荐活动

推荐文章

大模型时代需要什么样的安全水位?火山方舟首度公开「会话无痕」技术细节
刚刚,OpenAI安全副总裁、北大校友Lilian Weng宣布离职,有时间写博客了
这个夏天,天气版「山东卷」考验电网,达摩院气象大模型成功通关
豆包大模型团队开源RLHF框架,训练吞吐量最高提升20倍
百川智能发布一站式解决方案,助力企业“多、快、好、省”落地大模型
【项目实战】深度学习:二手车价格预测(含深度学习考试参考资料)
【模型部署】在AutoDL上使用Xinference部署模型
DeepSeek新作Janus:解耦视觉编码,引领多模态理解与生成统一新范式
【产品体验】使用dify部署微信群聊天机器人
【模型部署】在趋动云上使用xinference部署模型
1
0
希望看到您的想法,请您发表评论x
滚动至顶部