/ Модель

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

Контекст
514 токенов
Параметры
305 млн
Архитектура
xlm-roberta · dense
Базовая модель
multilingual-e5-base
Библиотека
sentence-transformers
Опубликована
27 сен 2024

multilingual-e5-base-test

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

Дообученная многоязычная модель эмбеддингов для семантического поиска и сопоставления текстов, ориентированная на поиск товаров по запросам и описаниям.

111скачиваний за 30 дней0лайковвеса обновлены27 сен 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rztk-bohdanbilonoh/multilingual-e5-base-test — модель Sentence Transformers, дообученная разработчиком Bohdan Bilonoh на основе intfloat/multilingual-e5-base на парах запросов и текстов товаров из набора rztk/rozetka_positive_pairs. Она использует XLM-RoBERTa с mean pooling и нормализацией, преобразует предложения и абзацы в плотные эмбеддинги размерности 768 и предназначена для поиска и сравнения текстов по косинусному сходству.

Модель подходит для семантического поиска по каталогу товаров, поиска похожих запросов, сопоставления предложений, кластеризации и извлечения признаков. В README приведены результаты поиска по русско-украинским названиям товаров; обучение на парах запросов и описаний Rozetka ориентирует её на товарный поиск. Контекст составляет до 512 токенов по README (514 по метаданным). Поддерживаются русский и украинский языки, видимые в примерах и оценке, а базовая multilingual-e5-base рассчитана на многоязычную работу. Репозиторий содержит веса safetensors, размер модели — 305,2 млн параметров. Лицензия в предоставленных данных не указана.

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

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

Ограничения

Модель обучалась на товарных парах Rozetka, поэтому качество на других предметных областях может отличаться; максимальная длина входа ограничена примерно 512 токенами.

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on intfloat/multilingual-e5-base

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-base on the rztk/rozetka_positive_pairs 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: XLMRobertaModel 
  (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})
  (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("sentence_transformers_model_id")
# Run inference
sentences = [
    'поилка для детей',
    "<category>Поїльники та непроливайки</category><brand>Nuk</brand><options><option_title>Стать дитини</option_title><option_value>Хлопчик</option_value><option_title>Стать дитини</option_title><option_value>Дівчинка</option_value><option_title>Кількість вантажних місць</option_title><option_value>1</option_value><option_title>Країна реєстрації бренда</option_title><option_value>Німеччина</option_value><option_title>Країна-виробник товару</option_title><option_value>Німеччина</option_value><option_title>Об'єм, мл</option_title><option_value>300</option_value><option_title>Матеріал</option_title><option_value>Пластик</option_value><option_title>Колір</option_title><option_value>Блакитний</option_value><option_title>Тип</option_title><option_value>Поїльник</option_value><option_title>Тип гарантійного талона</option_title><option_value>Гарантія по чеку</option_value><option_title>Доставка Premium</option_title></options>",
    'Шафа розпашній Fenster Оксфорд Лагуна',
]
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

Information Retrieval

MetricValue
dot_accuracy@10.5429
dot_accuracy@30.6889
dot_accuracy@50.7492
dot_accuracy@100.8
dot_precision@10.5429
dot_precision@30.5217
dot_precision@50.5035
dot_precision@100.4768
dot_recall@10.0092
dot_recall@30.0238
dot_recall@50.0351
dot_recall@100.0599
dot_ndcg@100.4937
dot_mrr@100.6287
dot_map@1000.1404

Information Retrieval

MetricValue
dot_accuracy@10.1619
dot_precision@10.1619
dot_recall@10.002
dot_ndcg@10.1619
dot_mrr@10.1619
dot_map@1000.0213

Information Retrieval

MetricValue
dot_accuracy@10.146
dot_precision@10.146
dot_recall@10.0017
dot_ndcg@10.146
dot_mrr@10.146
dot_map@1000.0152

Information Retrieval

MetricValue
dot_accuracy@10.1016
dot_precision@10.1016
dot_recall@10.0013
dot_ndcg@10.1016
dot_mrr@10.1016
dot_map@1000.012

Information Retrieval

MetricValue
dot_accuracy@10.054
dot_precision@10.054
dot_recall@10.0007
dot_ndcg@10.054
dot_mrr@10.054
dot_map@1000.0054

Training Details

Training Dataset

rztk/rozetka_positive_pairs

  • Dataset: rztk/rozetka_positive_pairs
  • Size: 44,800 training samples
  • Columns: query and text
  • Approximate statistics based on the first 1000 samples:
    querytext
    typestringstring
    detailsmin: 3 tokensmean: 7.18 tokensmax: 16 tokensmin: 9 tokensmean: 158.88 tokensmax: 512 tokens
  • Samples:
    querytext
    p smart zTPU чехол Ultrathin Series 0,33 mm для Huawei P Smart Z Безбарвний (прозорий)
    p smart zЧохли для мобільних телефонів<option_title>Матеріал</option_title><option_value>Силікон</option_value><option_title>Колір</option_title><option_value>Transparent</option_value><option_title>Сумісна модель</option_title><option_value>P Smart Z</option_value>
    p smart zTPU чехол Ultrathin Series 0,33mm для Huawei P Smart Z Бесцветный (прозрачный)
  • Loss: sentence_transformers_training.model.matryoshka2d_loss.RZTKMatryoshka2dLoss with these parameters:
    {
        "loss": "RZTKMultipleNegativesRankingLoss",
        "n_layers_per_step": 1,
        "last_layer_weight": 1.0,
        "prior_layers_weight": 1.0,
        "kl_div_weight": 1.0,
        "kl_temperature": 0.3,
        "matryoshka_dims": [
            768,
            512,
            256,
            128
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": 1
    }
    

Evaluation Dataset

rztk/rozetka_positive_pairs

  • Dataset: rztk/rozetka_positive_pairs
  • Size: 4,480 evaluation samples
  • Columns: query and text
  • Approximate statistics based on the first 1000 samples:
    querytext
    typestringstring
    detailsmin: 3 tokensmean: 6.29 tokensmax: 11 tokensmin: 12 tokensmean: 161.36 tokensmax: 512 tokens
  • Samples:
    querytext
    кошелек женскийПортмоне BAELLERRY Forever N2345 Черный (020354)
    кошелек женскийГаманціBaellerry<option_title>Для кого</option_title><option_value>Для жінок</option_value><option_title>Вид</option_title><option_value>Портмоне</option_value><option_title>Матеріал</option_title><option_value>Штучна шкіра</option_value><option_title>Країна-виробник товару</option_title><option_value>Китай</option_value>
    кошелек женскийПортмоне BAELLERRY Forever N2345 Черный (020354)
  • Loss: sentence_transformers_training.model.matryoshka2d_loss.RZTKMatryoshka2dLoss with these parameters:
    {
        "loss": "RZTKMultipleNegativesRankingLoss",
        "n_layers_per_step": 1,
        "last_layer_weight": 1.0,
        "prior_layers_weight": 1.0,
        "kl_div_weight": 1.0,
        "kl_temperature": 0.3,
        "matryoshka_dims": [
            768,
            512,
            256,
            128
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": 1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 112
  • per_device_eval_batch_size: 112
  • torch_empty_cache_steps: 30
  • learning_rate: 2e-05
  • num_train_epochs: 1.0
  • warmup_ratio: 0.1
  • bf16: True
  • bf16_full_eval: True
  • tf32: True
  • dataloader_num_workers: 2
  • load_best_model_at_end: True
  • optim: adafactor
  • push_to_hub: True

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 112
  • per_device_eval_batch_size: 112
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: 30
  • learning_rate: 2e-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.0
  • 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: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: True
  • fp16_full_eval: False
  • tf32: True
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: True
  • dataloader_num_workers: 2
  • 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: adafactor
  • 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: True
  • 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
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • ddp_static_graph: False
  • ddp_comm_hook: bf16
  • gradient_as_bucket_view: False

Training Logs

EpochStepTraining Losslossrusisms-uk-title--matryoshka_dim-128--_dot_map@100rusisms-uk-title--matryoshka_dim-256--_dot_map@100rusisms-uk-title--matryoshka_dim-512--_dot_map@100rusisms-uk-title--matryoshka_dim-768--_dot_map@100rusisms-uk-title_dot_map@100
0.1106.6103------
0.2205.524------
0.3304.7593.6444-----
0.4404.5195------
0.5503.6598------
0.6603.79122.8962-----
0.7703.9935------
0.8803.3929------
0.9903.61012.6889-----
1.01003.8753-0.00540.01200.01520.02130.1404
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.12.6
  • Sentence Transformers: 3.0.1
  • Transformers: 4.45.1
  • PyTorch: 2.4.1
  • Accelerate: 0.34.2
  • Datasets: 3.0.0
  • Tokenizers: 0.20.0

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…

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

0 моделей