Обучите GPT2 с помощью Trainer & TrainingArguments, используя / указав маску внимания
Я использую Trainer & TrainingArguments для обучения модели GPT2, но, похоже, это не работает.
В моих наборах данных есть идентификаторы токенов моего корпуса и маска каждого текста, чтобы указать, на что следует обратить внимание:
Dataset({
features: ['attention_mask', 'input_ids', 'labels'],
num_rows: 2012860
}))
Я провожу обучение с помощью Trainer & TrainingArguments, передавая свою модель и предыдущий набор данных следующим образом. Но нигде я ничего не указываю о внимании_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()
Как мне сказать тренеру использовать эту функцию (маска_ внимания)? Если вы посмотрите файл /transformers/trainer.py, там нет ссылок на «внимание» или «маску».
Заранее спасибо!
1 ответ
Где-то в исходном коде вы увидите, что входные данные передаются модели примерно так
outputs = model(**inputs)
Пока ваш подборщик возвращает словарь, который включает ключ внимательности_маски, ваша маска внимания будет передана в вашу модель GPT2.