|
|
--- |
|
|
language: en |
|
|
license: mit |
|
|
library_name: pytorch |
|
|
tags: |
|
|
- shakespeare |
|
|
- text-classification |
|
|
- bert |
|
|
- pytorch |
|
|
- nlp |
|
|
datasets: |
|
|
- lanretto/shakespeare-vs-modern-dialogue |
|
|
--- |
|
|
|
|
|
# 🎭 Shakespeare Authenticator - PyTorch Implementation |
|
|
|
|
|
## Model Description |
|
|
|
|
|
This is a **PyTorch manual implementation** of the Shakespeare Authenticator model, distinguishing between authentic Shakespearean text and modern writing. This model was built from scratch using raw PyTorch (without Hugging Face Trainer) for educational purposes. |
|
|
|
|
|
## Model Performance |
|
|
|
|
|
| Metric | Value | |
|
|
|--------|-------| |
|
|
| **Accuracy** | 0.9835 | |
|
|
| **F1-Score** | 0.9685 | |
|
|
| **Test Samples** | 40,626 | |
|
|
| **Avg Confidence** | 0.9938 | |
|
|
|
|
|
### Comparison with Original Implementation |
|
|
|
|
|
| Model | Accuracy | F1-Score | |
|
|
|-------|----------|----------| |
|
|
| Original (HF Trainer) | 0.9820 | 0.9658 | |
|
|
| **PyTorch Manual** | **0.9835** | **0.9685** | |
|
|
|
|
|
## Training Details |
|
|
|
|
|
- **Architecture**: BERT-base + Custom Classification Head |
|
|
- **Training Approach**: Manual PyTorch training loop |
|
|
- **Learning Rates**: BERT (2e-5), Classifier (1e-4) |
|
|
- **Epochs**: 3 |
|
|
- **Batch Size**: 128 |
|
|
- **Best Epoch**: 3 |
|
|
- **Best Validation Accuracy**: 0.9849 |
|
|
|
|
|
## Model Architecture |
|
|
|
|
|
```python |
|
|
class ShakespeareClassifier(nn.Module): |
|
|
def __init__(self, bert_model, num_classes=2, dropout_rate=0.1): |
|
|
super().__init__() |
|
|
self.bert = bert_model |
|
|
self.dropout = nn.Dropout(dropout_rate) |
|
|
self.classifier = nn.Linear(768, num_classes) |
|
|
|
|
|
def forward(self, input_ids, attention_mask): |
|
|
outputs = self.bert(input_ids=input_ids, attention_mask=attention_mask) |
|
|
pooled_output = outputs.pooler_output |
|
|
x = self.dropout(pooled_output) |
|
|
logits = self.classifier(x) |
|
|
return logits |
|
|
``` |
|
|
|