QuizCraftAi / flan_t5_finetuned_model
Vriti29's picture
Create flan_t5_finetuned_model
fc7053c
# -*- coding: utf-8 -*-
"""Untitled4.ipynb
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/19SAJcA_N4eQVyeNjT1iFdgpyLvvtSSEw
"""
!pip install transformers datasets accelerate -q
from google.colab import files
uploaded = files.upload()
from datasets import Dataset
from transformers import T5Tokenizer, T5ForConditionalGeneration, Trainer, TrainingArguments, DataCollatorForSeq2Seq, Seq2SeqTrainingArguments
import pandas as pd
import torch
# Load CSV file (adjust filename if needed)
df = pd.read_csv("flan_t5_true_false_dataset.csv")
# Convert to Hugging Face Dataset
dataset = Dataset.from_pandas(df)
# Load tokenizer and model
model_name = "google/flan-t5-base"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
# Preprocessing
def preprocess(example):
inputs = tokenizer(example["input"], padding="max_length", truncation=True, max_length=256)
with tokenizer.as_target_tokenizer():
labels = tokenizer(example["output"], padding="max_length", truncation=True, max_length=64)
inputs["labels"] = labels["input_ids"]
return inputs
# Tokenize dataset
tokenized_dataset = dataset.map(preprocess, batched=True)
# Define training arguments
training_args = Seq2SeqTrainingArguments(
output_dir="./flan_t5_finetuned_model",
per_device_train_batch_size=4,
per_device_eval_batch_size=4, # Added evaluation batch size
num_train_epochs=3,
save_steps=500,
logging_steps=100,
save_total_limit=1,
fp16=torch.cuda.is_available()
)
# Trainer setup
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset,
tokenizer=tokenizer,
data_collator=DataCollatorForSeq2Seq(tokenizer, model)
)
# Start training
trainer.train()
!zip -r flan_t5_finetuned_model.zip flan_t5_finetuned_model
files.download("flan_t5_finetuned_model.zip")
import pandas as pd
data = [
{
"input": f"Convert this fact into a true/false question: The moon is made of cheese {i}.",
"output": f"The moon is made of cheese {i}. True or False?"
}
for i in range(150)
]
df = pd.DataFrame(data)
df.to_csv("flan_t5_eval.csv", index=False)
from google.colab import files
files.download('flan_t5_eval.csv')
!pip install transformers datasets bert-score sentence-transformers -q
from google.colab import files
uploaded = files.upload()
EVAL_CSV = "/content/flan_t5_eval.csv"
!ls -l ./flan_t5_finetuned