遵循LM教程时出现内存问题

问题描述

规格: 作业系统:Windows 10 CUDA:10.1 GPU:RTX 2060 6G VRAM(x2) 内存:32GB 教程:https://huggingface.co/blog/how-to-train

您好,我正在尝试训练自己的语言模型,但是遇到了一些内存问题。我试图在计算机上的Pycharm中运行某些代码,然后尝试在Collab Pro Notebook中进行复制。

首先,我的代码

from transformers import RobertaConfig,RobertaTokenizerFast,RobertaForMaskedLM,LineByLineTextDataset
from transformers import DataCollatorForLanguageModeling,Trainer,TrainingArguments

config = RobertaConfig(vocab_size=60000,max_position_embeddings=514,num_attention_heads=12,num_hidden_layers=6,type_vocab_size=1)

tokenizer = RobertaTokenizerFast.from_pretrained("./MODEL DIRECTORY",max_len=512)

model = RobertaForMaskedLM(config=config)

print("making dataset")

dataset = LineByLineTextDataset(tokenizer=tokenizer,file_path="./total_text.txt",block_size=128)

print("making c")

data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer,mlm=True,mlm_probability=0.15)

training_args = TrainingArguments(output_dir="./MODEL DIRECTORY",overwrite_output_dir=True,num_train_epochs=1,per_gpu_train_batch_size=64,save_steps=10000,save_total_limit=2)
print("Building trainer")
trainer = Trainer(model=model,args=training_args,data_collator=data_collator,train_dataset=dataset,prediction_loss_only=True)
trainer.train()

trainer.save_model("./MODEL DIRECTORY")

"./total_text.txt"是一个1.7GB的文本文件。

PyCharm尝试

pycharm上的这段代码构建了数据集,然后抛出错误,提示我首选的gpu内存不足,并且Torch已在使用3.7GiB内存。

我尝试过:

  • 导入gc进行gc清除以尝试刷新我gpu上发生的一切
  • 减小我的gpu的批次大小(仅在8的批次大小上进行训练,导致200,000多个历时,共耗时1.17秒)
  • 设置os.environ["CUDA_VISIBLE_OBJECTS"] ="",使割炬必须使用我的CPU,而不是我的GPU。仍然抛出相同的GPU内存错误...

因此,由于火炬暂时迫使自己使用我的GPU,我决定去Collab。

Collab尝试

Collab的代码有不同的问题。它没有内存来构建数据集,并且由于RAM不足而崩溃。我购买了一个Pro帐户,然后将可用RAM增加到25GB,仍然是内存不足。

干杯!

解决方法

我得出的结论是,我训练的文本文件很大。从我发现的其他示例中,培训文本约为300MB,而不是1.7GB。在这两种情况下,我都要求PyCharm和Collab进行一项非常耗资源的任务。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...