1

我从头开始训练了一个 RoBERTa 模型transformers,但我无法在训练期间检查训练损失

https://colab.research.google.com/github/huggingface/blog/blob/master/notebooks/01_how_to_train.ipynb

在 notebook 中,每 500 步打印一次损失,但在训练期间没有记录训练损失:

Iteration: 100%|█████████▉| 20703/20711 [4:42:54<00:07,  1.14it/s][A  
Iteration: 100%|█████████▉| 20704/20711 [4:42:54<00:05,  1.24it/s][A  
Iteration: 100%|█████████▉| 20705/20711 [4:42:55<00:05,  1.20it/s][A  
Iteration: 100%|█████████▉| 20706/20711 [4:42:56<00:04,  1.18it/s][A  
Iteration: 100%|█████████▉| 20707/20711 [4:42:57<00:03,  1.19it/s][A  
Iteration: 100%|█████████▉| 20708/20711 [4:42:58<00:02,  1.16it/s][A  
Iteration: 100%|█████████▉| 20709/20711 [4:42:59<00:01,  1.14it/s][A  
Iteration: 100%|█████████▉| 20710/20711 [4:43:00<00:00,  1.13it/s][A  
Iteration: 100%|██████████| 20711/20711 [4:43:00<00:00,  1.45it/s][A  
Iteration: 100%|██████████| 20711/20711 [4:43:00<00:00,  1.22it/s]  
Epoch: 100%|██████████| 13/13 [61:14:16<00:00, 16952.06s/it]  
Epoch: 100%|██████████| 13/13 [61:14:16<00:00, 16958.16s/it]

compress roberta.20200717.zip on ./pretrained
save roberta.20200717.zip on minio(petcharts)

没有为损失打印任何值,所以我不知道训练是否收敛得很好。如何监控训练期间的损失?

4

1 回答 1

0

只需尝试使用更新版本的库再次执行笔记本(例如直接在 colab 中),其日志记录已被重新设计。请注意,Trainer由于弃用,可能需要一组略有不同的参数。

该示例显示输出中的训练损失没有问题

训练指标

我在用着

tokenizers                    0.9.4          
transformers                  4.0.0rc1

这些训练论点似乎起到了作用:

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./EsperBERTo",
    overwrite_output_dir=True,
    num_train_epochs=1,
    per_device_train_batch_size=64,
    save_steps=10_000,
    save_total_limit=2,
)

trainer = Trainer(
    model=model,
    args=training_args,
    data_collator=data_collator,
    train_dataset=dataset,
)
于 2020-11-21T12:20:50.243 回答