如何解决遵循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进行一项非常耗资源的任务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。