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是如何做同步的?

相关推荐
c#上位机2 分钟前
halcon计算区域骨架
图像处理·人工智能·计算机视觉·c#·halcon
天一生水water7 分钟前
储层认知→技术落地→产量优化
人工智能·算法·机器学习
华清远见成都中心10 分钟前
人工智能的关键技术有哪些?
人工智能
绿蕉10 分钟前
智能底盘:汽车革命的“新基石”
大数据·人工智能
haiyu_y10 分钟前
Day 30 函数专题 1
python
GAOJ_K11 分钟前
滚珠花键的使用时长与性能保持的量化关系
大数据·人工智能·科技·自动化·制造
培根芝士14 分钟前
使用Scripting API获取CS2游戏数据
python·游戏
天一生水water14 分钟前
页岩油生产流程案例
人工智能·智慧油田
Yeliang Wu22 分钟前
算力自由:用K8s和Ollama打造你的专属AI基础设施
人工智能·容器·kubernetes
*星星之火*26 分钟前
【大白话 AI 答疑】第6篇 大模型指令微调:instruction/input/output核心解析及案例
服务器·前端·人工智能