/ Модель

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

Контекст
8 192 токена
Параметры
140 млн
Лицензия
MIT
Архитектура
modernbert · dense
Базовая модель
mmBERT-small
Библиотека
sentence-transformers
Опубликована
24 сен 2025

product-reranker-mmBERT-small

Ранжирование текстаТекст → score

Мультиязычный cross-encoder для оценки релевантности пар текстов и переранжирования результатов поиска, дообученный на данных о сходстве товаров.

109скачиваний за 30 дней0лайковвеса обновлены24 сен 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Antix5 разработал мультиязычный cross-encoder для ранжирования пар текстов. Модель дообучена на jhu-clsp/mmBERT-small с помощью библиотеки sentence-transformers на наборе Product Similarity Dataset и выдаёт оценку релевантности для пары запроса и документа. Её можно использовать для переранжирования результатов поиска и семантического поиска, в том числе для сопоставления названий и описаний товаров.

Модель содержит 140,5 млн параметров и построена на архитектуре ModernBERT. Метаданные указывают контекст до 8192 токенов, однако карточка задаёт максимальную длину последовательности 256 токенов. Поддерживаются французский, немецкий, китайский, русский, польский, испанский, итальянский, японский, арабский, хинди, португальский и нидерландский языки. Лицензия — MIT.

В карточке приведены метрики reranking на наборе rerank, но также сказано, что это только начинающий обучаться чекпойнт; опубликованные результаты и качество следует считать предварительными. Модель предназначена для оценки пар текстов, а не для генерации ответов.

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

  • Переранжирование результатов текстового поиска
  • Повторная сортировка документов по релевантности запросу
  • Поиск похожих товаров по названию и описанию
  • Сопоставление товаров с запросами на разных языках

Ограничения

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

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

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

Открыть на Hugging Face

mmBERT-small reranker (LambdaLoss NDCG2++)

This is a Cross Encoder model finetuned from jhu-clsp/mmBERT-small on the product_similarity_dataset dataset using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.

Model Details

Model Description

  • Model Type: Cross Encoder
  • Base model: jhu-clsp/mmBERT-small
  • Maximum Sequence Length: 256 tokens
  • Number of Output Labels: 1 label
  • Training Dataset:
  • Languages: multilingual, fr, de, zh, ru, pl, es, it, ja, ar, hi, pt, nl
  • License: mit

Model Sources

Warning : This model is just starting training, this is just a checkpoint

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 CrossEncoder

# Download from the 🤗 Hub
model = CrossEncoder("Antix5/product-reranker-mmBERT-small")
# Get scores for pairs of texts
pairs = [
    ['Milk Belgian Chocolate', 'Milk Chocolate Flavor'],
]
scores = model.predict(pairs)
print(scores.shape)
# (3,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    '70 % Cacao Dark Chocolate With Coconut',
    [
        'DRK CHCLT BAR, COCONUT',
        'Coconut Cream Filled Dark Chocolate',
        'Blueberry & Dark Chocolate With Chia',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Reranking

MetricValue
map0.9562 (-0.0359)
mrr@100.9561 (-0.0385)
ndcg@100.9656 (-0.0291)

Training Details

Training Dataset

product_similarity_dataset

  • Dataset: product_similarity_dataset at 7aba3ef
  • Size: 9,358 training samples
  • Columns: query, documents, and scores
  • Approximate statistics based on the first 1000 samples:
    querydocumentsscores
    typestringlistlist
    detailsmin: 6 charactersmean: 57.18 charactersmax: 197 characterssize: 16 elementssize: 16 elements
  • Samples:
    querydocumentsscores
    Premier 26764 Car Spinner, Santa, 25 by 19-1/2-Inch['Premier 26764 Tourbillon pour voiture, Santa, 25 x 19-1/2 pouces', 'BNTS, ЧИПСЫ ИЗ ФАСОЛИ NV И МОРСКАЯ СОЛЬ', 'Beanitos, Чипс из фасоли navy, Сыр на чо', 'K2 स्केट व्हील (4 का पैक)', 'BLST BALL МЯЧ ДЛЯ КИКА (2 ШТ.)', ...][1.0, 0.0, 0.0, 0.0, 0.0, ...]
    Juice Cocktail Blend From Concentrate, Apple Blueberry['Mélange de cocktail de jus à base de concentré, pomme myrtille', 'Orange Juice From Concentrate With Pulp', 'Tropical Juice Splash From Concentrate', 'BLUEBERRY JUICE DRNK', 'APPLE NECTAR JUICE DRINK FROM CNCNTRT', ...][1.0, 0.4, 0.35, 0.65, 0.55, ...]
    Fruity Sour Strips Fruit-Flavored Chewy Candy['Fruity Sour Strips Fruit-Flavored Chewy Candy', 'SR CANDIES, FRUIT SOUR', 'Fruit Candy, Fruit', 'FRT SNCK TUTTI FRUITY', 'Fruit Strips, Peach Passion', ...][1.0, 0.95, 0.7, 0.55, 0.9, ...]
  • Loss: LambdaLoss with these parameters:
    {
        "weighting_scheme": "sentence_transformers.cross_encoder.losses.LambdaLoss.NDCGLoss2PPScheme",
        "k": null,
        "sigma": 1.0,
        "eps": 1e-10,
        "reduction_log": "binary",
        "activation_fn": "torch.nn.modules.linear.Identity",
        "mini_batch_size": null
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True
  • gradient_checkpointing: True

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • 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
  • 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: 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}
  • parallelism_config: 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: None
  • hub_always_push: False
  • hub_revision: None
  • gradient_checkpointing: True
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • 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
  • 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
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

EpochStepTraining Lossrerank_ndcg@10
0.000910.1261-
0.0171200.1193-
0.0342400.0767-
0.0513600.0563-
0.0684800.055-
0.08551000.0546-
0.10261200.0483-
0.11971400.0489-
0.13681600.049-
0.15381800.0463-
0.17092000.0460.9419 (-0.0528)
0.18802200.0411-
0.20512400.0398-
0.22222600.0456-
0.23932800.0463-
0.25643000.043-
0.27353200.0447-
0.29063400.0419-
0.30773600.0403-
0.32483800.0429-
0.34194000.04230.9653 (-0.0294)
0.35904200.0406-
0.37614400.041-
0.39324600.0427-
0.41034800.0376-
0.42745000.0408-
0.44445200.0394-
0.46155400.0423-
0.47865600.0403-
0.49575800.0336-
0.51286000.0390.9668 (-0.0279)
0.52996200.0389-
0.54706400.0376-
0.56416600.0422-
0.58126800.0406-
0.59837000.037-
0.61547200.0368-
0.63257400.0365-
0.64967600.0356-
0.66677800.0359-
0.68388000.03680.9646 (-0.0301)
0.70098200.0342-
0.71798400.0376-
0.73508600.036-
0.75218800.0331-
0.76929000.0341-
0.78639200.0372-
0.80349400.0361-
0.82059600.0352-
0.83769800.0351-
0.854710000.03480.9620 (-0.0327)
0.871810200.0341-
0.888910400.0354-
0.906010600.035-
0.923110800.0325-
0.940211000.038-
0.957311200.0376-
0.974411400.0335-
0.991511600.0375-
-1-1-0.9656 (-0.0291)

Framework Versions

  • Python: 3.12.11
  • Sentence Transformers: 5.1.0
  • Transformers: 4.56.1
  • PyTorch: 2.8.0+cu126
  • Accelerate: 1.10.1
  • Datasets: 2.20.0
  • Tokenizers: 0.22.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",
}

LambdaLoss

@inproceedings{wang2018lambdaloss,
  title={The LambdaLoss Framework for Ranking Metric Optimization},
  author={Wang, Xuanhui and Li, Cheng and Golbandi, Nadav and Bendersky, Michael and Najork, Marc},
  booktitle={Proceedings of the 27th ACM international conference on information and knowledge management},
  pages={1313--1322},
  year={2018}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertForSequenceClassification
Ревизия весов
6e3893a

0 моделей