Open zoepo opened 1 year ago
你这是改了代码吧,看样子,你用了数据并行,并没有用模型并行,检查一下代码
你这是改了代码吧,看样子,你用了数据并行,并没有用模型并行,检查一下代码
应该是只动了的内容train.sh
,能请大佬指点一下具体需要检查哪一块吗?
我发布的版本,是模型并行的,但是你这个显示是数据并行。不知道你到底改了什么。建议你把修改的地方,对我说一下,我才知道怎么解决
我发布的版本,是模型并行的,但是你这个显示是数据并行。不知道你到底改了什么。建议你把修改的地方,对我说一下,我才知道怎么解决
我这边重新下载了代码,还是出现一样的问题
检查一下版本问题吧,把transformers升级到最高吧
检查一下版本问题吧,把transformers升级到最高吧
确实是transformers的问题,更新后这个问题没了,但是出现新的cuda bug,如图
看看本机能不能用模型并行,参考这个链接https://pytorch.org/tutorials/intermediate/model_parallel_tutorial.html
import torch
import torch.nn as nn
import torch.optim as optim
class ToyModel(nn.Module):
def __init__(self):
super(ToyModel, self).__init__()
self.net1 = torch.nn.Linear(10, 10).to('cuda:0')
self.relu = torch.nn.ReLU()
self.net2 = torch.nn.Linear(10, 5).to('cuda:1')
def forward(self, x):
x = self.relu(self.net1(x.to('cuda:0')))
return self.net2(x.to('cuda:1'))
model = ToyModel()
loss_fn = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.001)
optimizer.zero_grad()
outputs = model(torch.randn(20, 10))
labels = torch.randn(20, 5).to('cuda:1')
loss_fn(outputs, labels).backward()
optimizer.step()
使用的官方checkpoint及大佬的代码,数据集为广告词,官方代码相应位置已经修改,设备是单机两张T4显卡,双卡显存全部爆满,同时epoch进行不下去会卡死