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

Memory Issue while following LM tutorial

规格: OS: Windows 10 CUDA:10.1 GPU:RTX 2060 6G 显存 (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 运行ning 内存不足,而 Torch 已经使用了 3.7GiB 的内存。

我试过了:

由于 Torch 暂时强迫自己使用我的 GPU,我决定去 Collab。

合作尝试

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

干杯!

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