t5-small-hrms-bot / train_t5_sql.py
Mukesh001's picture
Upload folder using huggingface_hub
57462d5 verified
Raw
History Blame Contribute Delete
1.96 kB
from transformers import T5Tokenizer, T5ForConditionalGeneration, Trainer, TrainingArguments, DataCollatorForSeq2Seq
from datasets import load_dataset
import torch
# βœ… Load dataset
dataset = load_dataset("json", data_files="data/hrms_dataset.jsonl")["train"] # Fixed path for typical execution
# βœ… Initialize tokenizer and model
model_name = "t5-small"
# model_name="models/t5_model"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
# βœ… Preprocessing
def preprocess(example):
input_enc = tokenizer(example["question"], padding="max_length", truncation=True, max_length=64)
target_enc = tokenizer(example["sql"], padding="max_length", truncation=True, max_length=64)
return {
"input_ids": input_enc["input_ids"],
"attention_mask": input_enc["attention_mask"],
"labels": target_enc["input_ids"]
}
encoded_dataset = dataset.map(preprocess, remove_columns=dataset.column_names)
# βœ… Training arguments
training_args = TrainingArguments(
output_dir="models/t5_model", # Saved model folder
num_train_epochs=10, # Better results with more epochs
per_device_train_batch_size=4,
save_strategy="epoch",
save_total_limit=2,
logging_steps=50,
remove_unused_columns=False,
report_to="none", # Prevent wandb or hub errors
fp16=False # Keep off if using CPU
)
# βœ… Trainer
trainer = Trainer(
model=model,
args=training_args,
train_dataset=encoded_dataset,
tokenizer=tokenizer,
data_collator=DataCollatorForSeq2Seq(tokenizer, model)
)
# βœ… Train and save
trainer.train()
# model.save_pretrained("models/t5_model_v2")
# tokenizer.save_pretrained("models/t5_model_v2")
trainer.model.save_pretrained("models/t5_model")
tokenizer.save_pretrained("models/t5_model")
print("βœ… Model trained and saved in models/t5_model_v2/")