/ Модель

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

Контекст
512 токенов
Параметры
124 млн
Архитектура
bert · dense
Базовая модель
multilingual-e5-small
Библиотека
sentence-transformers
Опубликована
20 авг 2024

multilingual-e5-small-pairclass-4

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

Дообученная многоязычная Sentence Transformer создаёт эмбеддинги предложений и абзацев для семантического поиска и сравнения текстов.

106скачиваний за 30 дней0лайковвеса обновлены20 авг 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это дообученная модель Sentence Transformer на базе intfloat/multilingual-e5-small, разработанная автором репозитория srikarvar. Она преобразует предложения и абзацы в плотные текстовые векторы размерности 384 для сравнения семантической близости, семантического поиска, поиска перефразировок, кластеризации и классификации текста. Архитектура включает BERT-трансформер, усреднение токеновых представлений и нормализацию; сходство векторов оценивается косинусной мерой. Максимальная длина последовательности — 512 токенов.

Модель предназначена для многоязычных сценариев работы с текстами. В README приведены результаты бинарной классификации пар предложений: точность 0,93 и F1 0,9238 на указанных наборах pair-class-dev и pair-class-test. Веса опубликованы в формате safetensors; лицензия в доступных данных не приведена.

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

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

Ограничения

Максимальная длина последовательности составляет 512 токенов, а выходные векторы имеют размерность 384. Лицензия модели не установлена по доступным данным.

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on intfloat/multilingual-e5-small

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-small. It maps sentences & paragraphs to a 384-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: intfloat/multilingual-e5-small
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 tokens
  • Similarity Function: Cosine Similarity

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': 384, '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})
  (2): Normalize()
)

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("srikarvar/multilingual-e5-small-pairclass-4")
# Run inference
sentences = [
    'What is the melting point of ice at sea level?',
    'What is the boiling point of water at sea level?',
    'Can you recommend a good restaurant nearby?',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

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

Evaluation

Metrics

Binary Classification

MetricValue
cosine_accuracy0.93
cosine_accuracy_threshold0.7887
cosine_f10.9238
cosine_f1_threshold0.782
cosine_precision0.8957
cosine_recall0.9537
cosine_ap0.9603
dot_accuracy0.93
dot_accuracy_threshold0.7887
dot_f10.9238
dot_f1_threshold0.782
dot_precision0.8957
dot_recall0.9537
dot_ap0.9603
manhattan_accuracy0.9218
manhattan_accuracy_threshold9.9367
manhattan_f10.9148
manhattan_f1_threshold10.3162
manhattan_precision0.887
manhattan_recall0.9444
manhattan_ap0.9579
euclidean_accuracy0.93
euclidean_accuracy_threshold0.6501
euclidean_f10.9238
euclidean_f1_threshold0.6603
euclidean_precision0.8957
euclidean_recall0.9537
euclidean_ap0.9603
max_accuracy0.93
max_accuracy_threshold9.9367
max_f10.9238
max_f1_threshold10.3162
max_precision0.8957
max_recall0.9537
max_ap0.9603

Binary Classification

MetricValue
cosine_accuracy0.93
cosine_accuracy_threshold0.7887
cosine_f10.9238
cosine_f1_threshold0.782
cosine_precision0.8957
cosine_recall0.9537
cosine_ap0.9603
dot_accuracy0.93
dot_accuracy_threshold0.7887
dot_f10.9238
dot_f1_threshold0.782
dot_precision0.8957
dot_recall0.9537
dot_ap0.9603
manhattan_accuracy0.9218
manhattan_accuracy_threshold9.9367
manhattan_f10.9148
manhattan_f1_threshold10.3162
manhattan_precision0.887
manhattan_recall0.9444
manhattan_ap0.9579
euclidean_accuracy0.93
euclidean_accuracy_threshold0.6501
euclidean_f10.9238
euclidean_f1_threshold0.6603
euclidean_precision0.8957
euclidean_recall0.9537
euclidean_ap0.9603
max_accuracy0.93
max_accuracy_threshold9.9367
max_f10.9238
max_f1_threshold10.3162
max_precision0.8957
max_recall0.9537
max_ap0.9603

Training Details

Training Dataset

Unnamed Dataset

  • Size: 971 training samples
  • Columns: sentence2, sentence1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence2sentence1label
    typestringstringint
    detailsmin: 4 tokensmean: 10.12 tokensmax: 22 tokensmin: 6 tokensmean: 10.82 tokensmax: 22 tokens0: ~48.61%1: ~51.39%
  • Samples:
    sentence2sentence1label
    Total number of bones in an adult human bodyHow many bones are in the human body?1
    What is the largest river in North America?What is the largest lake in North America?0
    What is the capital of Australia?What is the capital of New Zealand?0
  • Loss: OnlineContrastiveLoss

Evaluation Dataset

Unnamed Dataset

  • Size: 243 evaluation samples
  • Columns: sentence2, sentence1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence2sentence1label
    typestringstringint
    detailsmin: 4 tokensmean: 10.09 tokensmax: 20 tokensmin: 6 tokensmean: 10.55 tokensmax: 22 tokens0: ~55.56%1: ~44.44%
  • Samples:
    sentence2sentence1label
    What are the various forms of renewable energy?What are the different types of renewable energy?1
    Gravity discovererWho discovered gravity?1
    Can you help me write this report?Can you help me understand this report?0
  • Loss: OnlineContrastiveLoss

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 2
  • learning_rate: 3e-06
  • weight_decay: 0.01
  • num_train_epochs: 15
  • lr_scheduler_type: reduce_lr_on_plateau
  • warmup_ratio: 0.1
  • load_best_model_at_end: True
  • optim: adamw_torch_fused

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 2
  • eval_accumulation_steps: None
  • learning_rate: 3e-06
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 15
  • max_steps: -1
  • lr_scheduler_type: reduce_lr_on_plateau
  • 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: 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}
  • 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_fused
  • 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 Losslosspair-class-dev_max_appair-class-test_max_ap
00--0.6426-
0.6452104.7075---
0.967715-3.14810.7843-
1.2903203.431---
1.9355303.4054---
2.031-2.18200.8692-
2.5806402.2735---
2.967746-1.81850.9078-
3.2258502.3159---
3.8710602.1466---
4.062-1.57690.9252-
4.5161701.6873---
4.967777-1.43420.9310-
5.1613801.5927---
5.8065901.4184---
6.093-1.35440.9357-
6.45161001.333---
6.9677108-1.26300.9402-
7.09681101.089---
7.74191201.0947---
8.0124-1.21200.9444-
8.38711300.8118---
8.9677139-1.16410.9454-
9.03231401.0237---
9.67741500.8406---
10.0155-1.04810.9464-
10.32261600.7081---
10.96771700.73970.93240.9509-
11.61291800.5604---
12.0186-0.83860.9556-
12.25811900.5841---
12.90322000.5463---
12.9677201-0.79300.9577-
13.54842100.4599---
14.0217-0.75640.9599-
14.19352200.2437---
14.5161225-0.75220.96030.9603
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 0.32.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…

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

0 моделей