LLaMA-Factory多机多卡训练实战

server/2025/3/18 6:52:08/

https://www.dong-blog.fun/post/1999

参考资料:https://llamafactory.readthedocs.io/zh-cn/latest/advanced/distributed.html

以训练qwen2.5vl 7b 为例子。

创建空间

创建数据集

如果数据集文件非常多,可以选择上tar.gz包,然后再数据集页面面,点击终端进入到/mnt/data目录。执行 tar-zxfxxx.tar.gz 命令解压,请解压到当前目录(/mnt/data目录是挂载盘目录)

上传模型

制作一个训练镜像

启动镜像,进入容器中设置数据集和平台匹配。

docker run -it --rm --gpus  '"device=1,2,3"' --shm-size 16G kevinchina/deeplearning:llamafactory20250311-3 bash
如果镜像用的是ubuntu
要执行一下命令,安装libibverbs1才能使用rdma网卡,加速训练
sudo apt-get update
sudo apt-get install libibverbs1 -y

这个镜像里已经安装:

root@260e21033aae:/app# apt-get install libibverbs1 -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libibverbs1 is already the newest version (39.0-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

在data里增加训练json数据集,/app/examples/train_lora中增加训练yaml文件。

docker commit 这个容器,将此镜像传到hub。

创建任务

为了多机多卡,需要在每台机器启动这个:

FORCE_TORCHRUN=1 NNODES=2 NODE_RANK=0 MASTER_ADDR=192.168.0.1 MASTER_PORT=29500 llamafactory-cli train examples/train_lora/qwen2vl_lora_sft_zizhi.yamlFORCE_TORCHRUN=1 NNODES=2 NODE_RANK=1 MASTER_ADDR=192.168.0.1 MASTER_PORT=29500 llamafactory-cli train examples/train_lora/qwen2vl_lora_sft_zizhi.yaml

训练指令写为下面这样,那三个变量由环境自动指定:

FORCE_TORCHRUN=1 \
NNODES=2 \
NODE_RANK=${RANK} \
MASTER_ADDR=${MASTER_ADDR} \
MASTER_PORT=${MASTER_PORT} \
llamafactory-cli train examples/train_lora/qwen2vl_lora_sft_zizhi.yaml

此外,为了为rDMA,需要设置这三个环境变量:

CUDA_DEVICE_MAX_CONNECTIONS=1
NCCL_DEBUG=INFO
NCCL_IB_DISABLE=0

http://www.ppmy.cn/server/175892.html

相关文章

VLLM专题(二十)—多模态输入

本页面将教你如何在 vLLM 中向多模态模型传递多模态输入。 离线推理 要输入多模态数据,请按照以下 vllm.inputs.PromptType 中的格式: prompt: 提示词(prompt)应遵循 HuggingFace 文档中记录的格式。multi_modal_data: 这是一个字典,遵循 vllm.multimodal.inputs.MultiM…

Linux下学【MySQL】中如何实现:多表查询(配sql+实操图+案例巩固 通俗易懂版~)

每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 本章是MySQL篇中,非常实用性的篇章,相信在实际工作中对于表的查询,很多时候会涉及多表的查询,在多表查询…

蓝桥杯基础【暴力枚举】

暴力枚举的思路 暴力枚举(也称为穷举法)是一种通过遍历所有可能的情况来解决问题的方法。它的核心思想是:不遗漏任何一种可能性,直到找到满足条件的解。暴力枚举通常适用于数据规模较小的题目,因为它的效率相对较低&a…

美团Leaf分布式ID生成器:使用详解与核心原理解析

引言 在分布式系统中,全局唯一ID是贯穿整个业务链路的关键标识,无论是订单号、用户ID、支付流水号,还是日志追踪,都需要唯一且有序的ID来保证数据的一致性。然而,传统的自增ID方案(如数据库自增主键&#…

JavaScript基础-JS没有块级作用域

在早期版本的JavaScript(ECMAScript 5及之前),变量的作用域主要分为全局作用域和函数作用域,这意味着即使在代码块如if语句或循环体内声明的变量,在其外部也是可访问的。然而,随着ECMAScript 6 (ES6) 的发布…

网络安全一CTF入门

什么是CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。它起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式&#xff0…

【区块链+乡村振兴】国链区块链农产品溯源系统 | FISCO BCOS 应用案例

国链区块链农产品溯源系统通过集中管理和调度计算资源,结合区块链技术,为企业提供高效、安全、可靠的农产品全链条溯源服务。 系统的技术架构包括分布式架构、区块链平台、数据存储、前端应用和物联网设备等。其分布式架构采用多节点部署,提…

哔哩哔哩的历史

本文来自腾讯元宝 以下是哔哩哔哩(Bilibili,简称B站)发展历程的梳理,结合其关键节点与战略转型: 一、初创期(2009-2011):二次元文化的“避风港”​ ​起源与更名 2009年6月26日&…