Pytorch ddp切换forward函数 验证ddp是否生效

DDP及其在pytorch中应用

ddp默认调用forward函数,有些模型无法使用forward函数,可以对模型包装一下。

python 复制代码
class modelWraper(nn.Module):
    def __init__(self, model):
        super().__init__()
        self.model = model

    def forward(self, *args, **kwargs):
        return self.model.rlhf(*args, **kwargs)

有时ddp跑起来,不确定是否生效,loss backward后不同rank进程的梯度应该一样的,可以通过print 梯度确认。

python 复制代码
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是如何做同步的?

相关推荐
linghuocaishui4 分钟前
京东用工平台实践:亲测案例复盘分享
人工智能·python
da_vinci_x6 分钟前
【2D场景】16:9秒变21:9?PS “液态缩放” + AI 补全,零成本适配全面屏
前端·人工智能·游戏·aigc·设计师·贴图·游戏美术
你怎么知道我是队长10 分钟前
python---新年烟花
开发语言·python·pygame
算法狗212 分钟前
大模型面试题:大模型FFN中用SwiGLU为啥设置FFN的映射为8/3*d呢?
人工智能
智算菩萨14 分钟前
【Python机器学习】主成分分析(PCA):高维数据的“瘦身术“
开发语言·python·机器学习
humors22142 分钟前
四步生成喜欢的图片
人工智能·ai·图片·背景·祝福·头像
_codemonster1 小时前
BERT和Transformer的双向性理解
人工智能·bert·transformer
十铭忘1 小时前
SAM2跟踪的理解19——位置编码
人工智能·深度学习·计算机视觉
张二娃同学1 小时前
深度学习入门篇——Github的使用和项目的导入
人工智能·git·深度学习·开源·github
一个处女座的程序猿O(∩_∩)O1 小时前
transformer模型:彻底改变AI格局的革命性架构
人工智能·深度学习·transformer