/ Модель

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

Контекст
514 токенов
Параметры
95,2 млн
Архитектура
roberta · dense
Базовая модель
distilroberta-base
Библиотека
sentence-transformers
Опубликована
7 июн 2024

distilroberta-base-ft-allnli-matryoshka-768-16-1e-128bs

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

Англоязычная Sentence Transformer на базе DistilRoBERTa для построения векторов предложений и поиска семантически близких текстов.

70скачиваний за 30 дней2лайкавеса обновлены7 июн 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mrm8488 разработал англоязычную модель Sentence Transformer на основе distilbert/distilroberta-base, дообучив её на наборе sentence-transformers/all-nli. Она преобразует предложения и абзацы в плотные векторы размерностью 768 и сравнивает их по косинусному сходству; архитектура включает RoBERTa и усреднение токенных представлений. Модель содержит 95,2 млн параметров и обрабатывает последовательности длиной до 514 токенов по метаданным Hugging Face.

Модель предназначена для оценки семантической близости текстов, семантического поиска, поиска перефразирований, кластеризации и подготовки векторов для классификации текста. Обучение с MatryoshkaLoss позволяет использовать укороченные представления; в README приведены результаты оценки сходства для размерностей от 16 до 768.

Модель ориентирована на английский язык и выдаёт векторы, а не готовые текстовые ответы. Лицензия в предоставленных данных не указана.

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

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

Ограничения

Модель обучена и рассчитана на английский язык; максимальная длина последовательности составляет 514 токенов по метаданным. Она возвращает векторы для последующей обработки, а не текстовые ответы; лицензия в предоставленных данных не приведена.

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on distilbert/distilroberta-base

This is a sentence-transformers model finetuned from distilbert/distilroberta-base on the sentence-transformers/all-nli dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: RobertaModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

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 SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("mrm8488/distilroberta-base-ft-allnli-matryoshka-768-16-1e-128bs")
# Run inference
sentences = [
    'It is well.',
    "That's convenient.",
    'away from the children',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

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

Evaluation

Metrics

Semantic Similarity

MetricValue
pearson_cosine0.8413
spearman_cosine0.8478
pearson_manhattan0.8414
spearman_manhattan0.8395
pearson_euclidean0.8423
spearman_euclidean0.8401
pearson_dot0.7855
spearman_dot0.7814
pearson_max0.8423
spearman_max0.8478

Semantic Similarity

MetricValue
pearson_cosine0.8395
spearman_cosine0.847
pearson_manhattan0.8399
spearman_manhattan0.8377
pearson_euclidean0.8407
spearman_euclidean0.838
pearson_dot0.7811
spearman_dot0.7777
pearson_max0.8407
spearman_max0.847

Semantic Similarity

MetricValue
pearson_cosine0.8327
spearman_cosine0.8436
pearson_manhattan0.8351
spearman_manhattan0.8332
pearson_euclidean0.836
spearman_euclidean0.8338
pearson_dot0.75
spearman_dot0.7453
pearson_max0.836
spearman_max0.8436

Semantic Similarity

MetricValue
pearson_cosine0.8243
spearman_cosine0.84
pearson_manhattan0.8282
spearman_manhattan0.827
pearson_euclidean0.8282
spearman_euclidean0.8267
pearson_dot0.711
spearman_dot0.705
pearson_max0.8282
spearman_max0.84

Semantic Similarity

MetricValue
pearson_cosine0.8116
spearman_cosine0.8317
pearson_manhattan0.8113
spearman_manhattan0.8105
pearson_euclidean0.8114
spearman_euclidean0.8111
pearson_dot0.6412
spearman_dot0.6347
pearson_max0.8116
spearman_max0.8317

Semantic Similarity

MetricValue
pearson_cosine0.7834
spearman_cosine0.8141
pearson_manhattan0.7832
spearman_manhattan0.786
pearson_euclidean0.7869
spearman_euclidean0.7894
pearson_dot0.5534
spearman_dot0.5449
pearson_max0.7869
spearman_max0.8141

Semantic Similarity

MetricValue
pearson_cosine0.7259
spearman_cosine0.7751
pearson_manhattan0.7421
spearman_manhattan0.7553
pearson_euclidean0.7483
spearman_euclidean0.7599
pearson_dot0.4387
spearman_dot0.4259
pearson_max0.7483
spearman_max0.7751

Training Details

Training Dataset

sentence-transformers/all-nli

  • Dataset: sentence-transformers/all-nli at d482672
  • Size: 557,850 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchorpositivenegative
    typestringstringstring
    detailsmin: 7 tokensmean: 10.38 tokensmax: 45 tokensmin: 6 tokensmean: 12.8 tokensmax: 39 tokensmin: 6 tokensmean: 13.4 tokensmax: 50 tokens
  • Samples:
    anchorpositivenegative
    A person on a horse jumps over a broken down airplane.A person is outdoors, on a horse.A person is at a diner, ordering an omelette.
    Children smiling and waving at cameraThere are children presentThe kids are frowning
    A boy is jumping on skateboard in the middle of a red bridge.The boy does a skateboarding trick.The boy skates down the sidewalk.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64,
            32,
            16
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

sentence-transformers/all-nli

  • Dataset: sentence-transformers/all-nli at d482672
  • Size: 6,584 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchorpositivenegative
    typestringstringstring
    detailsmin: 6 tokensmean: 18.02 tokensmax: 66 tokensmin: 5 tokensmean: 9.81 tokensmax: 29 tokensmin: 5 tokensmean: 10.37 tokensmax: 29 tokens
  • Samples:
    anchorpositivenegative
    Two women are embracing while holding to go packages.Two woman are holding packages.The men are fighting outside a deli.
    Two young children in blue jerseys, one with the number 9 and one with the number 2 are standing on wooden steps in a bathroom and washing their hands in a sink.Two kids in numbered jerseys wash their hands.Two kids in jackets walk to school.
    A man selling donuts to a customer during a world exhibition event held in the city of AngelesA man selling donuts to a customer.A woman drinks her coffee in a small cafe.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64,
            32,
            16
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: 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: 128
  • per_device_eval_batch_size: 128
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • learning_rate: 5e-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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Losslosssts-dev-128_spearman_cosinests-dev-16_spearman_cosinests-dev-256_spearman_cosinests-dev-32_spearman_cosinests-dev-512_spearman_cosinests-dev-64_spearman_cosinests-dev-768_spearman_cosine
0.022910029.091714.15140.76590.74400.79150.77490.79990.79090.7918
0.045920015.691511.70310.77180.74870.79400.77760.80050.79310.7871
0.068830014.313611.19700.77440.73890.79520.77280.80360.79250.7938
0.091840012.812210.44160.78990.75360.80400.77640.80650.79530.8018
0.114750012.174710.54910.78710.75130.80350.77850.80940.79780.8008
0.137660011.67849.66180.77850.74650.79560.77620.80270.79530.7935
0.160670011.93519.32790.79070.74030.79950.77060.80360.78940.7982
0.183580010.49989.15380.79110.75160.80430.78200.80780.80250.8010
0.206590010.60699.05310.78740.73710.79740.77040.80420.79100.8010
0.2294100010.03168.97590.78420.73560.79810.77210.80240.79050.7955
0.2524110010.1998.53980.78630.73220.79610.76910.80020.79100.7936
0.275312009.93938.13560.78600.73040.79900.76820.80250.79080.7954
0.298213009.87117.91770.79320.73190.80280.77080.80670.79240.8013
0.321214009.35947.88700.78920.72960.80320.77100.80700.79610.8030
0.344115009.45347.57560.80030.75180.80780.78570.81120.80630.8068
0.367116008.90617.81640.77810.73900.79420.77610.80020.79680.7941
0.390017008.51647.48690.79340.75300.80630.78640.81200.80550.8080
0.412918008.92627.71550.78460.73010.79910.77280.80650.79450.8003
0.435919008.32427.30680.78500.72730.79760.77100.80200.79040.7976
0.458820008.53747.10260.78450.72720.79930.77170.80420.79250.7963
0.481821008.23047.16010.78790.73540.80150.77190.80590.79440.8029
0.504722008.13477.82670.77150.72300.78890.76260.79560.78490.7930
0.527623008.30578.00570.76220.71480.78140.75720.78810.77690.7836
0.550624008.2157.69220.77720.72100.79290.76370.79950.78580.7956
0.573525008.43437.21040.78690.73070.80170.77070.80710.79290.8048
0.596526008.1596.99770.78930.72970.80310.77330.80710.79280.8045
0.619427008.20486.94650.78590.72800.80060.77250.80520.79260.8004
0.642328008.1877.31850.77900.72660.79600.76900.80180.79110.7964
0.665329008.47687.55350.77560.71920.79130.76180.79580.78270.7907
0.688230008.41537.37320.78250.72760.79880.76920.80290.78990.7988
0.711231007.92266.84690.79120.73110.80550.77650.81010.79770.8058
0.734132008.11556.76040.78800.72980.80240.77470.80710.79590.8025
0.757133006.84635.48630.83570.76380.84070.80850.84310.82830.8440
0.780034005.20085.24720.83620.76550.84010.81050.84290.82790.8445
0.802935004.54155.16490.83850.77000.84210.81380.84540.83040.8465
0.825936004.44745.09330.83710.76930.84100.81120.84430.82880.8451
0.848837004.125.05550.83960.77180.84390.81400.84630.83110.8471
0.871838003.91045.01470.83860.77490.84320.81290.84590.83040.8471
0.894739003.90544.99660.83790.77330.84240.81250.84560.82960.8464
0.917640003.7574.98920.84070.77630.84470.81560.84780.83260.8488
0.940641003.77294.98590.84000.77510.84360.81410.84700.83170.8478

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.0
  • Transformers: 4.41.1
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.30.1
  • Datasets: 2.19.2
  • Tokenizers: 0.19.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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning}, 
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

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

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
RobertaModel
Ревизия весов
29efd03

0 моделей