ayushexel commited on
Commit
4190c18
·
verified ·
1 Parent(s): 6e3cea9

Add new SentenceTransformer model

Browse files
1_Dense/config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"in_features": 384, "out_features": 128, "bias": false, "activation_function": "torch.nn.modules.linear.Identity"}
1_Dense/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:30a1b40c47289459d3087884d9706d2c8a2bab239ecf1b1dd07b3d1781065c21
3
+ size 196696
README.md ADDED
@@ -0,0 +1,702 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - ColBERT
4
+ - PyLate
5
+ - sentence-transformers
6
+ - sentence-similarity
7
+ - feature-extraction
8
+ - generated_from_trainer
9
+ - dataset_size:5679484
10
+ - loss:Contrastive
11
+ base_model: nreimers/MiniLM-L6-H384-uncased
12
+ pipeline_tag: sentence-similarity
13
+ library_name: PyLate
14
+ metrics:
15
+ - accuracy
16
+ model-index:
17
+ - name: PyLate model based on nreimers/MiniLM-L6-H384-uncased
18
+ results:
19
+ - task:
20
+ type: col-berttriplet
21
+ name: Col BERTTriplet
22
+ dataset:
23
+ name: Unknown
24
+ type: unknown
25
+ metrics:
26
+ - type: accuracy
27
+ value: 0.4773999750614166
28
+ name: Accuracy
29
+ ---
30
+
31
+ # PyLate model based on nreimers/MiniLM-L6-H384-uncased
32
+
33
+ This is a [PyLate](https://github.com/lightonai/pylate) model finetuned from [nreimers/MiniLM-L6-H384-uncased](https://huggingface.co/nreimers/MiniLM-L6-H384-uncased). It maps sentences & paragraphs to sequences of 128-dimensional dense vectors and can be used for semantic textual similarity using the MaxSim operator.
34
+
35
+ ## Model Details
36
+
37
+ ### Model Description
38
+ - **Model Type:** PyLate model
39
+ - **Base model:** [nreimers/MiniLM-L6-H384-uncased](https://huggingface.co/nreimers/MiniLM-L6-H384-uncased) <!-- at revision 3276f0fac9d818781d7a1327b3ff818fc4e643c0 -->
40
+ - **Document Length:** 180 tokens
41
+ - **Query Length:** 32 tokens
42
+ - **Output Dimensionality:** 128 tokens
43
+ - **Similarity Function:** MaxSim
44
+ <!-- - **Training Dataset:** Unknown -->
45
+ <!-- - **Language:** Unknown -->
46
+ <!-- - **License:** Unknown -->
47
+
48
+ ### Model Sources
49
+
50
+ - **Documentation:** [PyLate Documentation](https://lightonai.github.io/pylate/)
51
+ - **Repository:** [PyLate on GitHub](https://github.com/lightonai/pylate)
52
+ - **Hugging Face:** [PyLate models on Hugging Face](https://huggingface.co/models?library=PyLate)
53
+
54
+ ### Full Model Architecture
55
+
56
+ ```
57
+ ColBERT(
58
+ (0): Transformer({'max_seq_length': 179, 'do_lower_case': False}) with Transformer model: BertModel
59
+ (1): Dense({'in_features': 384, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
60
+ )
61
+ ```
62
+
63
+ ## Usage
64
+ First install the PyLate library:
65
+
66
+ ```bash
67
+ pip install -U pylate
68
+ ```
69
+
70
+ ### Retrieval
71
+
72
+ PyLate provides a streamlined interface to index and retrieve documents using ColBERT models. The index leverages the Voyager HNSW index to efficiently handle document embeddings and enable fast retrieval.
73
+
74
+ #### Indexing documents
75
+
76
+ First, load the ColBERT model and initialize the Voyager index, then encode and index your documents:
77
+
78
+ ```python
79
+ from pylate import indexes, models, retrieve
80
+
81
+ # Step 1: Load the ColBERT model
82
+ model = models.ColBERT(
83
+ model_name_or_path=ayushexel/colbert-MiniLM-L6-H384-uncased-3-neg-1-epoch-gooaq-1995000,
84
+ )
85
+
86
+ # Step 2: Initialize the Voyager index
87
+ index = indexes.Voyager(
88
+ index_folder="pylate-index",
89
+ index_name="index",
90
+ override=True, # This overwrites the existing index if any
91
+ )
92
+
93
+ # Step 3: Encode the documents
94
+ documents_ids = ["1", "2", "3"]
95
+ documents = ["document 1 text", "document 2 text", "document 3 text"]
96
+
97
+ documents_embeddings = model.encode(
98
+ documents,
99
+ batch_size=32,
100
+ is_query=False, # Ensure that it is set to False to indicate that these are documents, not queries
101
+ show_progress_bar=True,
102
+ )
103
+
104
+ # Step 4: Add document embeddings to the index by providing embeddings and corresponding ids
105
+ index.add_documents(
106
+ documents_ids=documents_ids,
107
+ documents_embeddings=documents_embeddings,
108
+ )
109
+ ```
110
+
111
+ Note that you do not have to recreate the index and encode the documents every time. Once you have created an index and added the documents, you can re-use the index later by loading it:
112
+
113
+ ```python
114
+ # To load an index, simply instantiate it with the correct folder/name and without overriding it
115
+ index = indexes.Voyager(
116
+ index_folder="pylate-index",
117
+ index_name="index",
118
+ )
119
+ ```
120
+
121
+ #### Retrieving top-k documents for queries
122
+
123
+ Once the documents are indexed, you can retrieve the top-k most relevant documents for a given set of queries.
124
+ To do so, initialize the ColBERT retriever with the index you want to search in, encode the queries and then retrieve the top-k documents to get the top matches ids and relevance scores:
125
+
126
+ ```python
127
+ # Step 1: Initialize the ColBERT retriever
128
+ retriever = retrieve.ColBERT(index=index)
129
+
130
+ # Step 2: Encode the queries
131
+ queries_embeddings = model.encode(
132
+ ["query for document 3", "query for document 1"],
133
+ batch_size=32,
134
+ is_query=True, # # Ensure that it is set to False to indicate that these are queries
135
+ show_progress_bar=True,
136
+ )
137
+
138
+ # Step 3: Retrieve top-k documents
139
+ scores = retriever.retrieve(
140
+ queries_embeddings=queries_embeddings,
141
+ k=10, # Retrieve the top 10 matches for each query
142
+ )
143
+ ```
144
+
145
+ ### Reranking
146
+ If you only want to use the ColBERT model to perform reranking on top of your first-stage retrieval pipeline without building an index, you can simply use rank function and pass the queries and documents to rerank:
147
+
148
+ ```python
149
+ from pylate import rank, models
150
+
151
+ queries = [
152
+ "query A",
153
+ "query B",
154
+ ]
155
+
156
+ documents = [
157
+ ["document A", "document B"],
158
+ ["document 1", "document C", "document B"],
159
+ ]
160
+
161
+ documents_ids = [
162
+ [1, 2],
163
+ [1, 3, 2],
164
+ ]
165
+
166
+ model = models.ColBERT(
167
+ model_name_or_path=ayushexel/colbert-MiniLM-L6-H384-uncased-3-neg-1-epoch-gooaq-1995000,
168
+ )
169
+
170
+ queries_embeddings = model.encode(
171
+ queries,
172
+ is_query=True,
173
+ )
174
+
175
+ documents_embeddings = model.encode(
176
+ documents,
177
+ is_query=False,
178
+ )
179
+
180
+ reranked_documents = rank.rerank(
181
+ documents_ids=documents_ids,
182
+ queries_embeddings=queries_embeddings,
183
+ documents_embeddings=documents_embeddings,
184
+ )
185
+ ```
186
+
187
+ <!--
188
+ ### Direct Usage (Transformers)
189
+
190
+ <details><summary>Click to see the direct usage in Transformers</summary>
191
+
192
+ </details>
193
+ -->
194
+
195
+ <!--
196
+ ### Downstream Usage (Sentence Transformers)
197
+
198
+ You can finetune this model on your own dataset.
199
+
200
+ <details><summary>Click to expand</summary>
201
+
202
+ </details>
203
+ -->
204
+
205
+ <!--
206
+ ### Out-of-Scope Use
207
+
208
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
209
+ -->
210
+
211
+ ## Evaluation
212
+
213
+ ### Metrics
214
+
215
+ #### Col BERTTriplet
216
+
217
+ * Evaluated with <code>pylate.evaluation.colbert_triplet.ColBERTTripletEvaluator</code>
218
+
219
+ | Metric | Value |
220
+ |:-------------|:-----------|
221
+ | **accuracy** | **0.4774** |
222
+
223
+ <!--
224
+ ## Bias, Risks and Limitations
225
+
226
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
227
+ -->
228
+
229
+ <!--
230
+ ### Recommendations
231
+
232
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
233
+ -->
234
+
235
+ ## Training Details
236
+
237
+ ### Training Dataset
238
+
239
+ #### Unnamed Dataset
240
+
241
+
242
+ * Size: 5,679,484 training samples
243
+ * Columns: <code>question</code>, <code>answer</code>, and <code>negative</code>
244
+ * Approximate statistics based on the first 1000 samples:
245
+ | | question | answer | negative |
246
+ |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|
247
+ | type | string | string | string |
248
+ | details | <ul><li>min: 9 tokens</li><li>mean: 12.97 tokens</li><li>max: 21 tokens</li></ul> | <ul><li>min: 20 tokens</li><li>mean: 31.84 tokens</li><li>max: 32 tokens</li></ul> | <ul><li>min: 16 tokens</li><li>mean: 31.64 tokens</li><li>max: 32 tokens</li></ul> |
249
+ * Samples:
250
+ | question | answer | negative |
251
+ |:----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
252
+ | <code>can i use bluetooth headphones for xbox one?</code> | <code>Headsets cannot be connected to any third party wireless controller. Headsets need to be connected to the Xbox one controller in order to function. The Xbox one console doesn't have a Bluetooth feature. Hence the headsets cannot be connected via Bluetooth.</code> | <code>You can connect Bluetooth headphones to a PS4, but only if they are compatible with the PS4. Most standard Bluetooth headphones are not compatible with the PS4, so you will need to make sure you have Bluetooth headphones that are specifically geared to the PS4.</code> |
253
+ | <code>can i use bluetooth headphones for xbox one?</code> | <code>Headsets cannot be connected to any third party wireless controller. Headsets need to be connected to the Xbox one controller in order to function. The Xbox one console doesn't have a Bluetooth feature. Hence the headsets cannot be connected via Bluetooth.</code> | <code>Summary – how to pair Sony Bluetooth headphones Tap and hold the Power button on the headphones for 7 seconds to put your Sony Bluetooth headphones into pairing mode. Tap the Settings icon on your iPhone. Select the Bluetooth option. Select your headphones from the list of devices, then wait for it to say “Connected.”</code> |
254
+ | <code>can i use bluetooth headphones for xbox one?</code> | <code>Headsets cannot be connected to any third party wireless controller. Headsets need to be connected to the Xbox one controller in order to function. The Xbox one console doesn't have a Bluetooth feature. Hence the headsets cannot be connected via Bluetooth.</code> | <code>You can only pair one Bluetooth headphone or soundbar and one other Bluetooth device to the TV at the same time, but not two Bluetooth headphones or soundbars at the same time.</code> |
255
+ * Loss: <code>pylate.losses.contrastive.Contrastive</code>
256
+
257
+ ### Evaluation Dataset
258
+
259
+ #### Unnamed Dataset
260
+
261
+
262
+ * Size: 5,000 evaluation samples
263
+ * Columns: <code>question</code>, <code>answer</code>, and <code>negative_1</code>
264
+ * Approximate statistics based on the first 1000 samples:
265
+ | | question | answer | negative_1 |
266
+ |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|
267
+ | type | string | string | string |
268
+ | details | <ul><li>min: 9 tokens</li><li>mean: 12.83 tokens</li><li>max: 23 tokens</li></ul> | <ul><li>min: 13 tokens</li><li>mean: 31.71 tokens</li><li>max: 32 tokens</li></ul> | <ul><li>min: 11 tokens</li><li>mean: 31.37 tokens</li><li>max: 32 tokens</li></ul> |
269
+ * Samples:
270
+ | question | answer | negative_1 |
271
+ |:------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
272
+ | <code>what is controlled by the peripheral nervous system?</code> | <code>The efferent nerves of the somatic nervous system of the PNS is responsible for voluntary, conscious control of skeletal muscles (effector organ) using motor (efferent) nerves. The efferent nerves of the autonomic (visceral) nervous system control the visceral functions of the body.</code> | <code>Which of the following is not a part of peripheral nervous system? Explanation: Peripheral nervous system lies outside the brain and spinal cord. Spinal cord is not a part of peripheral nervous system.</code> |
273
+ | <code>is cold water good to drink in the morning?</code> | <code>This is probably because drinking cold water makes it easier for your body to maintain a lower core temperature. Drinking plain water, no matter the temperature, has been proven to give your body more energy throughout the day.</code> | <code>What Are Benefits of It Cold? Drinking water cold is beneficial because it tastes better and you are more likely to drink more of it. Cold lemon water tastes delicious and so you are more likely to drink more of it.</code> |
274
+ | <code>how to get rid of fungal nail quickly?</code> | <code>According to a 2016 review, thymol has antifungal and antibacterial properties. To treat toenail fungus, apply oregano oil to the affected nail twice daily with a cotton swab. Some people use oregano oil and tea tree oil together.</code> | <code>With treatment, many people can get rid of nail fungus. Even when the fungus clears, your nail(s) may look unhealthy until the infected nail grows out. A fingernail grows out in 4 to 6 months and a toenail in 12 to 18 months.</code> |
275
+ * Loss: <code>pylate.losses.contrastive.Contrastive</code>
276
+
277
+ ### Training Hyperparameters
278
+ #### Non-Default Hyperparameters
279
+
280
+ - `eval_strategy`: steps
281
+ - `per_device_train_batch_size`: 128
282
+ - `per_device_eval_batch_size`: 128
283
+ - `learning_rate`: 3e-06
284
+ - `num_train_epochs`: 1
285
+ - `warmup_ratio`: 0.1
286
+ - `seed`: 12
287
+ - `bf16`: True
288
+ - `dataloader_num_workers`: 12
289
+ - `load_best_model_at_end`: True
290
+
291
+ #### All Hyperparameters
292
+ <details><summary>Click to expand</summary>
293
+
294
+ - `overwrite_output_dir`: False
295
+ - `do_predict`: False
296
+ - `eval_strategy`: steps
297
+ - `prediction_loss_only`: True
298
+ - `per_device_train_batch_size`: 128
299
+ - `per_device_eval_batch_size`: 128
300
+ - `per_gpu_train_batch_size`: None
301
+ - `per_gpu_eval_batch_size`: None
302
+ - `gradient_accumulation_steps`: 1
303
+ - `eval_accumulation_steps`: None
304
+ - `torch_empty_cache_steps`: None
305
+ - `learning_rate`: 3e-06
306
+ - `weight_decay`: 0.0
307
+ - `adam_beta1`: 0.9
308
+ - `adam_beta2`: 0.999
309
+ - `adam_epsilon`: 1e-08
310
+ - `max_grad_norm`: 1.0
311
+ - `num_train_epochs`: 1
312
+ - `max_steps`: -1
313
+ - `lr_scheduler_type`: linear
314
+ - `lr_scheduler_kwargs`: {}
315
+ - `warmup_ratio`: 0.1
316
+ - `warmup_steps`: 0
317
+ - `log_level`: passive
318
+ - `log_level_replica`: warning
319
+ - `log_on_each_node`: True
320
+ - `logging_nan_inf_filter`: True
321
+ - `save_safetensors`: True
322
+ - `save_on_each_node`: False
323
+ - `save_only_model`: False
324
+ - `restore_callback_states_from_checkpoint`: False
325
+ - `no_cuda`: False
326
+ - `use_cpu`: False
327
+ - `use_mps_device`: False
328
+ - `seed`: 12
329
+ - `data_seed`: None
330
+ - `jit_mode_eval`: False
331
+ - `use_ipex`: False
332
+ - `bf16`: True
333
+ - `fp16`: False
334
+ - `fp16_opt_level`: O1
335
+ - `half_precision_backend`: auto
336
+ - `bf16_full_eval`: False
337
+ - `fp16_full_eval`: False
338
+ - `tf32`: None
339
+ - `local_rank`: 0
340
+ - `ddp_backend`: None
341
+ - `tpu_num_cores`: None
342
+ - `tpu_metrics_debug`: False
343
+ - `debug`: []
344
+ - `dataloader_drop_last`: False
345
+ - `dataloader_num_workers`: 12
346
+ - `dataloader_prefetch_factor`: None
347
+ - `past_index`: -1
348
+ - `disable_tqdm`: False
349
+ - `remove_unused_columns`: True
350
+ - `label_names`: None
351
+ - `load_best_model_at_end`: True
352
+ - `ignore_data_skip`: False
353
+ - `fsdp`: []
354
+ - `fsdp_min_num_params`: 0
355
+ - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
356
+ - `fsdp_transformer_layer_cls_to_wrap`: None
357
+ - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
358
+ - `deepspeed`: None
359
+ - `label_smoothing_factor`: 0.0
360
+ - `optim`: adamw_torch
361
+ - `optim_args`: None
362
+ - `adafactor`: False
363
+ - `group_by_length`: False
364
+ - `length_column_name`: length
365
+ - `ddp_find_unused_parameters`: None
366
+ - `ddp_bucket_cap_mb`: None
367
+ - `ddp_broadcast_buffers`: False
368
+ - `dataloader_pin_memory`: True
369
+ - `dataloader_persistent_workers`: False
370
+ - `skip_memory_metrics`: True
371
+ - `use_legacy_prediction_loop`: False
372
+ - `push_to_hub`: False
373
+ - `resume_from_checkpoint`: None
374
+ - `hub_model_id`: None
375
+ - `hub_strategy`: every_save
376
+ - `hub_private_repo`: None
377
+ - `hub_always_push`: False
378
+ - `gradient_checkpointing`: False
379
+ - `gradient_checkpointing_kwargs`: None
380
+ - `include_inputs_for_metrics`: False
381
+ - `include_for_metrics`: []
382
+ - `eval_do_concat_batches`: True
383
+ - `fp16_backend`: auto
384
+ - `push_to_hub_model_id`: None
385
+ - `push_to_hub_organization`: None
386
+ - `mp_parameters`:
387
+ - `auto_find_batch_size`: False
388
+ - `full_determinism`: False
389
+ - `torchdynamo`: None
390
+ - `ray_scope`: last
391
+ - `ddp_timeout`: 1800
392
+ - `torch_compile`: False
393
+ - `torch_compile_backend`: None
394
+ - `torch_compile_mode`: None
395
+ - `dispatch_batches`: None
396
+ - `split_batches`: None
397
+ - `include_tokens_per_second`: False
398
+ - `include_num_input_tokens_seen`: False
399
+ - `neftune_noise_alpha`: None
400
+ - `optim_target_modules`: None
401
+ - `batch_eval_metrics`: False
402
+ - `eval_on_start`: False
403
+ - `use_liger_kernel`: False
404
+ - `eval_use_gather_object`: False
405
+ - `average_tokens_across_devices`: False
406
+ - `prompts`: None
407
+ - `batch_sampler`: batch_sampler
408
+ - `multi_dataset_batch_sampler`: proportional
409
+
410
+ </details>
411
+
412
+ ### Training Logs
413
+ <details><summary>Click to expand</summary>
414
+
415
+ | Epoch | Step | Training Loss | Validation Loss | accuracy |
416
+ |:----------:|:---------:|:-------------:|:---------------:|:--------:|
417
+ | 0 | 0 | - | - | 0.3568 |
418
+ | 0.0000 | 1 | 10.0066 | - | - |
419
+ | 0.0045 | 200 | 9.562 | - | - |
420
+ | 0.0090 | 400 | 8.6749 | - | - |
421
+ | 0.0135 | 600 | 6.7475 | - | - |
422
+ | 0.0180 | 800 | 4.9203 | - | - |
423
+ | 0.0225 | 1000 | 3.4444 | - | - |
424
+ | 0.0270 | 1200 | 2.5604 | - | - |
425
+ | 0.0316 | 1400 | 2.1878 | - | - |
426
+ | 0.0361 | 1600 | 1.9166 | - | - |
427
+ | 0.0406 | 1800 | 1.7376 | - | - |
428
+ | 0.0451 | 2000 | 1.5786 | - | - |
429
+ | 0.0496 | 2200 | 1.4304 | - | - |
430
+ | 0.0541 | 2400 | 1.3307 | - | - |
431
+ | 0.0586 | 2600 | 1.2409 | - | - |
432
+ | 0.0631 | 2800 | 1.1913 | - | - |
433
+ | 0.0676 | 3000 | 1.0885 | - | - |
434
+ | 0.0721 | 3200 | 1.0439 | - | - |
435
+ | 0.0766 | 3400 | 0.9721 | - | - |
436
+ | 0.0811 | 3600 | 0.918 | - | - |
437
+ | 0.0856 | 3800 | 0.8688 | - | - |
438
+ | 0.0901 | 4000 | 0.8269 | - | - |
439
+ | 0.0947 | 4200 | 0.7815 | - | - |
440
+ | 0.0992 | 4400 | 0.7577 | - | - |
441
+ | 0.1037 | 4600 | 0.714 | - | - |
442
+ | 0.1082 | 4800 | 0.6923 | - | - |
443
+ | 0.1127 | 5000 | 0.6619 | - | - |
444
+ | 0.1172 | 5200 | 0.6409 | - | - |
445
+ | 0.1217 | 5400 | 0.6142 | - | - |
446
+ | 0.1262 | 5600 | 0.6163 | - | - |
447
+ | 0.1307 | 5800 | 0.5821 | - | - |
448
+ | 0.1352 | 6000 | 0.5822 | - | - |
449
+ | 0.1397 | 6200 | 0.5572 | - | - |
450
+ | 0.1442 | 6400 | 0.555 | - | - |
451
+ | 0.1487 | 6600 | 0.5392 | - | - |
452
+ | 0.1533 | 6800 | 0.5326 | - | - |
453
+ | 0.1578 | 7000 | 0.5185 | - | - |
454
+ | 0.1623 | 7200 | 0.507 | - | - |
455
+ | 0.1668 | 7400 | 0.4943 | - | - |
456
+ | 0.1713 | 7600 | 0.4915 | - | - |
457
+ | 0.1758 | 7800 | 0.4951 | - | - |
458
+ | 0.1803 | 8000 | 0.4806 | - | - |
459
+ | 0.1848 | 8200 | 0.4782 | - | - |
460
+ | 0.1893 | 8400 | 0.4719 | - | - |
461
+ | 0.1938 | 8600 | 0.4628 | - | - |
462
+ | 0.1983 | 8800 | 0.4615 | - | - |
463
+ | 0.2028 | 9000 | 0.4624 | - | - |
464
+ | 0.2073 | 9200 | 0.4462 | - | - |
465
+ | 0.2119 | 9400 | 0.4571 | - | - |
466
+ | 0.2164 | 9600 | 0.452 | - | - |
467
+ | 0.2209 | 9800 | 0.4454 | - | - |
468
+ | 0.2254 | 10000 | 0.4387 | - | - |
469
+ | 0.2299 | 10200 | 0.4247 | - | - |
470
+ | 0.2344 | 10400 | 0.4221 | - | - |
471
+ | 0.2389 | 10600 | 0.4242 | - | - |
472
+ | 0.2434 | 10800 | 0.422 | - | - |
473
+ | 0.2479 | 11000 | 0.4252 | - | - |
474
+ | 0.2524 | 11200 | 0.416 | - | - |
475
+ | 0.2569 | 11400 | 0.4138 | - | - |
476
+ | 0.2614 | 11600 | 0.4139 | - | - |
477
+ | 0.2659 | 11800 | 0.4168 | - | - |
478
+ | 0.2704 | 12000 | 0.4008 | - | - |
479
+ | 0.2750 | 12200 | 0.3994 | - | - |
480
+ | 0.2795 | 12400 | 0.3973 | - | - |
481
+ | 0.2840 | 12600 | 0.393 | - | - |
482
+ | 0.2885 | 12800 | 0.3863 | - | - |
483
+ | 0.2930 | 13000 | 0.3914 | - | - |
484
+ | 0.2975 | 13200 | 0.38 | - | - |
485
+ | 0.3020 | 13400 | 0.3805 | - | - |
486
+ | 0.3065 | 13600 | 0.3749 | - | - |
487
+ | 0.3110 | 13800 | 0.3814 | - | - |
488
+ | 0.3155 | 14000 | 0.3783 | - | - |
489
+ | 0.3200 | 14200 | 0.3733 | - | - |
490
+ | 0.3245 | 14400 | 0.3762 | - | - |
491
+ | 0.3290 | 14600 | 0.3797 | - | - |
492
+ | 0.3336 | 14800 | 0.3727 | - | - |
493
+ | 0.3381 | 15000 | 0.3658 | - | - |
494
+ | 0.3426 | 15200 | 0.3655 | - | - |
495
+ | 0.3471 | 15400 | 0.3619 | - | - |
496
+ | 0.3516 | 15600 | 0.3685 | - | - |
497
+ | 0.3561 | 15800 | 0.3608 | - | - |
498
+ | 0.3606 | 16000 | 0.3631 | - | - |
499
+ | 0.3651 | 16200 | 0.3587 | - | - |
500
+ | 0.3696 | 16400 | 0.3536 | - | - |
501
+ | 0.3741 | 16600 | 0.3477 | - | - |
502
+ | 0.3786 | 16800 | 0.3595 | - | - |
503
+ | 0.3831 | 17000 | 0.3558 | - | - |
504
+ | 0.3876 | 17200 | 0.3518 | - | - |
505
+ | 0.3921 | 17400 | 0.353 | - | - |
506
+ | 0.3967 | 17600 | 0.354 | - | - |
507
+ | 0.4012 | 17800 | 0.3477 | - | - |
508
+ | 0.4057 | 18000 | 0.3457 | - | - |
509
+ | 0.4102 | 18200 | 0.346 | - | - |
510
+ | 0.4147 | 18400 | 0.3451 | - | - |
511
+ | 0.4192 | 18600 | 0.3437 | - | - |
512
+ | 0.4237 | 18800 | 0.3401 | - | - |
513
+ | 0.4282 | 19000 | 0.342 | - | - |
514
+ | 0.4327 | 19200 | 0.3416 | - | - |
515
+ | 0.4372 | 19400 | 0.3405 | - | - |
516
+ | 0.4417 | 19600 | 0.3331 | - | - |
517
+ | 0.4462 | 19800 | 0.3319 | - | - |
518
+ | 0.4507 | 20000 | 0.3264 | - | - |
519
+ | 0 | 0 | - | - | 0.4590 |
520
+ | 0.4507 | 20000 | - | 1.2902 | - |
521
+ | 0.4553 | 20200 | 0.3312 | - | - |
522
+ | 0.4598 | 20400 | 0.3363 | - | - |
523
+ | 0.4643 | 20600 | 0.333 | - | - |
524
+ | 0.4688 | 20800 | 0.3341 | - | - |
525
+ | 0.4733 | 21000 | 0.3287 | - | - |
526
+ | 0.4778 | 21200 | 0.3357 | - | - |
527
+ | 0.4823 | 21400 | 0.3325 | - | - |
528
+ | 0.4868 | 21600 | 0.3323 | - | - |
529
+ | 0.4913 | 21800 | 0.3385 | - | - |
530
+ | 0.4958 | 22000 | 0.3244 | - | - |
531
+ | 0.5003 | 22200 | 0.3281 | - | - |
532
+ | 0.5048 | 22400 | 0.3251 | - | - |
533
+ | 0.5093 | 22600 | 0.3271 | - | - |
534
+ | 0.5138 | 22800 | 0.3271 | - | - |
535
+ | 0.5184 | 23000 | 0.3245 | - | - |
536
+ | 0.5229 | 23200 | 0.3185 | - | - |
537
+ | 0.5274 | 23400 | 0.3212 | - | - |
538
+ | 0.5319 | 23600 | 0.3211 | - | - |
539
+ | 0.5364 | 23800 | 0.3205 | - | - |
540
+ | 0.5409 | 24000 | 0.3104 | - | - |
541
+ | 0.5454 | 24200 | 0.3208 | - | - |
542
+ | 0.5499 | 24400 | 0.3218 | - | - |
543
+ | 0.5544 | 24600 | 0.3183 | - | - |
544
+ | 0.5589 | 24800 | 0.3208 | - | - |
545
+ | 0.5634 | 25000 | 0.3151 | - | - |
546
+ | 0.5679 | 25200 | 0.3138 | - | - |
547
+ | 0.5724 | 25400 | 0.3155 | - | - |
548
+ | 0.5770 | 25600 | 0.3201 | - | - |
549
+ | 0.5815 | 25800 | 0.3135 | - | - |
550
+ | 0.5860 | 26000 | 0.3157 | - | - |
551
+ | 0.5905 | 26200 | 0.3051 | - | - |
552
+ | 0.5950 | 26400 | 0.3121 | - | - |
553
+ | 0.5995 | 26600 | 0.3109 | - | - |
554
+ | 0.6040 | 26800 | 0.3103 | - | - |
555
+ | 0.6085 | 27000 | 0.316 | - | - |
556
+ | 0.6130 | 27200 | 0.3119 | - | - |
557
+ | 0.6175 | 27400 | 0.3135 | - | - |
558
+ | 0.6220 | 27600 | 0.3007 | - | - |
559
+ | 0.6265 | 27800 | 0.304 | - | - |
560
+ | 0.6310 | 28000 | 0.3014 | - | - |
561
+ | 0.6356 | 28200 | 0.3075 | - | - |
562
+ | 0.6401 | 28400 | 0.3074 | - | - |
563
+ | 0.6446 | 28600 | 0.3072 | - | - |
564
+ | 0.6491 | 28800 | 0.3043 | - | - |
565
+ | 0.6536 | 29000 | 0.3059 | - | - |
566
+ | 0.6581 | 29200 | 0.3054 | - | - |
567
+ | 0.6626 | 29400 | 0.3019 | - | - |
568
+ | 0.6671 | 29600 | 0.3108 | - | - |
569
+ | 0.6716 | 29800 | 0.3032 | - | - |
570
+ | 0.6761 | 30000 | 0.3054 | - | - |
571
+ | 0.6806 | 30200 | 0.3034 | - | - |
572
+ | 0.6851 | 30400 | 0.3008 | - | - |
573
+ | 0.6896 | 30600 | 0.3 | - | - |
574
+ | 0.6941 | 30800 | 0.3042 | - | - |
575
+ | 0.6987 | 31000 | 0.3018 | - | - |
576
+ | 0.7032 | 31200 | 0.3162 | - | - |
577
+ | 0.7077 | 31400 | 0.2998 | - | - |
578
+ | 0.7122 | 31600 | 0.2975 | - | - |
579
+ | 0.7167 | 31800 | 0.3015 | - | - |
580
+ | 0.7212 | 32000 | 0.3005 | - | - |
581
+ | 0.7257 | 32200 | 0.3028 | - | - |
582
+ | 0.7302 | 32400 | 0.3029 | - | - |
583
+ | 0.7347 | 32600 | 0.2968 | - | - |
584
+ | 0.7392 | 32800 | 0.3066 | - | - |
585
+ | 0.7437 | 33000 | 0.2958 | - | - |
586
+ | 0.7482 | 33200 | 0.2968 | - | - |
587
+ | 0.7527 | 33400 | 0.2963 | - | - |
588
+ | 0.7573 | 33600 | 0.3026 | - | - |
589
+ | 0.7618 | 33800 | 0.2891 | - | - |
590
+ | 0.7663 | 34000 | 0.2991 | - | - |
591
+ | 0.7708 | 34200 | 0.2939 | - | - |
592
+ | 0.7753 | 34400 | 0.2923 | - | - |
593
+ | 0.7798 | 34600 | 0.295 | - | - |
594
+ | 0.7843 | 34800 | 0.2901 | - | - |
595
+ | 0.7888 | 35000 | 0.294 | - | - |
596
+ | 0.7933 | 35200 | 0.2945 | - | - |
597
+ | 0.7978 | 35400 | 0.299 | - | - |
598
+ | 0.8023 | 35600 | 0.297 | - | - |
599
+ | 0.8068 | 35800 | 0.2881 | - | - |
600
+ | 0.8113 | 36000 | 0.298 | - | - |
601
+ | 0.8158 | 36200 | 0.2925 | - | - |
602
+ | 0.8204 | 36400 | 0.2978 | - | - |
603
+ | 0.8249 | 36600 | 0.2989 | - | - |
604
+ | 0.8294 | 36800 | 0.2914 | - | - |
605
+ | 0.8339 | 37000 | 0.2913 | - | - |
606
+ | 0.8384 | 37200 | 0.2925 | - | - |
607
+ | 0.8429 | 37400 | 0.2991 | - | - |
608
+ | 0.8474 | 37600 | 0.291 | - | - |
609
+ | 0.8519 | 37800 | 0.2937 | - | - |
610
+ | 0.8564 | 38000 | 0.2989 | - | - |
611
+ | 0.8609 | 38200 | 0.2854 | - | - |
612
+ | 0.8654 | 38400 | 0.2878 | - | - |
613
+ | 0.8699 | 38600 | 0.2905 | - | - |
614
+ | 0.8744 | 38800 | 0.287 | - | - |
615
+ | 0.8790 | 39000 | 0.2869 | - | - |
616
+ | 0.8835 | 39200 | 0.2927 | - | - |
617
+ | 0.8880 | 39400 | 0.2889 | - | - |
618
+ | 0.8925 | 39600 | 0.2912 | - | - |
619
+ | 0.8970 | 39800 | 0.2927 | - | - |
620
+ | **0.9015** | **40000** | **0.2952** | **-** | **-** |
621
+ | 0 | 0 | - | - | 0.4774 |
622
+ | **0.9015** | **40000** | **-** | **1.2227** | **-** |
623
+ | 0.9060 | 40200 | 0.29 | - | - |
624
+ | 0.9105 | 40400 | 0.2878 | - | - |
625
+ | 0.9150 | 40600 | 0.2924 | - | - |
626
+ | 0.9195 | 40800 | 0.2877 | - | - |
627
+ | 0.9240 | 41000 | 0.2844 | - | - |
628
+ | 0.9285 | 41200 | 0.2951 | - | - |
629
+ | 0.9330 | 41400 | 0.291 | - | - |
630
+ | 0.9375 | 41600 | 0.292 | - | - |
631
+ | 0.9421 | 41800 | 0.2902 | - | - |
632
+ | 0.9466 | 42000 | 0.2815 | - | - |
633
+ | 0.9511 | 42200 | 0.29 | - | - |
634
+ | 0.9556 | 42400 | 0.2872 | - | - |
635
+ | 0.9601 | 42600 | 0.2759 | - | - |
636
+ | 0.9646 | 42800 | 0.2832 | - | - |
637
+ | 0.9691 | 43000 | 0.2886 | - | - |
638
+ | 0.9736 | 43200 | 0.2908 | - | - |
639
+ | 0.9781 | 43400 | 0.2857 | - | - |
640
+ | 0.9826 | 43600 | 0.2833 | - | - |
641
+ | 0.9871 | 43800 | 0.2837 | - | - |
642
+ | 0.9916 | 44000 | 0.2882 | - | - |
643
+ | 0.9961 | 44200 | 0.2919 | - | - |
644
+
645
+ * The bold row denotes the saved checkpoint.
646
+ </details>
647
+
648
+ ### Framework Versions
649
+ - Python: 3.11.0
650
+ - Sentence Transformers: 4.0.1
651
+ - PyLate: 1.1.7
652
+ - Transformers: 4.48.2
653
+ - PyTorch: 2.6.0+cu124
654
+ - Accelerate: 1.6.0
655
+ - Datasets: 3.5.0
656
+ - Tokenizers: 0.21.1
657
+
658
+
659
+ ## Citation
660
+
661
+ ### BibTeX
662
+
663
+ #### Sentence Transformers
664
+ ```bibtex
665
+ @inproceedings{reimers-2019-sentence-bert,
666
+ title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
667
+ author = "Reimers, Nils and Gurevych, Iryna",
668
+ booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
669
+ month = "11",
670
+ year = "2019",
671
+ publisher = "Association for Computational Linguistics",
672
+ url = "https://arxiv.org/abs/1908.10084"
673
+ }
674
+ ```
675
+
676
+ #### PyLate
677
+ ```bibtex
678
+ @misc{PyLate,
679
+ title={PyLate: Flexible Training and Retrieval for Late Interaction Models},
680
+ author={Chaffin, Antoine and Sourty, Raphaël},
681
+ url={https://github.com/lightonai/pylate},
682
+ year={2024}
683
+ }
684
+ ```
685
+
686
+ <!--
687
+ ## Glossary
688
+
689
+ *Clearly define terms in order to be accessible across audiences.*
690
+ -->
691
+
692
+ <!--
693
+ ## Model Card Authors
694
+
695
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
696
+ -->
697
+
698
+ <!--
699
+ ## Model Card Contact
700
+
701
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
702
+ -->
added_tokens.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "[D] ": 30523,
3
+ "[Q] ": 30522
4
+ }
config.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "nreimers/MiniLM-L6-H384-uncased",
3
+ "architectures": [
4
+ "BertModel"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "classifier_dropout": null,
8
+ "gradient_checkpointing": false,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 384,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 1536,
14
+ "layer_norm_eps": 1e-12,
15
+ "max_position_embeddings": 512,
16
+ "model_type": "bert",
17
+ "num_attention_heads": 12,
18
+ "num_hidden_layers": 6,
19
+ "pad_token_id": 0,
20
+ "position_embedding_type": "absolute",
21
+ "torch_dtype": "float32",
22
+ "transformers_version": "4.48.2",
23
+ "type_vocab_size": 2,
24
+ "use_cache": true,
25
+ "vocab_size": 30524
26
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__version__": {
3
+ "sentence_transformers": "4.0.1",
4
+ "transformers": "4.48.2",
5
+ "pytorch": "2.6.0+cu124"
6
+ },
7
+ "prompts": {},
8
+ "default_prompt_name": null,
9
+ "similarity_fn_name": "MaxSim",
10
+ "query_prefix": "[Q] ",
11
+ "document_prefix": "[D] ",
12
+ "query_length": 32,
13
+ "document_length": 180,
14
+ "attend_to_expansion_tokens": false,
15
+ "skiplist_words": [
16
+ "!",
17
+ "\"",
18
+ "#",
19
+ "$",
20
+ "%",
21
+ "&",
22
+ "'",
23
+ "(",
24
+ ")",
25
+ "*",
26
+ "+",
27
+ ",",
28
+ "-",
29
+ ".",
30
+ "/",
31
+ ":",
32
+ ";",
33
+ "<",
34
+ "=",
35
+ ">",
36
+ "?",
37
+ "@",
38
+ "[",
39
+ "\\",
40
+ "]",
41
+ "^",
42
+ "_",
43
+ "`",
44
+ "{",
45
+ "|",
46
+ "}",
47
+ "~"
48
+ ]
49
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3342c2e12cb985591d5bde4a820bb466ecf4aac3f668dd8cadfa488c6925967b
3
+ size 90867264
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_Dense",
12
+ "type": "pylate.models.Dense.Dense"
13
+ }
14
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 179,
3
+ "do_lower_case": false
4
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[MASK]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "30522": {
44
+ "content": "[Q] ",
45
+ "lstrip": false,
46
+ "normalized": true,
47
+ "rstrip": false,
48
+ "single_word": false,
49
+ "special": false
50
+ },
51
+ "30523": {
52
+ "content": "[D] ",
53
+ "lstrip": false,
54
+ "normalized": true,
55
+ "rstrip": false,
56
+ "single_word": false,
57
+ "special": false
58
+ }
59
+ },
60
+ "clean_up_tokenization_spaces": true,
61
+ "cls_token": "[CLS]",
62
+ "do_basic_tokenize": true,
63
+ "do_lower_case": true,
64
+ "extra_special_tokens": {},
65
+ "mask_token": "[MASK]",
66
+ "model_max_length": 512,
67
+ "never_split": null,
68
+ "pad_token": "[MASK]",
69
+ "sep_token": "[SEP]",
70
+ "strip_accents": null,
71
+ "tokenize_chinese_chars": true,
72
+ "tokenizer_class": "BertTokenizer",
73
+ "unk_token": "[UNK]"
74
+ }
vocab.txt ADDED
The diff for this file is too large to render. See raw diff