Sumeetgpt commited on
Commit
d0ca4c5
·
verified ·
1 Parent(s): fa9ab30

Add model card

Browse files
Files changed (1) hide show
  1. README.md +38 -107
README.md CHANGED
@@ -1,130 +1,61 @@
1
  ---
 
 
2
  tags:
3
- - setfit
4
- - sentence-transformers
5
- - text-classification
6
- - generated_from_setfit_trainer
7
- widget: []
8
- metrics:
9
- - accuracy
10
  pipeline_tag: text-classification
11
- library_name: setfit
12
- inference: true
13
  ---
14
 
15
- # SetFit
16
 
17
- This is a [SetFit](https://github.com/huggingface/setfit) model that can be used for Text Classification. A [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) instance is used for classification.
18
 
19
- The model has been trained using an efficient few-shot learning technique that involves:
20
 
21
- 1. Fine-tuning a [Sentence Transformer](https://www.sbert.net) with contrastive learning.
22
- 2. Training a classification head with features from the fine-tuned Sentence Transformer.
 
 
 
 
23
 
24
- ## Model Details
25
-
26
- ### Model Description
27
- - **Model Type:** SetFit
28
- <!-- - **Sentence Transformer:** [Unknown](https://huggingface.co/unknown) -->
29
- - **Classification head:** a [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) instance
30
- - **Maximum Sequence Length:** 256 tokens
31
- - **Number of Classes:** 4 classes
32
- <!-- - **Training Dataset:** [Unknown](https://huggingface.co/datasets/unknown) -->
33
- <!-- - **Language:** Unknown -->
34
- <!-- - **License:** Unknown -->
35
-
36
- ### Model Sources
37
-
38
- - **Repository:** [SetFit on GitHub](https://github.com/huggingface/setfit)
39
- - **Paper:** [Efficient Few-Shot Learning Without Prompts](https://arxiv.org/abs/2209.11055)
40
- - **Blogpost:** [SetFit: Efficient Few-Shot Learning Without Prompts](https://huggingface.co/blog/setfit)
41
-
42
- ## Uses
43
-
44
- ### Direct Use for Inference
45
-
46
- First install the SetFit library:
47
-
48
- ```bash
49
- pip install setfit
50
- ```
51
-
52
- Then you can load this model and run inference.
53
 
54
  ```python
55
  from setfit import SetFitModel
56
 
57
- # Download from the 🤗 Hub
58
- model = SetFitModel.from_pretrained("setfit_model_id")
59
- # Run inference
60
- preds = model("I loved the spiderman movie!")
61
- ```
62
-
63
- <!--
64
- ### Downstream Use
65
 
66
- *List how someone could finetune this model on their own dataset.*
67
- -->
 
68
 
69
- <!--
70
- ### Out-of-Scope Use
71
-
72
- *List how the model may foreseeably be misused and address what users ought not to do with the model.*
73
- -->
74
-
75
- <!--
76
- ## Bias, Risks and Limitations
77
-
78
- *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
79
- -->
80
-
81
- <!--
82
- ### Recommendations
83
-
84
- *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
85
- -->
86
-
87
- ## Training Details
88
-
89
- ### Framework Versions
90
- - Python: 3.12.12
91
- - SetFit: 1.1.3
92
- - Sentence Transformers: 5.2.2
93
- - Transformers: 4.57.6
94
- - PyTorch: 2.10.0
95
- - Datasets: 5.0.0
96
- - Tokenizers: 0.22.2
97
 
98
- ## Citation
99
 
100
- ### BibTeX
101
- ```bibtex
102
- @article{https://doi.org/10.48550/arxiv.2209.11055,
103
- doi = {10.48550/ARXIV.2209.11055},
104
- url = {https://arxiv.org/abs/2209.11055},
105
- author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
106
- keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
107
- title = {Efficient Few-Shot Learning Without Prompts},
108
- publisher = {arXiv},
109
- year = {2022},
110
- copyright = {Creative Commons Attribution 4.0 International}
111
- }
112
  ```
113
 
114
- <!--
115
- ## Glossary
116
-
117
- *Clearly define terms in order to be accessible across audiences.*
118
- -->
119
 
120
- <!--
121
- ## Model Card Authors
122
 
123
- *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
124
- -->
 
 
 
125
 
126
- <!--
127
- ## Model Card Contact
128
 
129
- *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
130
- -->
 
1
  ---
2
+ language: en
3
+ license: apache-2.0
4
  tags:
5
+ - setfit
6
+ - text-classification
7
+ - dlp
8
+ - security
9
+ - pii-detection
10
+ - data-loss-prevention
 
11
  pipeline_tag: text-classification
 
 
12
  ---
13
 
14
+ # spidercob/dlp-intent-classifier
15
 
16
+ A SetFit model trained to classify DLP (Data Loss Prevention) regex match findings as real sensitive data vs. false positives.
17
 
18
+ ## Labels
19
 
20
+ | Label | Description | Default Action |
21
+ |---|---|---|
22
+ | `REAL_DATA` | Genuine PII, credential, or secret | BLOCK (if conf > 0.7) |
23
+ | `TEST_DATA` | Test/mock/example value | ALLOW (if conf > 0.8) |
24
+ | `DOCUMENTATION` | Regex hit inside a doc or code comment | ALLOW |
25
+ | `NOISE` | False positive or low-signal hit | IGNORE |
26
 
27
+ ## Usage
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  ```python
30
  from setfit import SetFitModel
31
 
32
+ model = SetFitModel.from_pretrained("spidercob/dlp-intent-classifier")
 
 
 
 
 
 
 
33
 
34
+ text = "Context surrounding a ssn: Patient record: Maria Garcia SSN=523-89-4521"
35
+ prediction = model.predict([text])
36
+ # ['REAL_DATA']
37
 
38
+ probs = model.predict_proba([text])
39
+ # [[0.02, 0.01, 0.01, 0.96]]
40
+ ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
+ ## Input format
43
 
44
+ ```
45
+ Context surrounding a {finding_type}: {context_text}
 
 
 
 
 
 
 
 
 
 
46
  ```
47
 
48
+ - `finding_type`: the DLP pattern that matched (e.g. `ssn`, `credit_card`, `aws_access_key`, `email`, `api_key`)
49
+ - `context_text`: surrounding content snippet, up to ~400 characters
 
 
 
50
 
51
+ ## Training
 
52
 
53
+ - **Base model**: `sentence-transformers/all-MiniLM-L6-v2`
54
+ - **Method**: SetFit contrastive fine-tuning
55
+ - **Training examples**: 256 (production DLP findings + curated synthetic examples)
56
+ - **Test accuracy**: 90.4%
57
+ - **Training time**: ~8 minutes on Apple M-series
58
 
59
+ ## Fine-tune on your own data
 
60
 
61
+ See [github.com/spidercob/dlp-intent-classifier](https://github.com/spidercob/dlp-intent-classifier) for the full training pipeline.