Spaces:
Running
Running
| from transformers import TrainingArguments, Trainer | |
| from model import load_model | |
| from dataset import load_and_prepare_dataset | |
| def main(): | |
| tokenizer, model = load_model() | |
| dataset = load_and_prepare_dataset(tokenizer) | |
| training_args = TrainingArguments( | |
| output_dir="outputs/qa_model", | |
| eval_strategy="steps", # ✅ correct API | |
| eval_steps=1000, | |
| learning_rate=3e-5, | |
| per_device_train_batch_size=8, | |
| per_device_eval_batch_size=8, | |
| num_train_epochs=2, | |
| weight_decay=0.01, | |
| fp16=True, | |
| logging_steps=500, | |
| save_steps=2000, | |
| save_total_limit=2, | |
| load_best_model_at_end=True, | |
| metric_for_best_model="eval_loss", | |
| report_to="none", | |
| ) | |
| trainer = Trainer( | |
| model=model, | |
| args=training_args, | |
| train_dataset=dataset["train"], | |
| eval_dataset=dataset["validation"], | |
| tokenizer=tokenizer, | |
| ) | |
| trainer.train() | |
| # Save final model + tokenizer | |
| trainer.save_model("outputs/qa_model/final") | |
| tokenizer.save_pretrained("outputs/qa_model/final") | |
| if __name__ == "__main__": | |
| main() | |