monkeypostulate commited on
Commit
1499ddf
·
verified ·
1 Parent(s): 506948b

Add new SparseEncoder model

Browse files
README.md ADDED
@@ -0,0 +1,537 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ tags:
6
+ - sentence-transformers
7
+ - sparse-encoder
8
+ - sparse
9
+ - asymmetric
10
+ - inference-free
11
+ - splade
12
+ - generated_from_trainer
13
+ - dataset_size:9000
14
+ - loss:SpladeLoss
15
+ - loss:SparseMultipleNegativesRankingLoss
16
+ - loss:FlopsLoss
17
+ - dataset_size:89000
18
+ base_model: distilbert/distilbert-base-uncased
19
+ widget:
20
+ - text: Blank Neoprene Water Bottle Coolies (Variety Color 10 Pack)
21
+ - text: Dream Spa 3-way 8-Setting Rainfall Shower Head and Handheld Shower Combo (Chrome).
22
+ Use Luxury 7-inch Rain Showerhead or 7-Function Hand Shower for Ultimate Spa Experience!
23
+ - text: ¿Está disponible el nuevo iPhone 7 Plus?
24
+ - text: Naipo Back Massager Massage Chair Vibrating Car Seat Cushion for Back, Neck,
25
+ and Thigh with 8 Motor Vibrations 4 Modes 3 Speed Heating at Home Office Car
26
+ - text: Pizuna 400 Thread Count Cotton Fitted-Sheet Queen Size White 1pc, 100% Long
27
+ Staple Cotton Sateen Fitted Bed Sheet With All Around Elastic Deep Pocket Queen
28
+ Sheets Fit Up to 15Inch (White Fitted Sheet)
29
+ pipeline_tag: feature-extraction
30
+ library_name: sentence-transformers
31
+ metrics:
32
+ - dot_accuracy@1
33
+ - dot_accuracy@3
34
+ - dot_accuracy@5
35
+ - dot_accuracy@10
36
+ - dot_precision@1
37
+ - dot_precision@3
38
+ - dot_precision@5
39
+ - dot_precision@10
40
+ - dot_recall@1
41
+ - dot_recall@3
42
+ - dot_recall@5
43
+ - dot_recall@10
44
+ - dot_ndcg@10
45
+ - dot_mrr@10
46
+ - dot_map@100
47
+ - query_active_dims
48
+ - query_sparsity_ratio
49
+ - corpus_active_dims
50
+ - corpus_sparsity_ratio
51
+ model-index:
52
+ - name: Inference-free SPLADE distilbert-base-uncased trained on Natural-Questions
53
+ tuples
54
+ results:
55
+ - task:
56
+ type: sparse-information-retrieval
57
+ name: Sparse Information Retrieval
58
+ dataset:
59
+ name: NanoMSMARCO
60
+ type: NanoMSMARCO
61
+ metrics:
62
+ - type: dot_accuracy@1
63
+ value: 0.3
64
+ name: Dot Accuracy@1
65
+ - type: dot_accuracy@3
66
+ value: 0.58
67
+ name: Dot Accuracy@3
68
+ - type: dot_accuracy@5
69
+ value: 0.66
70
+ name: Dot Accuracy@5
71
+ - type: dot_accuracy@10
72
+ value: 0.76
73
+ name: Dot Accuracy@10
74
+ - type: dot_precision@1
75
+ value: 0.3
76
+ name: Dot Precision@1
77
+ - type: dot_precision@3
78
+ value: 0.19333333333333336
79
+ name: Dot Precision@3
80
+ - type: dot_precision@5
81
+ value: 0.132
82
+ name: Dot Precision@5
83
+ - type: dot_precision@10
84
+ value: 0.07600000000000001
85
+ name: Dot Precision@10
86
+ - type: dot_recall@1
87
+ value: 0.3
88
+ name: Dot Recall@1
89
+ - type: dot_recall@3
90
+ value: 0.58
91
+ name: Dot Recall@3
92
+ - type: dot_recall@5
93
+ value: 0.66
94
+ name: Dot Recall@5
95
+ - type: dot_recall@10
96
+ value: 0.76
97
+ name: Dot Recall@10
98
+ - type: dot_ndcg@10
99
+ value: 0.5302210774188797
100
+ name: Dot Ndcg@10
101
+ - type: dot_mrr@10
102
+ value: 0.45638095238095233
103
+ name: Dot Mrr@10
104
+ - type: dot_map@100
105
+ value: 0.4675385567218492
106
+ name: Dot Map@100
107
+ - type: query_active_dims
108
+ value: 6.380000114440918
109
+ name: Query Active Dims
110
+ - type: query_sparsity_ratio
111
+ value: 0.9997909704437966
112
+ name: Query Sparsity Ratio
113
+ - type: corpus_active_dims
114
+ value: 813.6908569335938
115
+ name: Corpus Active Dims
116
+ - type: corpus_sparsity_ratio
117
+ value: 0.9733408408055306
118
+ name: Corpus Sparsity Ratio
119
+ ---
120
+
121
+ # Inference-free SPLADE distilbert-base-uncased trained on Natural-Questions tuples
122
+
123
+ This is a [Asymmetric Inference-free SPLADE Sparse Encoder](https://www.sbert.net/docs/sparse_encoder/usage/usage.html) model finetuned from [distilbert/distilbert-base-uncased](https://huggingface.co/distilbert/distilbert-base-uncased) using the [sentence-transformers](https://www.SBERT.net) library. It maps sentences & paragraphs to a 30522-dimensional sparse vector space and can be used for semantic search and sparse retrieval.
124
+ ## Model Details
125
+
126
+ ### Model Description
127
+ - **Model Type:** Asymmetric Inference-free SPLADE Sparse Encoder
128
+ - **Base model:** [distilbert/distilbert-base-uncased](https://huggingface.co/distilbert/distilbert-base-uncased) <!-- at revision 12040accade4e8a0f71eabdb258fecc2e7e948be -->
129
+ - **Maximum Sequence Length:** 512 tokens
130
+ - **Output Dimensionality:** 30522 dimensions
131
+ - **Similarity Function:** Dot Product
132
+ <!-- - **Training Dataset:** Unknown -->
133
+ - **Language:** en
134
+ - **License:** apache-2.0
135
+
136
+ ### Model Sources
137
+
138
+ - **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
139
+ - **Documentation:** [Sparse Encoder Documentation](https://www.sbert.net/docs/sparse_encoder/usage/usage.html)
140
+ - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
141
+ - **Hugging Face:** [Sparse Encoders on Hugging Face](https://huggingface.co/models?library=sentence-transformers&other=sparse-encoder)
142
+
143
+ ### Full Model Architecture
144
+
145
+ ```
146
+ SparseEncoder(
147
+ (0): Router(
148
+ (sub_modules): ModuleDict(
149
+ (query): Sequential(
150
+ (0): SparseStaticEmbedding({'frozen': False}, dim=30522, tokenizer=DistilBertTokenizerFast)
151
+ )
152
+ (document): Sequential(
153
+ (0): MLMTransformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'DistilBertForMaskedLM'})
154
+ (1): SpladePooling({'pooling_strategy': 'max', 'activation_function': 'relu', 'word_embedding_dimension': 30522})
155
+ )
156
+ )
157
+ )
158
+ )
159
+ ```
160
+
161
+ ## Usage
162
+
163
+ ### Direct Usage (Sentence Transformers)
164
+
165
+ First install the Sentence Transformers library:
166
+
167
+ ```bash
168
+ pip install -U sentence-transformers
169
+ ```
170
+
171
+ Then you can load this model and run inference.
172
+ ```python
173
+ from sentence_transformers import SparseEncoder
174
+
175
+ # Download from the 🤗 Hub
176
+ model = SparseEncoder("monkeypostulate/inference-free-splade-distilbert-base-uncased-nq")
177
+ # Run inference
178
+ queries = [
179
+ "\u00bfHay una s\u00e1bana de algod\u00f3n ajustada disponible en tama\u00f1o queen?",
180
+ ]
181
+ documents = [
182
+ 'Pizuna 400 Thread Count Cotton Fitted-Sheet Queen Size White 1pc, 100% Long Staple Cotton Sateen Fitted Bed Sheet With All Around Elastic Deep Pocket Queen Sheets Fit Up to 15Inch (White Fitted Sheet)',
183
+ 'ArtSocket Shower Curtain Teal Rustic Shabby Country Chic Blue Curtains Wood Rose Home Bathroom Decor Polyester Fabric Waterproof 72 x 72 Inches Set with Hooks',
184
+ 'AFARER Case Compatible with Samsung Galaxy S7 5.1 inch, Military Grade 12ft Drop Tested Protective Case with Kickstand,Military Armor Dual Layer Protective Cover - Blue',
185
+ ]
186
+ query_embeddings = model.encode_query(queries)
187
+ document_embeddings = model.encode_document(documents)
188
+ print(query_embeddings.shape, document_embeddings.shape)
189
+ # [1, 30522] [3, 30522]
190
+
191
+ # Get the similarity scores for the embeddings
192
+ similarities = model.similarity(query_embeddings, document_embeddings)
193
+ print(similarities)
194
+ # tensor([[13.2777, 7.2952, 2.9255]])
195
+ ```
196
+
197
+ <!--
198
+ ### Direct Usage (Transformers)
199
+
200
+ <details><summary>Click to see the direct usage in Transformers</summary>
201
+
202
+ </details>
203
+ -->
204
+
205
+ <!--
206
+ ### Downstream Usage (Sentence Transformers)
207
+
208
+ You can finetune this model on your own dataset.
209
+
210
+ <details><summary>Click to expand</summary>
211
+
212
+ </details>
213
+ -->
214
+
215
+ <!--
216
+ ### Out-of-Scope Use
217
+
218
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
219
+ -->
220
+
221
+ ## Evaluation
222
+
223
+ ### Metrics
224
+
225
+ #### Sparse Information Retrieval
226
+
227
+ * Dataset: `NanoMSMARCO`
228
+ * Evaluated with [<code>SparseInformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sparse_encoder/evaluation.html#sentence_transformers.sparse_encoder.evaluation.SparseInformationRetrievalEvaluator)
229
+
230
+ | Metric | Value |
231
+ |:----------------------|:-----------|
232
+ | dot_accuracy@1 | 0.3 |
233
+ | dot_accuracy@3 | 0.58 |
234
+ | dot_accuracy@5 | 0.66 |
235
+ | dot_accuracy@10 | 0.76 |
236
+ | dot_precision@1 | 0.3 |
237
+ | dot_precision@3 | 0.1933 |
238
+ | dot_precision@5 | 0.132 |
239
+ | dot_precision@10 | 0.076 |
240
+ | dot_recall@1 | 0.3 |
241
+ | dot_recall@3 | 0.58 |
242
+ | dot_recall@5 | 0.66 |
243
+ | dot_recall@10 | 0.76 |
244
+ | **dot_ndcg@10** | **0.5302** |
245
+ | dot_mrr@10 | 0.4564 |
246
+ | dot_map@100 | 0.4675 |
247
+ | query_active_dims | 6.38 |
248
+ | query_sparsity_ratio | 0.9998 |
249
+ | corpus_active_dims | 813.6909 |
250
+ | corpus_sparsity_ratio | 0.9733 |
251
+
252
+ <!--
253
+ ## Bias, Risks and Limitations
254
+
255
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
256
+ -->
257
+
258
+ <!--
259
+ ### Recommendations
260
+
261
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
262
+ -->
263
+
264
+ ## Training Details
265
+
266
+ ### Training Dataset
267
+
268
+ #### Unnamed Dataset
269
+
270
+ * Size: 89,000 training samples
271
+ * Columns: <code>query</code> and <code>document</code>
272
+ * Approximate statistics based on the first 1000 samples:
273
+ | | query | document |
274
+ |:--------|:----------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|
275
+ | type | string | string |
276
+ | details | <ul><li>min: 8 tokens</li><li>mean: 21.52 tokens</li><li>max: 44 tokens</li></ul> | <ul><li>min: 8 tokens</li><li>mean: 33.4 tokens</li><li>max: 93 tokens</li></ul> |
277
+ * Samples:
278
+ | query | document |
279
+ |:-------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
280
+ | <code>¿Hay una lámpara de colgar con batería disponible?</code> | <code>Farmhouse Plug in Pendant Light with On/Off Switch Wire Caged Hanging Pendant Lamp 16ft Cord</code> |
281
+ | <code>¿Hay leggings con bolsillos disponibles para mujeres?</code> | <code>IUGA High Waist Yoga Pants with Pockets, Tummy Control, Workout Pants for Women 4 Way Stretch Yoga Leggings with Pockets</code> |
282
+ | <code>¿Cuál es la tapa de oscuridad marrón disponible?</code> | <code>Thicken It 100% Scalp Coverage Hair Powder - DARK BROWN - Talc-Free .32 oz. Water Resistant Hair Loss Concealer. Naturally Thicker Than Hair Fibers & Spray Concealers</code> |
283
+ * Loss: [<code>SpladeLoss</code>](https://sbert.net/docs/package_reference/sparse_encoder/losses.html#spladeloss) with these parameters:
284
+ ```json
285
+ {
286
+ "loss": "SparseMultipleNegativesRankingLoss(scale=1.0, similarity_fct='dot_score', gather_across_devices=False)",
287
+ "document_regularizer_weight": 0.003,
288
+ "query_regularizer_weight": 0
289
+ }
290
+ ```
291
+
292
+ ### Evaluation Dataset
293
+
294
+ #### Unnamed Dataset
295
+
296
+ * Size: 1,000 evaluation samples
297
+ * Columns: <code>query</code> and <code>document</code>
298
+ * Approximate statistics based on the first 1000 samples:
299
+ | | query | document |
300
+ |:--------|:----------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|
301
+ | type | string | string |
302
+ | details | <ul><li>min: 8 tokens</li><li>mean: 20.94 tokens</li><li>max: 40 tokens</li></ul> | <ul><li>min: 8 tokens</li><li>mean: 33.09 tokens</li><li>max: 79 tokens</li></ul> |
303
+ * Samples:
304
+ | query | document |
305
+ |:-------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
306
+ | <code>¿Qué es un modelo anatómico del corazón?</code> | <code>Axis Scientific Heart Model, 2-Part Deluxe Life Size Human Heart Replica with 34 Anatomical Structures, Held Together with Magnets, Includes Mounted Display Base, Detailed Product Manual and Warranty</code> |
307
+ | <code>¿Hay un buscador de peces portátil disponible?</code> | <code>HawkEye Fishtrax 1C Fish Finder with HD Color Virtuview Display, Black/Red, 2" H x 1.6" W Screen Size</code> |
308
+ | <code>¿Hay un disfraz de Anna adulta de Frozen disponible para comprar?</code> | <code>Mitef Anime Cosplay Costume Princess Anna Fancy Dress with Shawl for Adult, L</code> |
309
+ * Loss: [<code>SpladeLoss</code>](https://sbert.net/docs/package_reference/sparse_encoder/losses.html#spladeloss) with these parameters:
310
+ ```json
311
+ {
312
+ "loss": "SparseMultipleNegativesRankingLoss(scale=1.0, similarity_fct='dot_score', gather_across_devices=False)",
313
+ "document_regularizer_weight": 0.003,
314
+ "query_regularizer_weight": 0
315
+ }
316
+ ```
317
+
318
+ ### Training Hyperparameters
319
+ #### Non-Default Hyperparameters
320
+
321
+ - `eval_strategy`: steps
322
+ - `per_device_train_batch_size`: 256
323
+ - `per_device_eval_batch_size`: 256
324
+ - `learning_rate`: 2e-05
325
+ - `warmup_ratio`: 0.1
326
+ - `batch_sampler`: no_duplicates
327
+ - `router_mapping`: {'query': 'query', 'answer': 'document'}
328
+
329
+ #### All Hyperparameters
330
+ <details><summary>Click to expand</summary>
331
+
332
+ - `overwrite_output_dir`: False
333
+ - `do_predict`: False
334
+ - `eval_strategy`: steps
335
+ - `prediction_loss_only`: True
336
+ - `per_device_train_batch_size`: 256
337
+ - `per_device_eval_batch_size`: 256
338
+ - `per_gpu_train_batch_size`: None
339
+ - `per_gpu_eval_batch_size`: None
340
+ - `gradient_accumulation_steps`: 1
341
+ - `eval_accumulation_steps`: None
342
+ - `torch_empty_cache_steps`: None
343
+ - `learning_rate`: 2e-05
344
+ - `weight_decay`: 0.0
345
+ - `adam_beta1`: 0.9
346
+ - `adam_beta2`: 0.999
347
+ - `adam_epsilon`: 1e-08
348
+ - `max_grad_norm`: 1.0
349
+ - `num_train_epochs`: 3
350
+ - `max_steps`: -1
351
+ - `lr_scheduler_type`: linear
352
+ - `lr_scheduler_kwargs`: {}
353
+ - `warmup_ratio`: 0.1
354
+ - `warmup_steps`: 0
355
+ - `log_level`: passive
356
+ - `log_level_replica`: warning
357
+ - `log_on_each_node`: True
358
+ - `logging_nan_inf_filter`: True
359
+ - `save_safetensors`: True
360
+ - `save_on_each_node`: False
361
+ - `save_only_model`: False
362
+ - `restore_callback_states_from_checkpoint`: False
363
+ - `no_cuda`: False
364
+ - `use_cpu`: False
365
+ - `use_mps_device`: False
366
+ - `seed`: 42
367
+ - `data_seed`: None
368
+ - `jit_mode_eval`: False
369
+ - `use_ipex`: False
370
+ - `bf16`: False
371
+ - `fp16`: False
372
+ - `fp16_opt_level`: O1
373
+ - `half_precision_backend`: auto
374
+ - `bf16_full_eval`: False
375
+ - `fp16_full_eval`: False
376
+ - `tf32`: None
377
+ - `local_rank`: 0
378
+ - `ddp_backend`: None
379
+ - `tpu_num_cores`: None
380
+ - `tpu_metrics_debug`: False
381
+ - `debug`: []
382
+ - `dataloader_drop_last`: False
383
+ - `dataloader_num_workers`: 0
384
+ - `dataloader_prefetch_factor`: None
385
+ - `past_index`: -1
386
+ - `disable_tqdm`: False
387
+ - `remove_unused_columns`: True
388
+ - `label_names`: None
389
+ - `load_best_model_at_end`: False
390
+ - `ignore_data_skip`: False
391
+ - `fsdp`: []
392
+ - `fsdp_min_num_params`: 0
393
+ - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
394
+ - `fsdp_transformer_layer_cls_to_wrap`: None
395
+ - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
396
+ - `deepspeed`: None
397
+ - `label_smoothing_factor`: 0.0
398
+ - `optim`: adamw_torch_fused
399
+ - `optim_args`: None
400
+ - `adafactor`: False
401
+ - `group_by_length`: False
402
+ - `length_column_name`: length
403
+ - `ddp_find_unused_parameters`: None
404
+ - `ddp_bucket_cap_mb`: None
405
+ - `ddp_broadcast_buffers`: False
406
+ - `dataloader_pin_memory`: True
407
+ - `dataloader_persistent_workers`: False
408
+ - `skip_memory_metrics`: True
409
+ - `use_legacy_prediction_loop`: False
410
+ - `push_to_hub`: False
411
+ - `resume_from_checkpoint`: None
412
+ - `hub_model_id`: None
413
+ - `hub_strategy`: every_save
414
+ - `hub_private_repo`: None
415
+ - `hub_always_push`: False
416
+ - `hub_revision`: None
417
+ - `gradient_checkpointing`: False
418
+ - `gradient_checkpointing_kwargs`: None
419
+ - `include_inputs_for_metrics`: False
420
+ - `include_for_metrics`: []
421
+ - `eval_do_concat_batches`: True
422
+ - `fp16_backend`: auto
423
+ - `push_to_hub_model_id`: None
424
+ - `push_to_hub_organization`: None
425
+ - `mp_parameters`:
426
+ - `auto_find_batch_size`: False
427
+ - `full_determinism`: False
428
+ - `torchdynamo`: None
429
+ - `ray_scope`: last
430
+ - `ddp_timeout`: 1800
431
+ - `torch_compile`: False
432
+ - `torch_compile_backend`: None
433
+ - `torch_compile_mode`: None
434
+ - `include_tokens_per_second`: False
435
+ - `include_num_input_tokens_seen`: False
436
+ - `neftune_noise_alpha`: None
437
+ - `optim_target_modules`: None
438
+ - `batch_eval_metrics`: False
439
+ - `eval_on_start`: False
440
+ - `use_liger_kernel`: False
441
+ - `liger_kernel_config`: None
442
+ - `eval_use_gather_object`: False
443
+ - `average_tokens_across_devices`: False
444
+ - `prompts`: None
445
+ - `batch_sampler`: no_duplicates
446
+ - `multi_dataset_batch_sampler`: proportional
447
+ - `router_mapping`: {'query': 'query', 'answer': 'document'}
448
+ - `learning_rate_mapping`: {}
449
+
450
+ </details>
451
+
452
+ ### Training Logs
453
+ | Epoch | Step | Training Loss | NanoMSMARCO_dot_ndcg@10 |
454
+ |:------:|:----:|:-------------:|:-----------------------:|
455
+ | 0.5747 | 200 | 3.33 | - |
456
+ | 1.1494 | 400 | 2.755 | - |
457
+ | -1 | -1 | - | 0.5302 |
458
+
459
+
460
+ ### Framework Versions
461
+ - Python: 3.9.6
462
+ - Sentence Transformers: 5.1.0
463
+ - Transformers: 4.55.0
464
+ - PyTorch: 2.8.0
465
+ - Accelerate: 1.10.0
466
+ - Datasets: 4.0.0
467
+ - Tokenizers: 0.21.4
468
+
469
+ ## Citation
470
+
471
+ ### BibTeX
472
+
473
+ #### Sentence Transformers
474
+ ```bibtex
475
+ @inproceedings{reimers-2019-sentence-bert,
476
+ title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
477
+ author = "Reimers, Nils and Gurevych, Iryna",
478
+ booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
479
+ month = "11",
480
+ year = "2019",
481
+ publisher = "Association for Computational Linguistics",
482
+ url = "https://arxiv.org/abs/1908.10084",
483
+ }
484
+ ```
485
+
486
+ #### SpladeLoss
487
+ ```bibtex
488
+ @misc{formal2022distillationhardnegativesampling,
489
+ title={From Distillation to Hard Negative Sampling: Making Sparse Neural IR Models More Effective},
490
+ author={Thibault Formal and Carlos Lassance and Benjamin Piwowarski and Stéphane Clinchant},
491
+ year={2022},
492
+ eprint={2205.04733},
493
+ archivePrefix={arXiv},
494
+ primaryClass={cs.IR},
495
+ url={https://arxiv.org/abs/2205.04733},
496
+ }
497
+ ```
498
+
499
+ #### SparseMultipleNegativesRankingLoss
500
+ ```bibtex
501
+ @misc{henderson2017efficient,
502
+ title={Efficient Natural Language Response Suggestion for Smart Reply},
503
+ author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
504
+ year={2017},
505
+ eprint={1705.00652},
506
+ archivePrefix={arXiv},
507
+ primaryClass={cs.CL}
508
+ }
509
+ ```
510
+
511
+ #### FlopsLoss
512
+ ```bibtex
513
+ @article{paria2020minimizing,
514
+ title={Minimizing flops to learn efficient sparse representations},
515
+ author={Paria, Biswajit and Yeh, Chih-Kuan and Yen, Ian EH and Xu, Ning and Ravikumar, Pradeep and P{'o}czos, Barnab{'a}s},
516
+ journal={arXiv preprint arXiv:2004.05665},
517
+ year={2020}
518
+ }
519
+ ```
520
+
521
+ <!--
522
+ ## Glossary
523
+
524
+ *Clearly define terms in order to be accessible across audiences.*
525
+ -->
526
+
527
+ <!--
528
+ ## Model Card Authors
529
+
530
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
531
+ -->
532
+
533
+ <!--
534
+ ## Model Card Contact
535
+
536
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
537
+ -->
config_sentence_transformers.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "SparseEncoder",
3
+ "__version__": {
4
+ "sentence_transformers": "5.1.0",
5
+ "transformers": "4.55.0",
6
+ "pytorch": "2.8.0"
7
+ },
8
+ "prompts": {
9
+ "query": "",
10
+ "document": ""
11
+ },
12
+ "default_prompt_name": null,
13
+ "similarity_fn_name": "dot"
14
+ }
document_0_MLMTransformer/config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "activation": "gelu",
3
+ "architectures": [
4
+ "DistilBertForMaskedLM"
5
+ ],
6
+ "attention_dropout": 0.1,
7
+ "dim": 768,
8
+ "dropout": 0.1,
9
+ "hidden_dim": 3072,
10
+ "initializer_range": 0.02,
11
+ "max_position_embeddings": 512,
12
+ "model_type": "distilbert",
13
+ "n_heads": 12,
14
+ "n_layers": 6,
15
+ "pad_token_id": 0,
16
+ "qa_dropout": 0.1,
17
+ "seq_classif_dropout": 0.2,
18
+ "sinusoidal_pos_embds": false,
19
+ "tie_weights_": true,
20
+ "torch_dtype": "float32",
21
+ "transformers_version": "4.55.0",
22
+ "vocab_size": 30522
23
+ }
document_0_MLMTransformer/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be0e44d5d6bbf9e553d89e57c178f6c1b539962df9ab0d8e8bbe584a576f7555
3
+ size 267954768
document_0_MLMTransformer/sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 512,
3
+ "do_lower_case": false
4
+ }
document_0_MLMTransformer/special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
document_0_MLMTransformer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
document_0_MLMTransformer/tokenizer_config.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "[PAD]",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "100": {
12
+ "content": "[UNK]",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "101": {
20
+ "content": "[CLS]",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "102": {
28
+ "content": "[SEP]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "103": {
36
+ "content": "[MASK]",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "clean_up_tokenization_spaces": false,
45
+ "cls_token": "[CLS]",
46
+ "do_lower_case": true,
47
+ "extra_special_tokens": {},
48
+ "mask_token": "[MASK]",
49
+ "model_max_length": 512,
50
+ "pad_token": "[PAD]",
51
+ "sep_token": "[SEP]",
52
+ "strip_accents": null,
53
+ "tokenize_chinese_chars": true,
54
+ "tokenizer_class": "DistilBertTokenizer",
55
+ "unk_token": "[UNK]"
56
+ }
document_0_MLMTransformer/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
document_1_SpladePooling/config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "pooling_strategy": "max",
3
+ "activation_function": "relu",
4
+ "word_embedding_dimension": 30522
5
+ }
modules.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Router"
7
+ }
8
+ ]
query_0_SparseStaticEmbedding/config.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "frozen": false
3
+ }
query_0_SparseStaticEmbedding/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ebdac66a6b9e9ca8e50bfaa3191bc4b6a88f0b1d1f2bb6c2f7346138efa7b5f
3
+ size 122168
query_0_SparseStaticEmbedding/special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
query_0_SparseStaticEmbedding/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
query_0_SparseStaticEmbedding/tokenizer_config.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "[PAD]",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "100": {
12
+ "content": "[UNK]",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "101": {
20
+ "content": "[CLS]",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "102": {
28
+ "content": "[SEP]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "103": {
36
+ "content": "[MASK]",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "clean_up_tokenization_spaces": false,
45
+ "cls_token": "[CLS]",
46
+ "do_lower_case": true,
47
+ "extra_special_tokens": {},
48
+ "mask_token": "[MASK]",
49
+ "model_max_length": 512,
50
+ "pad_token": "[PAD]",
51
+ "sep_token": "[SEP]",
52
+ "strip_accents": null,
53
+ "tokenize_chinese_chars": true,
54
+ "tokenizer_class": "DistilBertTokenizer",
55
+ "unk_token": "[UNK]"
56
+ }
query_0_SparseStaticEmbedding/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
router_config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "types": {
3
+ "query_0_SparseStaticEmbedding": "sentence_transformers.sparse_encoder.models.SparseStaticEmbedding.SparseStaticEmbedding",
4
+ "document_0_MLMTransformer": "sentence_transformers.sparse_encoder.models.MLMTransformer.MLMTransformer",
5
+ "document_1_SpladePooling": "sentence_transformers.sparse_encoder.models.SpladePooling.SpladePooling"
6
+ },
7
+ "structure": {
8
+ "query": [
9
+ "query_0_SparseStaticEmbedding"
10
+ ],
11
+ "document": [
12
+ "document_0_MLMTransformer",
13
+ "document_1_SpladePooling"
14
+ ]
15
+ },
16
+ "parameters": {
17
+ "default_route": "document",
18
+ "allow_empty_key": true
19
+ }
20
+ }