NyayLens-API / src /qa /train.py
Sai Pranav Reddy
Clean lightweight deployment
968e24d
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()