我正在使用Trainer & TrainingArguments训练GPT2模型,但似乎效果不好。
我的数据集具有语料库标记的ids和每个文本的掩码,以指示将注意力应用于何处:
Dataset({
features: ['attention_mask', 'input_ids', 'labels'],
num_rows: 2012860
}))我正在使用Trainer & TrainingArguments进行训练,将我的模型和以前的数据集传递如下。但是我没有指定任何关于attention_mask的内容:
training_args = TrainingArguments(
output_dir=path_save_checkpoints,
overwrite_output_dir=True,
num_train_epochs=1,
per_device_train_batch_size = 4,
gradient_accumulation_steps = 4,
logging_steps = 5_000, save_steps=5_000,
fp16=True,
deepspeed="ds_config.json",
remove_unused_columns = True,
debug = True
)
trainer = Trainer(
model=model,
args=training_args,
data_collator=data_collator,
train_dataset=dataset,
tokenizer=tokenizer,
)
trainer.train()我应该如何告诉培训师使用此功能(attention_mask)?如果您查看文件/transformers/traine.py,就会发现其中并没有提到“注意”或“掩码”。
提前感谢!
发布于 2021-10-13 00:14:32
在源代码中的某处,您将看到输入被传递给模型,如下所示
outputs = model(**inputs)只要你的排序器返回一个包含attention_mask键的字典,你的注意力掩码就会被传递给你的GPT2模型。
https://stackoverflow.com/questions/67288454
复制相似问题