Python 如何使用PyTorch和#xFF1F训练具有大文本语料库(200GB)的蒙面语言模型;

Python 如何使用PyTorch和#xFF1F训练具有大文本语料库(200GB)的蒙面语言模型;,python,nlp,pytorch,bert-language-model,pytorch-dataloader,Python,Nlp,Pytorch,Bert Language Model,Pytorch Dataloader,最近,我正在使用一个大文本语料库(200GB)训练一个蒙面语言模型。训练数据太大,无法装入配备512GB内存和V100(32GB)*8的计算机。有没有可能找到一种优雅的方法来用大数据训练模型 现在我将整个训练数据分成20个部分,创建20个DataLoaders,每个DataLoader将相应的数据加载到内存中,并使用DistributedDataParallel来训练模型。代码如下 def get_数据加载器(排名、世界大小、标记器、部分数据、参数): 列车数据\ U df=获取\ U数据帧(参

最近,我正在使用一个大文本语料库(200GB)训练一个蒙面语言模型。训练数据太大,无法装入配备512GB内存和V100(32GB)*8的计算机。有没有可能找到一种优雅的方法来用大数据训练模型

现在我将整个训练数据分成20个部分,创建20个
DataLoader
s,每个DataLoader将相应的数据加载到内存中,并使用
DistributedDataParallel
来训练模型。代码如下

def get_数据加载器(排名、世界大小、标记器、部分数据、参数):
列车数据\ U df=获取\ U数据帧(参数,部分\ U数据)
train\u dataset=CustomDataset(train\u data\u df、标记器、args.max\u len)
data_collator=transformers.DataCollator用于语言建模(
标记器=标记器,mlm=真,mlm_概率=0.15
)
列车采样器=torch.utils.data.distributed.distributed采样器(
列车运行数据集,
num\u副本=世界大小,
秩=秩,
)
列车装载机=torch.utils.data.DataLoader(
数据集=列车数据集,
批次大小=args.batch大小,
shuffle=False,
工人数量=2,
pin_memory=True,
collate\u fn=数据整理器,
取样器=列车(取样器)
回程列车装载机
通过阅读PyTorch文档,我发现一个名为IterableDataset的数据加载器更适合我的任务,但是文档中有一条注释说,采样器和批处理采样器都不与iterable样式的数据集兼容,因为这样的数据集没有键或索引的概念。

所以我想知道是否可以使用
IterableDataset
DistributedSampler
DistributedDataParallel
来训练模型,或者使用其他优雅的方法来训练模型,而不是分裂数据。非常感谢