已解决
Pytorch ddp切换forward函数 验证ddp是否生效
来自网友在路上 167867提问 提问时间:2023-10-22 00:01:43阅读次数: 67
最佳答案 问答题库678位专家为你答疑解惑
DDP及其在pytorch中应用
ddp默认调用forward函数,有些模型无法使用forward函数,可以对模型包装一下。
class modelWraper(nn.Module):def __init__(self, model):super().__init__()self.model = modeldef forward(self, *args, **kwargs):return self.model.rlhf(*args, **kwargs)
有时ddp跑起来,不确定是否生效,loss backward后不同rank进程的梯度应该一样的,可以通过print 梯度确认。
loss.backward()
grad_flag = raw_model.lm_head.weight.grad[0,:3]
print(f"grad {ddp_rank} {grad_flag}")grad 1 tensor([2.9296e-04, 6.2223e-05, 1.0089e-03], device='cuda:1')
grad 0 tensor([2.9296e-04, 6.2223e-05, 1.0089e-03], device='cuda:0')
pytorch分布式系列2——DistributedDataParallel是如何做同步的?
查看全文
99%的人还看了
相似问题
- PyTorch多GPU训练时同步梯度是mean还是sum?
- 梯度引导的分子生成扩散模型- GaUDI 评测
- 【机器学习】038_梯度消失、梯度爆炸
- 斯坦福机器学习 Lecture2 (假设函数、参数、样本等等术语,还有批量梯度下降法、随机梯度下降法 SGD 以及它们的相关推导,还有正态方程)
- 吴恩达《机器学习》6-4->6-7:代价函数、简化代价函数与梯度下降、高级优化、多元分类:一对多
- 深入理解强化学习——多臂赌博机:梯度赌博机算法的基础知识
- 利用梯度上升可视化卷积核:基于torch实现
- Pytorch里面参数更新前为什么要梯度手动置为0?
- LSTM缓解梯度消失问题
- 前馈神经网络自动梯度计算和预定义算子
猜你感兴趣
版权申明
本文"Pytorch ddp切换forward函数 验证ddp是否生效":http://eshow365.cn/6-21131-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: AI全栈大模型工程师(九)Function Calling 的机制
- 下一篇: 交换机基础(一)