yannryanhelsinki commited on
Commit
6f8a097
1 Parent(s): 8585dd5

Add SetFit model

Browse files
1_Pooling/config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "word_embedding_dimension": 768,
3
+ "pooling_mode_cls_token": false,
4
+ "pooling_mode_mean_tokens": true,
5
+ "pooling_mode_max_tokens": false,
6
+ "pooling_mode_mean_sqrt_len_tokens": false,
7
+ "pooling_mode_weightedmean_tokens": false,
8
+ "pooling_mode_lasttoken": false,
9
+ "include_prompt": true
10
+ }
README.md ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: sentence-transformers/paraphrase-mpnet-base-v2
3
+ library_name: setfit
4
+ metrics:
5
+ - accuracy
6
+ pipeline_tag: text-classification
7
+ tags:
8
+ - setfit
9
+ - sentence-transformers
10
+ - text-classification
11
+ - generated_from_setfit_trainer
12
+ widget:
13
+ - text: 'Colloqujdi Gio: Lodovico Vives latini, e volgari/Colloqui'
14
+ - text: Ioannis Lodovici Vivis Von Underweÿsung ayner christlichen Frauwen drey Bücher
15
+ ...erklärt unnd verteütscht. Durch Christophorum Brunonem .../Von Underweysung
16
+ ayner christlichen Frauwen drey Bücher
17
+ - text: Absolvtissimae in Hebraicam lingvam institvtiones accvratissime in vsvm studiosæ
18
+ juuentutis conscriptæ ...Avtore Iohanne Isaaco Leuita Germano/Absolutissimae in
19
+ Hebraicam linguam institutiones accuratissime in usum studiosæ juventutis conscriptæ
20
+ ... Autore Iohanne Isaaco Levita Germano
21
+ - text: In tertiam partem D. Thomæ Aqvinatis commentaria Ioannis Wiggers ... a quæstione
22
+ I. vsque ad quæstionem XXVI. de verbo incarnatoIn tertiam partem D. Thomae Aquinatis
23
+ commentaria Ioannis Wiggers ... a quaestione I. usque ad quaestionem XXVI. de
24
+ verbo incarnato
25
+ - text: Tabvla in grammaticen Hebræam,authore Nicolao Clenardo. A Iohanne Quinquarboreo
26
+ Aurilacensi à mendis quibus scatebat repurgata, & annotationibus illustrata./Tabula
27
+ in grammaticen Hebraeam, authore Nicolao Clenardo. A Johanne Quinquarboreo Aurilacensi
28
+ à mendis quibus scatebat repurgata, & annotationibus illustrata
29
+ inference: true
30
+ model-index:
31
+ - name: SetFit with sentence-transformers/paraphrase-mpnet-base-v2
32
+ results:
33
+ - task:
34
+ type: text-classification
35
+ name: Text Classification
36
+ dataset:
37
+ name: Unknown
38
+ type: unknown
39
+ split: test
40
+ metrics:
41
+ - type: accuracy
42
+ value: 0.735
43
+ name: Accuracy
44
+ ---
45
+
46
+ # SetFit with sentence-transformers/paraphrase-mpnet-base-v2
47
+
48
+ This is a [SetFit](https://github.com/huggingface/setfit) model that can be used for Text Classification. This SetFit model uses [sentence-transformers/paraphrase-mpnet-base-v2](https://huggingface.co/sentence-transformers/paraphrase-mpnet-base-v2) as the Sentence Transformer embedding model. A [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) instance is used for classification.
49
+
50
+ The model has been trained using an efficient few-shot learning technique that involves:
51
+
52
+ 1. Fine-tuning a [Sentence Transformer](https://www.sbert.net) with contrastive learning.
53
+ 2. Training a classification head with features from the fine-tuned Sentence Transformer.
54
+
55
+ ## Model Details
56
+
57
+ ### Model Description
58
+ - **Model Type:** SetFit
59
+ - **Sentence Transformer body:** [sentence-transformers/paraphrase-mpnet-base-v2](https://huggingface.co/sentence-transformers/paraphrase-mpnet-base-v2)
60
+ - **Classification head:** a [LogisticRegression](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) instance
61
+ - **Maximum Sequence Length:** 512 tokens
62
+ - **Number of Classes:** 2 classes
63
+ <!-- - **Training Dataset:** [Unknown](https://huggingface.co/datasets/unknown) -->
64
+ <!-- - **Language:** Unknown -->
65
+ <!-- - **License:** Unknown -->
66
+
67
+ ### Model Sources
68
+
69
+ - **Repository:** [SetFit on GitHub](https://github.com/huggingface/setfit)
70
+ - **Paper:** [Efficient Few-Shot Learning Without Prompts](https://arxiv.org/abs/2209.11055)
71
+ - **Blogpost:** [SetFit: Efficient Few-Shot Learning Without Prompts](https://huggingface.co/blog/setfit)
72
+
73
+ ### Model Labels
74
+ | Label | Examples |
75
+ |:------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
76
+ | no | <ul><li>'Exomologesis sive Modus confitendi,per Erasmum Roterodamũ .../Exomologesis sive modus confitendi per Erasmum Roterodamum'</li><li>'Aen-wysinge van de macht en de eer die aen Jesus-Christus toe-komt. En van de eerbiedinghe die-men schuldigh is aen sijn aldersuyverste moeder Maria, en andere heyligen.'</li><li>'Staatkundige vermaningen en voorbeelden, die de deughden en zonden der vorsten betreffen.Nieuwelijks door I.H. Glazemaker vertaalt.'</li></ul> |
77
+ | yes | <ul><li>'Reclamations des trois états du duché de Brabant sur les atteintes portées a leurs droits et loix constitutionnelles au nom de S.M. Joseph II.'</li><li>'Brief van het Magistraet van Brugge van date 16 February 1788 aen de ordinaire Gedeputeerde der Staeten van Vlaenderen tenderende om staets gewyze te doen naedere Representatie tegen de opregtinge van een Seminarie Generael tot Loven ...'</li><li>"Bericht voor d'Universiteyt &c. van Leuven, over de wijtloopige memorie, en andere schriften en documenten daer by, overgegeven aen haer Ho. Mog. door de vicarissen van Doornik"</li></ul> |
78
+
79
+ ## Evaluation
80
+
81
+ ### Metrics
82
+ | Label | Accuracy |
83
+ |:--------|:---------|
84
+ | **all** | 0.735 |
85
+
86
+ ## Uses
87
+
88
+ ### Direct Use for Inference
89
+
90
+ First install the SetFit library:
91
+
92
+ ```bash
93
+ pip install setfit
94
+ ```
95
+
96
+ Then you can load this model and run inference.
97
+
98
+ ```python
99
+ from setfit import SetFitModel
100
+
101
+ # Download from the 🤗 Hub
102
+ model = SetFitModel.from_pretrained("yannryanhelsinki/setfit-language-guess")
103
+ # Run inference
104
+ preds = model("Colloqujdi Gio: Lodovico Vives latini, e volgari/Colloqui")
105
+ ```
106
+
107
+ <!--
108
+ ### Downstream Use
109
+
110
+ *List how someone could finetune this model on their own dataset.*
111
+ -->
112
+
113
+ <!--
114
+ ### Out-of-Scope Use
115
+
116
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
117
+ -->
118
+
119
+ <!--
120
+ ## Bias, Risks and Limitations
121
+
122
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
123
+ -->
124
+
125
+ <!--
126
+ ### Recommendations
127
+
128
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
129
+ -->
130
+
131
+ ## Training Details
132
+
133
+ ### Training Set Metrics
134
+ | Training set | Min | Median | Max |
135
+ |:-------------|:----|:--------|:----|
136
+ | Word count | 5 | 29.2759 | 92 |
137
+
138
+ | Label | Training Sample Count |
139
+ |:------|:----------------------|
140
+ | no | 44 |
141
+ | yes | 72 |
142
+
143
+ ### Training Hyperparameters
144
+ - batch_size: (16, 16)
145
+ - num_epochs: (1, 1)
146
+ - max_steps: -1
147
+ - sampling_strategy: oversampling
148
+ - num_iterations: 20
149
+ - body_learning_rate: (2e-05, 2e-05)
150
+ - head_learning_rate: 2e-05
151
+ - loss: CosineSimilarityLoss
152
+ - distance_metric: cosine_distance
153
+ - margin: 0.25
154
+ - end_to_end: False
155
+ - use_amp: False
156
+ - warmup_proportion: 0.1
157
+ - seed: 42
158
+ - eval_max_steps: -1
159
+ - load_best_model_at_end: False
160
+
161
+ ### Training Results
162
+ | Epoch | Step | Training Loss | Validation Loss |
163
+ |:------:|:----:|:-------------:|:---------------:|
164
+ | 0.0034 | 1 | 0.2242 | - |
165
+ | 0.1724 | 50 | 0.1951 | - |
166
+ | 0.3448 | 100 | 0.0342 | - |
167
+ | 0.5172 | 150 | 0.0008 | - |
168
+ | 0.6897 | 200 | 0.0006 | - |
169
+ | 0.8621 | 250 | 0.0003 | - |
170
+
171
+ ### Framework Versions
172
+ - Python: 3.10.12
173
+ - SetFit: 1.0.3
174
+ - Sentence Transformers: 3.0.1
175
+ - Transformers: 4.39.0
176
+ - PyTorch: 2.3.0+cu121
177
+ - Datasets: 2.20.0
178
+ - Tokenizers: 0.15.2
179
+
180
+ ## Citation
181
+
182
+ ### BibTeX
183
+ ```bibtex
184
+ @article{https://doi.org/10.48550/arxiv.2209.11055,
185
+ doi = {10.48550/ARXIV.2209.11055},
186
+ url = {https://arxiv.org/abs/2209.11055},
187
+ author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
188
+ keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
189
+ title = {Efficient Few-Shot Learning Without Prompts},
190
+ publisher = {arXiv},
191
+ year = {2022},
192
+ copyright = {Creative Commons Attribution 4.0 International}
193
+ }
194
+ ```
195
+
196
+ <!--
197
+ ## Glossary
198
+
199
+ *Clearly define terms in order to be accessible across audiences.*
200
+ -->
201
+
202
+ <!--
203
+ ## Model Card Authors
204
+
205
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
206
+ -->
207
+
208
+ <!--
209
+ ## Model Card Contact
210
+
211
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
212
+ -->
config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "sentence-transformers/paraphrase-mpnet-base-v2",
3
+ "architectures": [
4
+ "MPNetModel"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "bos_token_id": 0,
8
+ "eos_token_id": 2,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 768,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 3072,
14
+ "layer_norm_eps": 1e-05,
15
+ "max_position_embeddings": 514,
16
+ "model_type": "mpnet",
17
+ "num_attention_heads": 12,
18
+ "num_hidden_layers": 12,
19
+ "pad_token_id": 1,
20
+ "relative_attention_num_buckets": 32,
21
+ "torch_dtype": "float32",
22
+ "transformers_version": "4.39.0",
23
+ "vocab_size": 30527
24
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__version__": {
3
+ "sentence_transformers": "3.0.1",
4
+ "transformers": "4.39.0",
5
+ "pytorch": "2.3.0+cu121"
6
+ },
7
+ "prompts": {},
8
+ "default_prompt_name": null,
9
+ "similarity_fn_name": null
10
+ }
config_setfit.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "labels": [
3
+ "no",
4
+ "yes"
5
+ ],
6
+ "normalize_embeddings": false
7
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65a75d6d9ca492d4352b3dc2013438a4050cf5ad1403194c5e6e170501d32d17
3
+ size 437967672
model_head.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:40e210b167663e9dfbf3951ba92518c8369ccd78b4c9fec40a3f34923196287a
3
+ size 7007
modules.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Transformer"
7
+ },
8
+ {
9
+ "idx": 1,
10
+ "name": "1",
11
+ "path": "1_Pooling",
12
+ "type": "sentence_transformers.models.Pooling"
13
+ }
14
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 512,
3
+ "do_lower_case": false
4
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "cls_token": {
10
+ "content": "<s>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "eos_token": {
17
+ "content": "</s>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "mask_token": {
24
+ "content": "<mask>",
25
+ "lstrip": true,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ },
30
+ "pad_token": {
31
+ "content": "<pad>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false
36
+ },
37
+ "sep_token": {
38
+ "content": "</s>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false
43
+ },
44
+ "unk_token": {
45
+ "content": "[UNK]",
46
+ "lstrip": false,
47
+ "normalized": false,
48
+ "rstrip": false,
49
+ "single_word": false
50
+ }
51
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<s>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "<pad>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "</s>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "104": {
28
+ "content": "[UNK]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "30526": {
36
+ "content": "<mask>",
37
+ "lstrip": true,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "bos_token": "<s>",
45
+ "clean_up_tokenization_spaces": true,
46
+ "cls_token": "<s>",
47
+ "do_basic_tokenize": true,
48
+ "do_lower_case": true,
49
+ "eos_token": "</s>",
50
+ "mask_token": "<mask>",
51
+ "model_max_length": 512,
52
+ "never_split": null,
53
+ "pad_token": "<pad>",
54
+ "sep_token": "</s>",
55
+ "strip_accents": null,
56
+ "tokenize_chinese_chars": true,
57
+ "tokenizer_class": "MPNetTokenizer",
58
+ "unk_token": "[UNK]"
59
+ }
vocab.txt ADDED
The diff for this file is too large to render. See raw diff