Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| from sklearn.model_selection import train_test_split | |
| from transformers import DistilBertTokenizerFast, DistilBertForSequenceClassification, Trainer, TrainingArguments | |
| from datasets import Dataset | |
| import transformers | |
| print("Transformers version:", transformers.__version__) | |
| # Load and encode dataset | |
| df = pd.read_csv("dataset.csv") | |
| label2id = {l: i for i, l in enumerate(df['label'].unique())} | |
| id2label = {i: l for l, i in label2id.items()} | |
| df['label'] = df['label'].map(label2id) | |
| train_texts, val_texts, train_labels, val_labels = train_test_split(df['text'], df['label'], test_size=0.2) | |
| tokenizer = DistilBertTokenizerFast.from_pretrained("distilbert-base-uncased") | |
| train_enc = tokenizer(list(train_texts), truncation=True, padding=True) | |
| val_enc = tokenizer(list(val_texts), truncation=True, padding=True) | |
| train_dataset = Dataset.from_dict({ | |
| 'input_ids': train_enc['input_ids'], | |
| 'attention_mask': train_enc['attention_mask'], | |
| 'labels': list(train_labels) | |
| }) | |
| val_dataset = Dataset.from_dict({ | |
| 'input_ids': val_enc['input_ids'], | |
| 'attention_mask': val_enc['attention_mask'], | |
| 'labels': list(val_labels) | |
| }) | |
| model = DistilBertForSequenceClassification.from_pretrained( | |
| "distilbert-base-uncased", | |
| num_labels=len(label2id), | |
| id2label=id2label, | |
| label2id=label2id | |
| ) | |
| args = TrainingArguments( | |
| output_dir="./model", | |
| eval_strategy="epoch", | |
| per_device_train_batch_size=8, | |
| num_train_epochs=4, | |
| save_total_limit=1, | |
| logging_dir="./logs" | |
| ) | |
| trainer = Trainer( | |
| model=model, | |
| args=args, | |
| train_dataset=train_dataset, | |
| eval_dataset=val_dataset | |
| ) | |
| trainer.train() | |
| model.save_pretrained("spam_detector_model") | |
| tokenizer.save_pretrained("spam_detector_model") | |