基于deepseed训练框架相关问题

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

1. 多机多卡跑不起来,多机间不能通信,报错如下

Call to connect returned Connection refused, retrying

解决方案:
deepspeed环境依赖问题,重新装pytorch依赖;

conda install pytorch==1.12.0 \
torchvision==0.13.0 \
torchaudio==0.12.0 \
cudatoolkit=11.3 -c pytorch

2. 使用官方ChatGLM-6B 代码训练的时候 loss不降不明显

解决方案:
通过换为ChatGLM-Finetuning的训练框架,loss下降平稳

git clone https://github.com/liucongg/ChatGLM-Finetuning.git

3. ChatGLM-Finetuning官方代码采样器的时候用的是随机采样,导致8卡单机只能跑6卡

解决方案:
改源码,调整成支持对训练数据分布式采样

# 改成分布式采样
# DataLoaders creation:
if args.local_rank == -1:
    train_sampler = RandomSampler(train_dataset)
else:
    train_sampler = DistributedSampler(train_dataset)

train_dataloader = DataLoader(train_dataset,
                              batch_size=conf["train_micro_batch_size_per_gpu"],
                              sampler=train_sampler,
                              collate_fn=coll_fn,
                              drop_last=True,
                              num_workers=0)      

4. 将代码改成支持分布式采样之后,分布式跑10万级训练数据没问题,扩大到100万级训练数据之后依旧只能跑6卡的问题

问题原因:
在训练100万级训练数据时,向量化数据需要4个小时左右,向量化后的数据占用内存在140G左右,默认情况下分布式训练每个进程都需要加载完整数据集,在当前单机8卡机器内存总共只有1T的情况下,最多只能使用6卡,有1/4的资源空闲。

解决方案:
改源码,重写dataset逻辑为:

  1. 均分完整数据集到所有进程;
  2. 训练时每个进程同一时间只加载单个分段大小(batch_size)数据集;
  3. token转向量后的内存数据dump到文件,重新训练的时候加载向量化后的数据。
  4. 模型训练过程中,训练数据质量比较关键,扩充训练样本的特征提示,可以提升模型训练效果。
  5. 多机训练时,每台机器的训练代码和环境务必一致。

您可能感兴趣的与本文相关的镜像

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen
文本生成
Qwen3

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

erainm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值