real-jiakai's picture
Update README.md
ab0d837 verified
---
language: en
license: apache-2.0
base_model: bert-base-uncased
tags:
- generated_from_trainer
- paraphrase-identification
- bert
- glue
- mrpc
metrics:
- accuracy
- f1
datasets:
- glue
model-index:
- name: bert-base-uncased-finetuned-mrpc
results:
- task:
type: text-classification
name: Paraphrase Identification
dataset:
name: GLUE MRPC
type: glue
args: mrpc
metrics:
- name: Accuracy
type: accuracy
value: 0.8652
- name: F1
type: f1
value: 0.9057
---
# BERT Fine-tuned on MRPC
This model is a fine-tuned version of [bert-base-uncased](https://huggingface.co./bert-base-uncased) on the MRPC (Microsoft Research Paraphrase Corpus) dataset from the GLUE benchmark. It is designed to determine whether two given sentences are semantically equivalent.
## Model description
The model uses the BERT base architecture (12 layers, 768 hidden dimensions, 12 attention heads) and has been fine-tuned specifically for the paraphrase identification task. The output layer predicts whether the input sentence pair expresses the same meaning.
Key specifications:
- Base model: bert-base-uncased
- Task type: Binary classification (paraphrase/not paraphrase)
- Training method: Fine-tuning all layers
- Language: English
## Intended uses & limitations
### Intended uses
- Paraphrase detection
- Semantic similarity assessment
- Question duplicate detection
- Content matching
- Automated text comparison
### Limitations
- Only works with English text
- Performance may degrade on out-of-domain text
- May struggle with complex or nuanced semantic relationships
- Limited to comparing pairs of sentences (not longer texts)
## Training and evaluation data
The model was trained on the Microsoft Research Paraphrase Corpus (MRPC) from the GLUE benchmark:
- Training set: 3,667 sentence pairs
- Validation set: 408 sentence pairs
- Each pair is labeled as either paraphrase (1) or non-paraphrase (0)
- Class distribution: approximately 67.4% positive (paraphrase) and 32.6% negative (non-paraphrase)
## Training procedure
### Training hyperparameters
The following hyperparameters were used during training:
- Learning rate: 3e-05
- Batch size: 8 (train and eval)
- Optimizer: AdamW (betas=(0.9,0.999), epsilon=1e-08)
- LR scheduler: Linear decay
- Number of epochs: 3
- Max sequence length: 512
- Weight decay: 0.01
### Training results
| Training Loss | Epoch | Step | Validation Loss | Accuracy | F1 |
|:-------------:|:-----:|:----:|:---------------:|:--------:|:------:|
| No log | 1.0 | 459 | 0.3905 | 0.8382 | 0.8878 |
| 0.5385 | 2.0 | 918 | 0.4275 | 0.8505 | 0.8961 |
| 0.3054 | 3.0 | 1377 | 0.5471 | 0.8652 | 0.9057 |
### Framework versions
- Transformers 4.46.2
- PyTorch 2.5.1+cu121
- Datasets 3.1.0
- Tokenizers 0.20.3
## Performance analysis
The model achieves strong performance on the MRPC validation set:
- Accuracy: 86.52%
- F1 Score: 90.57%
These metrics indicate that the model is effective at identifying paraphrases while maintaining a good balance between precision and recall.
## Example usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained("real-jiakai/bert-base-uncased-finetuned-mrpc")
model = AutoModelForSequenceClassification.from_pretrained("real-jiakai/bert-base-uncased-finetuned-mrpc")
# Example function
def check_paraphrase(sentence1, sentence2):
inputs = tokenizer(sentence1, sentence2, return_tensors="pt", padding=True, truncation=True)
outputs = model(**inputs)
prediction = outputs.logits.argmax().item()
return "Paraphrase" if prediction == 1 else "Not paraphrase"
# Example usage
sentence1 = "The cat sat on the mat."
sentence2 = "A cat was sitting on the mat."
result = check_paraphrase(sentence1, sentence2)
print(f"Result: {result}")
```