/ Модель

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

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

bert-base-uncased-multi-task

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

Англоязычная Sentence Transformer на базе BERT, которая превращает предложения и абзацы в эмбеддинги для оценки сходства и семантического поиска.

105скачиваний за 30 дней0лайковвеса обновлены2 мая 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это англоязычная модель Sentence Transformer на базе BERT-base-uncased, разработанная tomaarsen и дообученная на наборах all-nli и sts. Она кодирует предложения и абзацы в плотные векторы размерности 768 для сравнения смысловой близости по косинусному сходству, семантического поиска, поиска перефразировок, кластеризации и классификации текста.

Модель использует архитектуру BERT с усреднением токенных представлений; максимальная длина входа — 512 токенов. Она подходит для построения эмбеддингов и поиска похожих текстов на английском языке. Это не генеративная модель: она возвращает векторные представления, а качество зависит от предметной области и последующей системы поиска или классификации. Лицензия в предоставленных данных не указана.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on google-bert/bert-base-uncased

This is a sentence-transformers model finetuned from google-bert/bert-base-uncased on the all-nli and sts datasets. 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 Type: Sentence Transformer
  • Base model: google-bert/bert-base-uncased
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Training Datasets:
  • Language: en

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (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("tomaarsen/bert-base-uncased-multi-task")
# Run inference
sentences = [
    'the guy is paid',
    'A man is receiving a contract.',
    'A man is racing on his bike.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

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

Evaluation

Metrics

Semantic Similarity

MetricValue
pearson_cosine0.8288
spearman_cosine0.8351
pearson_manhattan0.7968
spearman_manhattan0.8041
pearson_euclidean0.7968
spearman_euclidean0.8039
pearson_dot0.7572
spearman_dot0.7697
pearson_max0.8288
spearman_max0.8351

Semantic Similarity

MetricValue
pearson_cosine0.8014
spearman_cosine0.8049
pearson_manhattan0.7935
spearman_manhattan0.7935
pearson_euclidean0.794
spearman_euclidean0.7943
pearson_dot0.6989
spearman_dot0.6967
pearson_max0.8014
spearman_max0.8049

Training Details

Training Datasets

all-nli

  • Dataset: all-nli at cc6c526
  • Size: 942,069 training samples
  • Columns: premise, hypothesis, and label
  • Approximate statistics based on the first 1000 samples:
    premisehypothesislabel
    typestringstringint
    detailsmin: 6 tokensmean: 17.38 tokensmax: 52 tokensmin: 4 tokensmean: 10.7 tokensmax: 31 tokens0: ~33.40%1: ~33.30%2: ~33.30%
  • Samples:
    premisehypothesislabel
    A person on a horse jumps over a broken down airplane.A person is training his horse for a competition.1
    A person on a horse jumps over a broken down airplane.A person is at a diner, ordering an omelette.2
    A person on a horse jumps over a broken down airplane.A person is outdoors, on a horse.0
  • Loss: SoftmaxLoss

sts

  • Dataset: sts 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 Datasets

all-nli

  • Dataset: all-nli at cc6c526
  • Size: 1,000 evaluation samples
  • Columns: premise, hypothesis, and label
  • Approximate statistics based on the first 1000 samples:
    premisehypothesislabel
    typestringstringint
    detailsmin: 6 tokensmean: 18.44 tokensmax: 57 tokensmin: 5 tokensmean: 10.57 tokensmax: 25 tokens0: ~33.10%1: ~33.30%2: ~33.60%
  • Samples:
    premisehypothesislabel
    Two women are embracing while holding to go packages.The sisters are hugging goodbye while holding to go packages after just eating lunch.1
    Two women are embracing while holding to go packages.Two woman are holding packages.0
    Two women are embracing while holding to go packages.The men are fighting outside a deli.2
  • Loss: SoftmaxLoss

sts

  • Dataset: sts 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: 1
  • warmup_ratio: 0.1
  • fp16: True
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: False
  • 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: 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
  • 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: None
  • 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_sampler: batch_sampler
  • multi_dataset_batch_sampler: round_robin

Training Logs

EpochStepTraining Losssts lossall-nli losssts-dev_spearman_cosinests-test_spearman_cosine
0.13891000.59610.04701.10050.8096-
0.27782000.54080.03540.96870.8229-
0.41673000.51850.03730.93980.8265-
0.55564000.49780.03680.93040.8200-
0.69445000.50260.03470.90440.8234-
0.83336000.47020.03260.87270.8300-
0.97227000.46490.03280.87230.8351-
1.0720----0.8049

Environmental Impact

Carbon emissions were measured using CodeCarbon.

  • Energy Consumed: 0.017 kWh
  • Carbon Emitted: 0.006 kg of CO2
  • Hours Used: 0.097 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: 3.0.0.dev0
  • Transformers: 4.41.0.dev0
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.26.1
  • Datasets: 2.18.0
  • Tokenizers: 0.19.1

Citation

BibTeX

Sentence Transformers and SoftmaxLoss

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

Класс архитектуры
BertModel
Ревизия весов
e9ee5d2

0 моделей