/ Модель

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

Контекст
512 токенов
Архитектура
distilbert · dense
Базовая модель
distilbert-base-uncased
Библиотека
sentence-transformers
Опубликована
29 мая 2024

distilbert-base-uncased-sts

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

Англоязычная Sentence Transformers модель на базе DistilBERT для получения эмбеддингов и оценки семантического сходства текстов.

20скачиваний за 30 дней1лайквеса обновлены29 мая 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pierreinalco/distilbert-base-uncased-sts — англоязычная модель Sentence Transformers, дообученная на наборе sentence-transformers/stsb на основе distilbert/distilbert-base-uncased. Она кодирует предложения и абзацы в плотные векторы размерности 768; для сравнения используется косинусное сходство. Архитектура состоит из DistilBERT и среднего пулинга токенов, максимальная длина входа — 512 токенов.

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

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

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

Ограничения

Модель обучена на английском языке и ограничена последовательностями длиной до 512 токенов. Предоставленные сведения не содержат информации о лицензии.

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on distilbert/distilbert-base-uncased

This is a sentence-transformers model finetuned from distilbert/distilbert-base-uncased on the sentence-transformers/stsb 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: DistilBertModel 
  (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("pierreinalco/distilbert-base-uncased-sts")
# Run inference
sentences = [
    'A cat is on a robot.',
    'A cat is pouncing on a trampoline.',
    'Two men are standing in a room.',
]
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.8697
spearman_cosine0.8685
pearson_manhattan0.8438
spearman_manhattan0.8454
pearson_euclidean0.8437
spearman_euclidean0.8452
pearson_dot0.8131
spearman_dot0.817
pearson_max0.8697
spearman_max0.8685

Semantic Similarity

MetricValue
pearson_cosine0.8385
spearman_cosine0.8381
pearson_manhattan0.8315
spearman_manhattan0.8311
pearson_euclidean0.8322
spearman_euclidean0.8316
pearson_dot0.7505
spearman_dot0.7472
pearson_max0.8385
spearman_max0.8381

Training Details

Training Dataset

sentence-transformers/stsb

  • Dataset: sentence-transformers/stsb at ab7a5ac
  • Size: 5,749 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 6 tokensmean: 10.0 tokensmax: 28 tokensmin: 5 tokensmean: 9.95 tokensmax: 25 tokensmin: 0.0mean: 0.54max: 1.0
  • Samples:
    sentence1sentence2score
    A plane is taking off.An air plane is taking off.1.0
    A man is playing a large flute.A man is playing a flute.0.76
    A man is spreading shreded cheese on a pizza.A man is spreading shredded cheese on an uncooked pizza.0.76
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Evaluation Dataset

sentence-transformers/stsb

  • Dataset: sentence-transformers/stsb at ab7a5ac
  • Size: 1,500 evaluation samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 5 tokensmean: 15.1 tokensmax: 45 tokensmin: 6 tokensmean: 15.11 tokensmax: 53 tokensmin: 0.0mean: 0.47max: 1.0
  • Samples:
    sentence1sentence2score
    A man with a hard hat is dancing.A man wearing a hard hat is dancing.1.0
    A young child is riding a horse.A child is riding a horse.0.95
    A man is feeding a mouse to a snake.The man is feeding a mouse to the snake.1.0
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • num_train_epochs: 4
  • warmup_ratio: 0.1

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
  • 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: 4
  • 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: 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: 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: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Losslosssts-dev_spearman_cosinests-test_spearman_cosine
0.27781000.08360.03990.8029-
0.55562000.03340.03010.8481-
0.83333000.02820.02620.8578-
1.11114000.02040.02730.8593-
1.38895000.01380.02810.8589-
1.66676000.01180.02760.8566-
1.94447000.01280.02630.8614-
2.22228000.00770.02590.8685-
2.59000.00570.02540.8661-
2.777810000.00590.02610.8677-
3.055611000.00540.02580.8682-
3.333312000.00390.02610.8668-
3.611113000.00390.02610.8678-
3.888914000.00370.02590.8685-
4.01440---0.8381

Framework Versions

  • Python: 3.11.9
  • Sentence Transformers: 3.0.0
  • Transformers: 4.41.1
  • PyTorch: 2.3.0
  • Accelerate: 0.30.1
  • Datasets: 2.19.1
  • 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",
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
DistilBertModel
Ревизия весов
5c3e1e8

0 моделей