@@ -350,11 +350,24 @@ def main():
|
|||||||
|
|
||||||
# Training
|
# Training
|
||||||
if training_args.do_train:
|
if training_args.do_train:
|
||||||
trainer.train(
|
train_result = trainer.train(
|
||||||
model_path=model_args.model_name_or_path if os.path.isdir(model_args.model_name_or_path) else None
|
model_path=model_args.model_name_or_path if os.path.isdir(model_args.model_name_or_path) else None
|
||||||
)
|
)
|
||||||
|
metrics = train_result.metrics
|
||||||
|
|
||||||
trainer.save_model() # Saves the tokenizer too for easy upload
|
trainer.save_model() # Saves the tokenizer too for easy upload
|
||||||
|
|
||||||
|
output_train_file = os.path.join(training_args.output_dir, "train_results.txt")
|
||||||
|
if trainer.is_world_process_zero():
|
||||||
|
with open(output_train_file, "w") as writer:
|
||||||
|
logger.info("***** Train results *****")
|
||||||
|
for key, value in sorted(metrics.items()):
|
||||||
|
logger.info(f" {key} = {value}")
|
||||||
|
writer.write(f"{key} = {value}\n")
|
||||||
|
|
||||||
|
# Need to save the state, since Trainer.save_model saves only the tokenizer with the model
|
||||||
|
trainer.state.save_to_json(os.path.join(training_args.output_dir, "trainer_state.json"))
|
||||||
|
|
||||||
# Evaluation
|
# Evaluation
|
||||||
eval_results = {}
|
eval_results = {}
|
||||||
if training_args.do_eval:
|
if training_args.do_eval:
|
||||||
@@ -374,7 +387,7 @@ def main():
|
|||||||
if trainer.is_world_process_zero():
|
if trainer.is_world_process_zero():
|
||||||
with open(output_eval_file, "w") as writer:
|
with open(output_eval_file, "w") as writer:
|
||||||
logger.info(f"***** Eval results {task} *****")
|
logger.info(f"***** Eval results {task} *****")
|
||||||
for key, value in eval_result.items():
|
for key, value in sorted(eval_result.items()):
|
||||||
logger.info(f" {key} = {value}")
|
logger.info(f" {key} = {value}")
|
||||||
writer.write(f"{key} = {value}\n")
|
writer.write(f"{key} = {value}\n")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user