End of training
Browse files- README.md +48 -116
- model.safetensors +1 -1
README.md
CHANGED
|
@@ -1,138 +1,70 @@
|
|
| 1 |
---
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
| 4 |
metrics:
|
| 5 |
-
- accuracy
|
| 6 |
-
- recall
|
| 7 |
- precision
|
|
|
|
| 8 |
- f1
|
| 9 |
-
|
| 10 |
-
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
- pii
|
| 14 |
-
- privacy
|
| 15 |
-
- personal
|
| 16 |
-
- identification
|
| 17 |
---
|
| 18 |
-
# 🐟 PII-RANHA: Privacy-Preserving Token Classification Model
|
| 19 |
-
|
| 20 |
-
## Overview
|
| 21 |
-
PII-RANHA is a fine-tuned token classification model based on **ModernBERT-base** from Answer.AI. It is designed to identify and classify Personally Identifiable Information (PII) in text data. The model is trained on the `ai4privacy/pii-masking-400k` dataset and can detect 17 different PII categories, such as account numbers, credit card numbers, email addresses, and more.
|
| 22 |
-
|
| 23 |
-
This model is intended for privacy-preserving applications, such as data anonymization, redaction, or compliance with data protection regulations.
|
| 24 |
-
|
| 25 |
-
## Model Details
|
| 26 |
-
|
| 27 |
-
### Model Architecture
|
| 28 |
-
- **Base Model**: `answerdotai/ModernBERT-base`
|
| 29 |
-
- **Task**: Token Classification
|
| 30 |
-
- **Number of Labels**: 18 (17 PII categories + "O" for non-PII tokens)
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
## Usage
|
| 34 |
-
|
| 35 |
-
### Installation
|
| 36 |
-
To use the model, ensure you have the `transformers` and `datasets` libraries installed:
|
| 37 |
-
|
| 38 |
-
```bash
|
| 39 |
-
pip install transformers datasets
|
| 40 |
-
```
|
| 41 |
-
|
| 42 |
-
Inference Example
|
| 43 |
-
Here’s how to load and use the model for PII detection:
|
| 44 |
-
|
| 45 |
-
```python
|
| 46 |
-
from transformers import AutoTokenizer, AutoModelForTokenClassification
|
| 47 |
-
from transformers import pipeline
|
| 48 |
-
|
| 49 |
-
# Load the model and tokenizer
|
| 50 |
-
model_name = "scampion/piiranha"
|
| 51 |
-
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 52 |
-
model = AutoModelForTokenClassification.from_pretrained(model_name)
|
| 53 |
-
|
| 54 |
-
# Create a token classification pipeline
|
| 55 |
-
pii_pipeline = pipeline("token-classification", model=model, tokenizer=tokenizer)
|
| 56 |
-
|
| 57 |
-
# Example input
|
| 58 |
-
text = "My email is [email protected] and my phone number is 555-123-4567."
|
| 59 |
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
for entity in results:
|
| 63 |
-
print(f"Entity: {entity['word']}, Label: {entity['entity']}, Score: {entity['score']:.4f}")
|
| 64 |
|
| 65 |
-
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
Entity: 123, Label: I-SOCIALNUM, Score: 0.6309
|
| 75 |
-
Entity: -, Label: I-SOCIALNUM, Score: 0.6151
|
| 76 |
-
Entity: 45, Label: I-SOCIALNUM, Score: 0.3742
|
| 77 |
-
Entity: 67, Label: I-TELEPHONENUM, Score: 0.3440
|
| 78 |
-
```
|
| 79 |
|
| 80 |
-
##
|
| 81 |
|
| 82 |
-
|
| 83 |
-
The model was trained on the ai4privacy/pii-masking-400k dataset, which contains 400,000 examples of text with annotated PII tokens.
|
| 84 |
|
| 85 |
-
|
| 86 |
-
- **Batch Size:** 32
|
| 87 |
-
- **Learning Rate:** 5e-6
|
| 88 |
-
- **Epochs:** 4
|
| 89 |
-
- **Optimizer:** AdamW
|
| 90 |
-
- **Weight Decay:** 0.01
|
| 91 |
-
- **Scheduler:** Linear learning rate scheduler
|
| 92 |
|
| 93 |
-
|
| 94 |
-
The model was evaluated using the following metrics:
|
| 95 |
-
- Precision
|
| 96 |
-
- Recall
|
| 97 |
-
- F1 Score
|
| 98 |
-
- Accuracy
|
| 99 |
|
|
|
|
| 100 |
|
| 101 |
-
|
| 102 |
-
|-------|--------------|-----------------|-----------|---------|-----|----------|
|
| 103 |
-
| 1 | 0.026000 | 0.026693 | 0.808574 | 0.845563 | 0.826655 | 0.990215 |
|
| 104 |
-
| 2 | 0.019300 | 0.020881 | 0.849764 | 0.879042 | 0.864155 | 0.992203 |
|
| 105 |
-
| 3 | 0.016100 | 0.019111 | 0.859251 | 0.882796 | 0.870865 | 0.992912 |
|
| 106 |
-
| 4 | 0.012200 | 0.019017 | 0.860648 | 0.888844 | 0.874519 | 0.993073 |
|
| 107 |
|
| 108 |
-
|
| 109 |
|
| 110 |
-
|
| 111 |
-
This model is licensed under the Commons Clause Apache License 2.0. For more details, see the Commons Clause website.
|
| 112 |
-
For another license, contact the author.
|
| 113 |
|
| 114 |
-
|
| 115 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
|
| 117 |
-
|
| 118 |
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
-
Version: 0.1
|
| 122 |
|
| 123 |
-
|
| 124 |
-
If you use this model in your work, please cite it as follows:
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
year = {2025},
|
| 131 |
-
version = {0.1},
|
| 132 |
-
url = {https://huggingface.co/sebastien-campion/piiranha},
|
| 133 |
-
}
|
| 134 |
-
```
|
| 135 |
-
|
| 136 |
-
## Disclaimer
|
| 137 |
-
This model is provided "as-is" without any guarantees of performance or suitability for specific use cases.
|
| 138 |
-
Always evaluate the model's performance in your specific context before deployment.
|
|
|
|
| 1 |
---
|
| 2 |
+
library_name: transformers
|
| 3 |
+
license: apache-2.0
|
| 4 |
+
base_model: answerdotai/ModernBERT-base
|
| 5 |
+
tags:
|
| 6 |
+
- generated_from_trainer
|
| 7 |
metrics:
|
|
|
|
|
|
|
| 8 |
- precision
|
| 9 |
+
- recall
|
| 10 |
- f1
|
| 11 |
+
- accuracy
|
| 12 |
+
model-index:
|
| 13 |
+
- name: piiranha
|
| 14 |
+
results: []
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
+
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
|
| 18 |
+
should probably proofread and complete it, then remove this comment. -->
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
# piiranha
|
| 21 |
|
| 22 |
+
This model is a fine-tuned version of [answerdotai/ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) on an unknown dataset.
|
| 23 |
+
It achieves the following results on the evaluation set:
|
| 24 |
+
- Loss: 0.0229
|
| 25 |
+
- Precision: 0.9212
|
| 26 |
+
- Recall: 0.9272
|
| 27 |
+
- F1: 0.9242
|
| 28 |
+
- Accuracy: 0.9953
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
+
## Model description
|
| 31 |
|
| 32 |
+
More information needed
|
|
|
|
| 33 |
|
| 34 |
+
## Intended uses & limitations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
+
More information needed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
+
## Training and evaluation data
|
| 39 |
|
| 40 |
+
More information needed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
+
## Training procedure
|
| 43 |
|
| 44 |
+
### Training hyperparameters
|
|
|
|
|
|
|
| 45 |
|
| 46 |
+
The following hyperparameters were used during training:
|
| 47 |
+
- learning_rate: 5e-05
|
| 48 |
+
- train_batch_size: 32
|
| 49 |
+
- eval_batch_size: 32
|
| 50 |
+
- seed: 42
|
| 51 |
+
- optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-06 and optimizer_args=No additional optimizer arguments
|
| 52 |
+
- lr_scheduler_type: linear
|
| 53 |
+
- num_epochs: 4
|
| 54 |
|
| 55 |
+
### Training results
|
| 56 |
|
| 57 |
+
| Training Loss | Epoch | Step | Validation Loss | Precision | Recall | F1 | Accuracy |
|
| 58 |
+
|:-------------:|:-----:|:-----:|:---------------:|:---------:|:------:|:------:|:--------:|
|
| 59 |
+
| 0.0171 | 1.0 | 9156 | 0.0179 | 0.8976 | 0.9056 | 0.9016 | 0.9935 |
|
| 60 |
+
| 0.0113 | 2.0 | 18312 | 0.0141 | 0.9155 | 0.9233 | 0.9194 | 0.9948 |
|
| 61 |
+
| 0.005 | 3.0 | 27468 | 0.0157 | 0.9194 | 0.9284 | 0.9239 | 0.9951 |
|
| 62 |
+
| 0.001 | 4.0 | 36624 | 0.0229 | 0.9212 | 0.9272 | 0.9242 | 0.9953 |
|
| 63 |
|
|
|
|
| 64 |
|
| 65 |
+
### Framework versions
|
|
|
|
| 66 |
|
| 67 |
+
- Transformers 4.48.2
|
| 68 |
+
- Pytorch 2.5.1+cu124
|
| 69 |
+
- Datasets 3.2.0
|
| 70 |
+
- Tokenizers 0.21.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 598489008
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ba6f5d418ac086df93d2eb9ca07057eb250dee0b532bba744028a45cad55a4b7
|
| 3 |
size 598489008
|