Sentimental_Model / my-model.py
shoaibanwar13's picture
Upload my-model.py
7be98ad verified
from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments
from datasets import load_dataset
# Load a pre-trained tokenizer and model
model_name = "distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)
# Load a small dataset for fine-tuning (e.g., SST2 for sentiment analysis)
dataset = load_dataset("sst2")
def tokenize_function(examples):
return tokenizer(examples["sentence"], padding="max_length", truncation=True)
# Tokenize the dataset
tokenized_datasets = dataset.map(tokenize_function, batched=True)
# Define training arguments
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
logging_dir="./logs",
num_train_epochs=1,
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
)
# Create Trainer instance
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"].shuffle(seed=42).select(range(1000)), # Use a small subset for training
eval_dataset=tokenized_datasets["validation"].select(range(100)),
)
# Train the model
trainer.train()
# Save the trained model
model.save_pretrained("my-small-model")
tokenizer.save_pretrained("my-small-model")