| | from transformers import T5Tokenizer, T5ForConditionalGeneration |
| | from transformers import DataCollatorWithPadding |
| | from datasets import Dataset |
| | import pandas as pd |
| | import torch |
| | from sklearn.model_selection import train_test_split |
| |
|
| | |
| | df = pd.read_csv("ruttoniaitrain1.csv") |
| |
|
| | |
| | df = df.rename(columns={"Quest": "text", "Answer": "target"}) |
| |
|
| | |
| | train_df, val_df = train_test_split(df, test_size=0.2, random_state=42) |
| | train_dataset = Dataset.from_pandas(train_df) |
| | val_dataset = Dataset.from_pandas(val_df) |
| |
|
| | print("CSV Processed and loaded!") |
| | |
| | tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-base") |
| | model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-base") |
| |
|
| | print("Model Loaded!") |
| | |
| | def preprocess_function(examples): |
| | inputs = tokenizer( |
| | examples['text'], |
| | truncation=True, |
| | padding='longest', |
| | max_length=512 |
| | ) |
| | targets = tokenizer( |
| | examples['target'], |
| | truncation=True, |
| | padding='longest', |
| | max_length=32 |
| | ) |
| | |
| | examples['input_ids'] = inputs['input_ids'] |
| | examples['attention_mask'] = inputs['attention_mask'] |
| | examples['labels'] = targets['input_ids'] |
| | |
| | return examples |
| |
|
| | train_dataset = train_dataset.map(preprocess_function, batched=True) |
| |
|
| | training_args = { |
| | 'output_dir': './Ruttoni_AI', |
| | 'num_train_epochs': 3, |
| | 'per_device_train_batch_size': 4, |
| | 'save_steps': 500, |
| | 'save_total_limit': 2, |
| | 'logging_steps': 100, |
| | 'evaluation_strategy': 'steps', |
| | 'eval_steps': 500, |
| | 'logging_dir': './logs', |
| | 'overwrite_output_dir': True, |
| | 'warmup_steps': 500, |
| | 'learning_rate': 1e-4, |
| | 'report_to': 'none' |
| | } |
| |
|
| | print("Arguments and functions initialized!") |
| |
|
| | data_collator = DataCollatorWithPadding(tokenizer=tokenizer) |
| |
|
| | from transformers import Trainer, TrainingArguments |
| |
|
| | trainer = Trainer( |
| | model=model, |
| | args=TrainingArguments(**training_args), |
| | data_collator=data_collator, |
| | train_dataset=train_dataset, |
| | eval_dataset=val_dataset, |
| | ) |
| |
|
| | print("Training...") |
| |
|
| | trainer.train() |
| |
|
| | print("Saving...") |
| |
|
| | trainer.save_model("./Ruttoni_AI") |