transformers 库教程
前言
记录一下自己使用 transformers 库的一些常见 work,以及各种参数等
Model 类
1 | output = model(**input) |
PyTorch 模型的 forward 方法通常接受关键字参数(如 input_ids、attention_mask、labels)
Tokenizer 对象是 callable,因此可以直接传入一个字符串,返回一个 dict。最主要的是 ID 的 list,同时也会返回 attention mask:
报错:
1 | KeyError: "The `metric_for_best_model` training argument is set to 'eval_accuracy', which is not found in the evaluation metrics. The available evaluation metrics are: ['eval_runtime', 'eval_samples_per_second', 'eval_steps_per_second', 'epoch']. Consider changing the `metric_for_best_model` via the TrainingArguments." |
首先看一下 compute_metrics 中 return 的 key 是否和 TrainingArguments 中 metric_for_best_model 的类型相同 Hugging Face 的 Trainer 原生支持多卡训练,无需手动包装 DataParallel:
Trainer 会自动根据 CUDA_VISIBLE_DEVICES 使用所有可用 GPU。
xlm-roberta-base 30 分类 3 RTX Titan 24G 显存 maxlength(tokenizer 中设定)=256 50w 条训练数据 epoch = 3 per_device_batch_size = 64
lr=3e-5
一开始开了 fp16,梯度直接爆炸了,不知道为什么 关闭了就好了不少