from transformers import Trainer, TrainingArguments, AutoModelForSequenceClassification, AutoTokenizer from datasets import load_dataset import numpy as np import evaluate # Load dataset dataset = load_dataset("imdb") tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased") # Tokenization function def tokenize_function(example): return tokenizer(example["text"], padding="max_length", truncation=True) # Tokenize dataset tokenized_datasets = dataset.map(tokenize_function, batched=True) # Load model model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased", num_labels=2) # Load accuracy metric accuracy = evaluate.load("accuracy") # Compute metrics function def compute_metrics(eval_pred): logits, labels = eval_pred predictions = np.argmax(logits, axis=-1) return accuracy.compute(predictions=predictions, references=labels) # Define training arguments training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=1, weight_decay=0.01, ) # Initialize Trainer trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"].shuffle(seed=42).select(range(2000)), eval_dataset=tokenized_datasets["test"].shuffle(seed=42).select(range(1000)), compute_metrics=compute_metrics, ) # Train model trainer.train()