/ Модель

Характеристики

Контекст
512 токенов
Параметры
137 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
splade-cocondenser-ensembledistil
Библиотека
sentence-transformers
Опубликована
27 мая 2025

example-splade-cocondenser-ensembledistil-nli

ЭмбеддингиТекст → embedding9 профессий

Англоязычный разреженный SPLADE-энкодер для семантического поиска, извлечения документов и сравнения предложений.

122скачиваний за 30 дней0лайковвеса обновлены27 мая 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это разреженный SPLADE-энкодер, дообученный на наборе all-nli с использованием библиотеки Sentence Transformers. Модель основана на naver/splade-cocondenser-ensembledistil и преобразует предложения и абзацы в разреженные векторы размерности 30 522; сходство между ними оценивается скалярным произведением. Архитектура включает BERT-модель для masked language modeling и max-пулинг с ReLU. Метаданные указывают 136,7 млн параметров и контекст до 512 токенов; карточка README задаёт максимальную длину последовательности 256 токенов.

Модель предназначена для семантического поиска, разреженного извлечения документов и оценки сходства предложений на английском языке. В README приведены результаты оценки на STS-dev и STS-test. Доступна по лицензии Apache-2.0. Ее применение ограничено английским языком и указанной длиной входной последовательности; качество на других языках и специализированных областях не заявлено.

Сценарии применения

  • семантический поиск по коллекции документов
  • разреженное извлечение релевантных абзацев
  • поиск документов по короткому запросу
  • оценка сходства двух предложений
  • построение разреженных векторов текста для поиска

Ограничения

Модель рассчитана на английский язык; поддержка других языков не заявлена. Для одного источника максимальная длина последовательности составляет 256 токенов, тогда как метаданные указывают контекст 512 токенов.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

splade-cocondenser-ensembledistil trained on Natural Language Inference (NLI)

This is a SPLADE Sparse Encoder model finetuned from naver/splade-cocondenser-ensembledistil on the all-nli dataset 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: naver/splade-cocondenser-ensembledistil
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 30522 dimensions
  • Similarity Function: Dot Product
  • Training Dataset:
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SparseEncoder(
  (0): MLMTransformer({'max_seq_length': 256, 'do_lower_case': False}) with MLMTransformer model: 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("arthurbresnu/example-splade-cocondenser-ensembledistil-nli")
# Run inference
sentences = [
    'A man is sitting in on the side of the street with brass pots.',
    'A man is playing with the brass pots',
    'A group of adults are swimming at the beach.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# (3, 30522)

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Semantic Similarity

Metricsts-devsts-test
pearson_cosine0.85540.8223
spearman_cosine0.84860.8068
active_dims99.124795.4228
sparsity_ratio0.99680.9969

Training Details

Training Dataset

all-nli

  • Dataset: all-nli at d482672
  • Size: 10,000 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 6 tokensmean: 17.38 tokensmax: 52 tokensmin: 4 tokensmean: 10.7 tokensmax: 31 tokensmin: 0.0mean: 0.5max: 1.0
  • Samples:
    sentence1sentence2score
    A person on a horse jumps over a broken down airplane.A person is training his horse for a competition.0.5
    A person on a horse jumps over a broken down airplane.A person is at a diner, ordering an omelette.0.0
    A person on a horse jumps over a broken down airplane.A person is outdoors, on a horse.1.0
  • Loss: SpladeLoss with these parameters:
    {
        "loss": "SparseMultipleNegativesRankingLoss(scale=1, similarity_fct='dot_score')",
        "lambda_corpus": 0.003
    }
    

Evaluation Dataset

all-nli

  • Dataset: all-nli at d482672
  • Size: 1,000 evaluation samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 6 tokensmean: 18.44 tokensmax: 57 tokensmin: 5 tokensmean: 10.57 tokensmax: 25 tokensmin: 0.0mean: 0.5max: 1.0
  • Samples:
    sentence1sentence2score
    Two women are embracing while holding to go packages.The sisters are hugging goodbye while holding to go packages after just eating lunch.0.5
    Two women are embracing while holding to go packages.Two woman are holding packages.1.0
    Two women are embracing while holding to go packages.The men are fighting outside a deli.0.0
  • Loss: SpladeLoss with these parameters:
    {
        "loss": "SparseMultipleNegativesRankingLoss(scale=1, similarity_fct='dot_score')",
        "lambda_corpus": 0.003
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 4e-06
  • num_train_epochs: 1
  • bf16: True
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

  • 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: 4e-06
  • 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.0
  • 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: True
  • fp16: False
  • 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: True
  • 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}
  • tp_size: 0
  • 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
  • dispatch_batches: None
  • split_batches: 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

Training Logs

EpochStepTraining LossValidation Losssts-dev_spearman_cosinests-test_spearman_cosine
-1-1--0.8366-
0.032201.0832---
0.064400.8212---
0.096600.796---
0.128800.7953---
0.161000.7574---
0.1921200.61970.67500.8443-
0.2241400.7125---
0.2561600.817---
0.2881800.7309---
0.322000.639---
0.3522200.6873---
0.3842400.69730.62530.8471-
0.4162600.7197---
0.4482800.5894---
0.483000.6682---
0.5123200.6064---
0.5443400.648---
0.5763600.63440.60710.8483-
0.6083800.5742---
0.644000.4962---
0.6724200.4863---
0.7044400.5547---
0.7364600.6097---
0.7684800.63070.60270.8471-
0.85000.6226---
0.8325200.6607---
0.8645400.526---
0.8965600.6036---
0.9285800.5897---
0.966000.63950.58920.8486-
0.9926200.6069---
-1-1---0.8068
  • The bold row denotes the saved checkpoint.

Environmental Impact

Carbon emissions were measured using CodeCarbon.

  • Energy Consumed: 0.003 kWh
  • Carbon Emitted: 0.000 kg of CO2
  • Hours Used: 0.025 hours

Training Hardware

  • On Cloud: No
  • GPU Model: 1 x NVIDIA GeForce RTX 3070 Ti Laptop GPU
  • CPU Model: AMD Ryzen 9 6900HX with Radeon Graphics
  • RAM Size: 30.61 GB

Framework Versions

  • Python: 3.12.9
  • Sentence Transformers: 4.2.0.dev0
  • Transformers: 4.50.3
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.6.0
  • Datasets: 3.5.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},
}

SparseMultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    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},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

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}
    }

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForMaskedLM
Ревизия весов
74ef59a

0 моделей