让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的头像
1 月 前

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

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

分类文章

推荐活动

推荐文章

【产品体验】DeepSeek的三种接入使用方法
清华翟季冬:DeepSeek 百倍算力效能背后的系统革命 | 智者访谈
为什么说DeepSeek的R1-Zero比R1更值得关注?
Video Depth Anything来了!字节开源首款10分钟级长视频深度估计模型,性能SOTA
年末惊喜!ByteDance Research视频理解大模型「眼镜猴」正式发布
Meta陷入恐慌?内部爆料:在疯狂分析复制DeepSeek,高预算难以解释
阿里云通义大模型新技术:MoE模型训练专家平衡的关键细节
港投公司与「港产独角兽」思谋科技今签定战略合作协议
英矽智能在Nature 子刊发表最新研究,利用量子-经典混合模型设计新型KRAS抑制剂
AI赋能蛋白质研究:SaprotHub让蛋白质AI模型训练和调用不再有门槛!
1
0
希望看到您的想法,请您发表评论x
滚动至顶部