Hi, I am trying to pass 2 evaluation set to Trainer but a weird thing happen to me.
I got no validaiton loss
here is my training args
training_args_dict = {
"output_dir": save_dir,
"overwrite_output_dir": True,
"logging_strategy": "epoch",
"evaluation_strategy": "epoch",
"save_strategy": "epoch",
"per_device_train_batch_size": batch_size,
"per_device_eval_batch_size": batch_size,
"save_total_limit": 1,
"num_train_epochs": epochs,
"predict_with_generate": True,
"report_to": report_to,
"run_name": run_name,
"load_best_model_at_end": True,
"seed": SEED,
"generation_config": gen_config,
"metric_for_best_model": "eval_validation_loss",
# "disable_tqdm" : True,
}
here is my Trainer api
def get_trainer(
input_col,
label_col,
model_name,
path_to_hf_data,
data_collator,
training_args_dict,
early_stop_round=20,
):
tokenized_dataset = preprocess_text(path_to_hf_data, input_col, label_col)
args = Seq2SeqTrainingArguments(**training_args_dict)
optimizer = Adafactor(
model.parameters(),
scale_parameter=True,
relative_step=True,
warmup_init=True,
lr=None,
)
trainer = Seq2SeqTrainer(
model=model,
args=args,
train_dataset=tokenized_dataset["train"],
eval_dataset={
"validation" : tokenized_dataset["valid"],
"training" : tokenized_dataset["train"],
},
data_collator=data_collator,
tokenizer=tokenizer,
compute_metrics=compute_metrics,
optimizers=(optimizer, AdafactorSchedule(optimizer)),
callbacks=[EarlyStoppingCallback(early_stopping_patience=early_stop_round)],
)
return trainer
Could someone help me with this matter? The Documenation is not clear to me how to pass 2 evaluation set to trainer.