CoCondenser finetuned on MS MARCO

This is a SPLADE Sparse Encoder model finetuned from Luyu/co-condenser-marco using the sentence-transformers library. It maps sentences & paragraphs to a 30522-dimensional sparse vector space and can be used for semantic search and sparse retrieval.

Model Details

Model Description

  • Model Type: SPLADE Sparse Encoder
  • Base model: Luyu/co-condenser-marco
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 30522 dimensions
  • Similarity Function: Dot Product
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SparseEncoder(
  (0): MLMTransformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'BertForMaskedLM'})
  (1): SpladePooling({'pooling_strategy': 'max', 'activation_function': 'relu', 'word_embedding_dimension': 30522})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SparseEncoder

# Download from the 🤗 Hub
model = SparseEncoder("tomaarsen/splade-cocondenser-msmarco-kldiv-minilm-temp-5-5")
# Run inference
queries = [
    "who started gladiator lacrosse",
]
documents = [
    'Weed Eater was a string trimmer company founded in 1971 in Houston, Texas by George C. Ballas, Sr. , the inventor of the device. The idea for the Weed Eater trimmer came to him from the spinning nylon bristles of an automatic car wash.He thought that he could come up with a similar technique to protect the bark on trees that he was trimming around. His company was eventually bought by Emerson Electric and merged with Poulan.Poulan/Weed Eater was later purchased by Electrolux, which spun off the outdoors division as Husqvarna AB in 2006.Inventor Ballas was the father of champion ballroom dancer Corky Ballas and the grandfather of Dancing with the Stars dancer Mark Ballas.George Ballas died on June 25, 2011.he idea for the Weed Eater trimmer came to him from the spinning nylon bristles of an automatic car wash. He thought that he could come up with a similar technique to protect the bark on trees that he was trimming around. His company was eventually bought by Emerson Electric and merged with Poulan.',
    "The earliest types of gladiator were named after Rome's enemies of that time: the Samnite, Thracian and Gaul. The Samnite, heavily armed, elegantly helmed and probably the most popular type, was renamed Secutor and the Gaul renamed Murmillo, once these former enemies had been conquered then absorbed into Rome's Empire.",
    'Summit Hill, PA. Sponsored Topics. Summit Hill is a borough in Carbon County, Pennsylvania, United States. The population was 2,974 at the 2000 census. Summit Hill is located at 40°49â\x80²39â\x80³N 75°51â\x80²57â\x80³W / 40.8275°N 75.86583°W / 40.8275; -75.86583 (40.827420, -75.865892).',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 30522] [3, 30522]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[17.5727, 29.0144, 13.9165]])

Evaluation

Metrics

Sparse Information Retrieval

Metric NanoMSMARCO NanoNFCorpus NanoNQ
dot_accuracy@1 0.4 0.46 0.46
dot_accuracy@3 0.68 0.6 0.72
dot_accuracy@5 0.74 0.62 0.8
dot_accuracy@10 0.8 0.66 0.84
dot_precision@1 0.4 0.46 0.46
dot_precision@3 0.2267 0.4 0.2467
dot_precision@5 0.148 0.34 0.172
dot_precision@10 0.08 0.262 0.09
dot_recall@1 0.4 0.0417 0.43
dot_recall@3 0.68 0.079 0.67
dot_recall@5 0.74 0.0962 0.77
dot_recall@10 0.8 0.14 0.81
dot_ndcg@10 0.6109 0.3378 0.6305
dot_mrr@10 0.549 0.5295 0.587
dot_map@100 0.5621 0.1508 0.5704
query_active_dims 25.92 21.28 28.68
query_sparsity_ratio 0.9992 0.9993 0.9991
corpus_active_dims 270.516 541.2872 301.8026
corpus_sparsity_ratio 0.9911 0.9823 0.9901

Sparse Nano BEIR

  • Dataset: NanoBEIR_mean
  • Evaluated with SparseNanoBEIREvaluator with these parameters:
    {
        "dataset_names": [
            "msmarco",
            "nfcorpus",
            "nq"
        ]
    }
    
Metric Value
dot_accuracy@1 0.44
dot_accuracy@3 0.6667
dot_accuracy@5 0.72
dot_accuracy@10 0.7667
dot_precision@1 0.44
dot_precision@3 0.2911
dot_precision@5 0.22
dot_precision@10 0.144
dot_recall@1 0.2906
dot_recall@3 0.4763
dot_recall@5 0.5354
dot_recall@10 0.5833
dot_ndcg@10 0.5264
dot_mrr@10 0.5552
dot_map@100 0.4278
query_active_dims 25.2933
query_sparsity_ratio 0.9992
corpus_active_dims 343.9651
corpus_sparsity_ratio 0.9887

Training Details

Training Dataset

Unnamed Dataset

  • Size: 99,000 training samples
  • Columns: query, positive, negative, and label
  • Approximate statistics based on the first 1000 samples:
    query positive negative label
    type string string string list
    details
    • min: 4 tokens
    • mean: 9.2 tokens
    • max: 34 tokens
    • min: 18 tokens
    • mean: 79.86 tokens
    • max: 219 tokens
    • min: 18 tokens
    • mean: 79.96 tokens
    • max: 270 tokens
    • size: 2 elements
  • Samples:
    query positive negative label
    rtn tv network Home Shopping Network. Home Shopping Network (HSN) is an American broadcast, basic cable and satellite television network that is owned by HSN, Inc. (NASDAQ: HSNI), which also owns catalog company Cornerstone Brands. Based in St. Petersburg, Florida, United States, the home shopping channel has former and current sister channels in several other countries. The Public Switched Telephone Network - The public switched telephone network (PSTN) is the international network of circuit-switched telephones. Learn more about PSTN at HowStuffWorks. x [-1.0804121494293213, -5.908488750457764]
    how did president nixon react to the watergate investigation? The Watergate scandal was a major political scandal that occurred in the United States during the early 1970s, following a break-in by five men at the Democratic National Committee headquarters at the Watergate office complex in Washington, D.C. on June 17, 1972, and President Richard Nixon's administration's subsequent attempt to cover up its involvement. After the five burglars were caught and the conspiracy was discovered, Watergate was investigated by the United States Congress. Meanwhile, N The release of the tape was ordered by the Supreme Court on July 24, 1974, in a case known as United States v. Nixon. The court’s decision was unanimous. President Nixon released the tape on August 5. It was one of three conversations he had with Haldeman six days after the Watergate break-in. The tapes prove that he ordered a cover-up of the Watergate burglary. The Smoking Gun tape reveals that Nixon ordered the FBI to abandon its investigation of the break-in. [Read more…] [4.117279052734375, 3.191757917404175]
    what is a summary offense in pennsylvania We provide cost effective house arrest and electronic monitoring services to magisterial district court systems throughout Pennsylvania including York, Harrisburg, Philadelphia and Allentown.In addition, we also serve the York County, Lancaster County and Chester County.e provide cost effective house arrest and electronic monitoring services to magisterial district court systems throughout Pennsylvania including York, Harrisburg, Philadelphia and Allentown. In order to be convicted of Simple Assault, one must cause bodily injury. To be convicted of Aggravated Assault, one must cause serious bodily injury. From my research, Pennsylvania law defines bodily injury as the impairment of physical condition or substantial pain. [-8.954689025878906, -1.3361705541610718]
  • Loss: SpladeLoss with these parameters:
    {
        "loss": "SparseDistillKLDivLoss",
        "lambda_corpus": 0.0005,
        "lambda_query": 0.0005
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 1,000 evaluation samples
  • Columns: query, positive, negative, and label
  • Approximate statistics based on the first 1000 samples:
    query positive negative label
    type string string string list
    details
    • min: 4 tokens
    • mean: 9.12 tokens
    • max: 37 tokens
    • min: 17 tokens
    • mean: 78.91 tokens
    • max: 239 tokens
    • min: 25 tokens
    • mean: 81.25 tokens
    • max: 239 tokens
    • size: 2 elements
  • Samples:
    query positive negative label
    how long to cook roast beef for Roasting times for beef. Preheat your oven to 160°C (325°F) and use these cooking times to prepare a roast that's moist, tender and delicious. Your roast should be covered with foil for the first half of the roasting time to prevent drying the outer layer.3 to 5lb Joint 1½ to 2 hours.reheat your oven to 160°C (325°F) and use these cooking times to prepare a roast that's moist, tender and delicious. Your roast should be covered with foil for the first half of the roasting time to prevent drying the outer layer. Estimating Cooking Time for Large Beef Roasts. If you roast at a steady 325F (160C), subtract 2 minutes or so per pound. If the roast is refrigerated just before going into the oven, add 2 or 3 minutes per pound. WARNING NOTES: Remember, the rib roast will continue to cook as it sets. [6.501978874206543, 8.214995384216309]
    definition of fire inspection Learn how to do a monthly fire extinguisher inspection in your workplace. Departments must assign an individual to inspect monthly the extinguishers in or adjacent to the department's facilities.1 Read Fire Extinguisher Types and Maintenance for more information.earn how to do a monthly fire extinguisher inspection in your workplace. Departments must assign an individual to inspect monthly the extinguishers in or adjacent to the department's facilities. reconnaissance by fire-a method of reconnaissance in which fire is placed on a suspected enemy position in order to cause the enemy to disclose his presence by moving or returning fire. reconnaissance in force-an offensive operation designed to discover or test the enemy's strength (or to obtain other information). mission undertaken to obtain, by visual observation or other detection methods, information about the activities and resources of an enemy or potential enemy, or to secure data concerning the meteorological, hydrographic, or geographic characteristics of a particular area. [-0.38299351930618286, -0.9372650384902954]
    how many stores does family dollar have Property Spotlight: New Retail Center at Hamilton & Warner - Outlots Available!! Family Dollar is closing stores following a disappointing second quarter. Family Dollar Stores Inc. won’t just be cutting prices in an attempt to boost its business – it’ll be closing stores as well. The Matthews, N.C.-based discount retailer plans to shutter 370 under-performing shops, according to the Charlotte Business Journal. Glassdoor has 1,976 Family Dollar Stores reviews submitted anonymously by Family Dollar Stores employees. Read employee reviews and ratings on Glassdoor to decide if Family Dollar Stores is right for you. [4.726407527923584, 8.284608840942383]
  • Loss: SpladeLoss with these parameters:
    {
        "loss": "SparseDistillKLDivLoss",
        "lambda_corpus": 0.0005,
        "lambda_query": 0.0005
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss NanoMSMARCO_dot_ndcg@10 NanoNFCorpus_dot_ndcg@10 NanoNQ_dot_ndcg@10 NanoBEIR_mean_dot_ndcg@10
0.0162 100 933.577 - - - - -
0.0323 200 97.0659 - - - - -
0.0485 300 3.3762 - - - - -
0.0646 400 2.1824 - - - - -
0.0808 500 2.0284 1.9616 0.2097 0.1095 0.2484 0.1892
0.0970 600 1.9111 - - - - -
0.1131 700 1.7523 - - - - -
0.1293 800 1.6374 - - - - -
0.1454 900 1.647 - - - - -
0.1616 1000 1.554 1.3730 0.5353 0.2856 0.5710 0.4640
0.1778 1100 1.6464 - - - - -
0.1939 1200 1.6496 - - - - -
0.2101 1300 1.3002 - - - - -
0.2262 1400 1.3381 - - - - -
0.2424 1500 1.3443 1.1963 0.5300 0.3051 0.5879 0.4743
0.2586 1600 1.2353 - - - - -
0.2747 1700 1.2542 - - - - -
0.2909 1800 1.2558 - - - - -
0.3070 1900 1.2673 - - - - -
0.3232 2000 1.2177 1.0425 0.6374 0.3204 0.6190 0.5256
0.3394 2100 1.1493 - - - - -
0.3555 2200 1.1485 - - - - -
0.3717 2300 1.1177 - - - - -
0.3878 2400 1.0777 - - - - -
0.4040 2500 1.1593 0.9972 0.6176 0.3303 0.6307 0.5262
0.4202 2600 1.1258 - - - - -
0.4363 2700 1.0628 - - - - -
0.4525 2800 1.1011 - - - - -
0.4686 2900 0.9793 - - - - -
0.4848 3000 0.9573 0.9379 0.6122 0.3350 0.5986 0.5153
0.5010 3100 1.0361 - - - - -
0.5171 3200 0.9685 - - - - -
0.5333 3300 1.0671 - - - - -
0.5495 3400 0.9423 - - - - -
0.5656 3500 1.0381 0.8617 0.6006 0.3354 0.5969 0.5110
0.5818 3600 0.9318 - - - - -
0.5979 3700 0.9381 - - - - -
0.6141 3800 0.9443 - - - - -
0.6303 3900 0.9305 - - - - -
0.6464 4000 0.9106 0.8799 0.6128 0.3420 0.6050 0.5199
0.6626 4100 0.9504 - - - - -
0.6787 4200 0.8889 - - - - -
0.6949 4300 0.9215 - - - - -
0.7111 4400 0.8695 - - - - -
0.7272 4500 0.9194 0.7860 0.6049 0.3271 0.5966 0.5095
0.7434 4600 0.9371 - - - - -
0.7595 4700 0.8606 - - - - -
0.7757 4800 0.8563 - - - - -
0.7919 4900 0.8576 - - - - -
0.8080 5000 0.854 0.7724 0.6204 0.3483 0.6116 0.5268
0.8242 5100 0.8524 - - - - -
0.8403 5200 0.7923 - - - - -
0.8565 5300 0.9065 - - - - -
0.8727 5400 0.8344 - - - - -
0.8888 5500 0.8033 0.7885 0.6266 0.3396 0.6296 0.5320
0.9050 5600 0.8776 - - - - -
0.9211 5700 0.7988 - - - - -
0.9373 5800 0.8358 - - - - -
0.9535 5900 0.8082 - - - - -
0.9696 6000 0.8532 0.7707 0.6241 0.3389 0.6305 0.5311
0.9858 6100 0.8423 - - - - -
-1 -1 - - 0.6109 0.3378 0.6305 0.5264

Environmental Impact

Carbon emissions were measured using CodeCarbon.

  • Energy Consumed: 0.193 kWh
  • Carbon Emitted: 0.075 kg of CO2
  • Hours Used: 0.55 hours

Training Hardware

  • On Cloud: No
  • GPU Model: 1 x NVIDIA GeForce RTX 3090
  • CPU Model: 13th Gen Intel(R) Core(TM) i7-13700K
  • RAM Size: 31.78 GB

Framework Versions

  • Python: 3.11.6
  • Sentence Transformers: 4.2.0.dev0
  • Transformers: 4.52.4
  • PyTorch: 2.7.1+cu126
  • Accelerate: 1.5.1
  • Datasets: 2.21.0
  • Tokenizers: 0.21.1

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

SpladeLoss

@misc{formal2022distillationhardnegativesampling,
      title={From Distillation to Hard Negative Sampling: Making Sparse Neural IR Models More Effective},
      author={Thibault Formal and Carlos Lassance and Benjamin Piwowarski and Stéphane Clinchant},
      year={2022},
      eprint={2205.04733},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2205.04733},
}

SparseDistillKLDivLoss

@misc{lin2020distillingdenserepresentationsranking,
      title={Distilling Dense Representations for Ranking using Tightly-Coupled Teachers},
      author={Sheng-Chieh Lin and Jheng-Hong Yang and Jimmy Lin},
      year={2020},
      eprint={2010.11386},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2010.11386},
}

FlopsLoss

@article{paria2020minimizing,
    title={Minimizing flops to learn efficient sparse representations},
    author={Paria, Biswajit and Yeh, Chih-Kuan and Yen, Ian EH and Xu, Ning and Ravikumar, Pradeep and P{'o}czos, Barnab{'a}s},
    journal={arXiv preprint arXiv:2004.05665},
    year={2020}
}
Downloads last month
0
Safetensors
Model size
110M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for tomaarsen/splade-cocondenser-msmarco-kldiv-minilm-temp-5-5

Finetuned
(14)
this model

Evaluation results