Обучите 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.

Другие вопросы по тегам