RuModernBERT-small Russian Cross-Encoder Reranker

This is a Cross Encoder model finetuned from deepvk/RuModernBERT-small 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: deepvk/RuModernBERT-small
  • Maximum Sequence Length: 2048 tokens
  • Number of Output Labels: 1 label
  • Supported Modality: Text
  • Language: ru
  • License: mit

Model Sources

Full Model Architecture

CrossEncoder(
  (0): Transformer({'transformer_task': 'sequence-classification', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'logits'}}, 'module_output_name': 'scores', 'architecture': 'ModernBertForSequenceClassification'})
)

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("ARGA100/ru-reranker-modernbert-small")
# Get scores for pairs of inputs
pairs = [
    ['он поднимает несколько серьезных вопросов том, почему них действительно много денег уходит рекламу детских программ', 'Его совершенно волнует количество денег, потраченных рекламу время детских программ.'],
    ['Судья отклонил иск обязал компанию мистера Мейнарда выплатить адвокатам ответчиков более 100 000 долларов качестве судебных издержек', 'Судья был неподвижен время увольнения.'],
    ['Практикуется несколькими, возможно, более брезгливыми членами.', 'Несколько членов церкви практиковали искусство гадания через потрошение.'],
    ['действительно твердо привержен чистой воде чистому воздуху, также решению новых проблем, таких как глобальное потепление. прав том, что не сторонник налогов энергию. выступаю снижение налогов, чтобы стимулировать стимулировать более быстрое развитие этих новых видов технологий.', 'Рассказчик хочет стимулировать людей созданию новых видов технологий'],
    ['Двое солдат камуфляже получают еду женщины белом, то время как двое людей белом стоят прилавком наблюдают.', 'два человека получают еду женщины прилавка'],
]
scores = model.predict(pairs)
print(scores)
# [0.037  0.0033 0.8719 0.5652 0.888 ]

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'он поднимает несколько серьезных вопросов том, почему них действительно много денег уходит рекламу детских программ',
    [
        'Его совершенно волнует количество денег, потраченных рекламу время детских программ.',
        'Судья был неподвижен время увольнения.',
        'Несколько членов церкви практиковали искусство гадания через потрошение.',
        'Рассказчик хочет стимулировать людей созданию новых видов технологий',
        'два человека получают еду женщины прилавка',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Reranking

Metric Value
map 0.9121 (-0.0879)
mrr@10 0.9446 (-0.0554)
ndcg@10 0.9461 (-0.0539)

Training Details

Training Dataset

Unnamed Dataset

  • Size: 757,279 training samples
  • Columns: query, passage, and label
  • Approximate statistics based on the first 100 samples:
    query passage label
    type string string float
    modality text text
    details
    • min: 7 tokens
    • mean: 28.0 tokens
    • max: 103 tokens
    • min: 5 tokens
    • mean: 15.79 tokens
    • max: 60 tokens
    • min: 0.0
    • mean: 0.55
    • max: 1.0
  • Samples:
    query passage label
    он поднимает несколько серьезных вопросов том, почему них действительно много денег уходит рекламу детских программ Его совершенно волнует количество денег, потраченных рекламу время детских программ. 0.0
    Судья отклонил иск обязал компанию мистера Мейнарда выплатить адвокатам ответчиков более 100 000 долларов качестве судебных издержек Судья был неподвижен время увольнения. 0.0
    Практикуется несколькими, возможно, более брезгливыми членами. Несколько членов церкви практиковали искусство гадания через потрошение. 1.0
  • Loss: BinaryCrossEntropyLoss with these parameters:
    {
        "activation_fn": "torch.nn.modules.linear.Identity",
        "pos_weight": 0.7712584137916565
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • num_train_epochs: 1
  • learning_rate: 4.707354034253787e-05
  • warmup_steps: 0.05464875650952819
  • weight_decay: 0.00044173631027044093
  • fp16: True
  • per_device_eval_batch_size: 16
  • load_best_model_at_end: True
  • dataloader_num_workers: 4
  • remove_unused_columns: False
  • ddp_find_unused_parameters: False

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 16
  • num_train_epochs: 1
  • max_steps: -1
  • learning_rate: 4.707354034253787e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0.05464875650952819
  • optim: adamw_torch
  • optim_args: None
  • weight_decay: 0.00044173631027044093
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • optim_target_modules: None
  • gradient_accumulation_steps: 1
  • average_tokens_across_devices: True
  • max_grad_norm: 1.0
  • label_smoothing_factor: 0.0
  • bf16: False
  • fp16: True
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • use_liger_kernel: False
  • liger_kernel_config: None
  • use_cache: False
  • neftune_noise_alpha: None
  • torch_empty_cache_steps: None
  • auto_find_batch_size: False
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • include_num_input_tokens_seen: no
  • log_level: passive
  • log_level_replica: warning
  • disable_tqdm: False
  • project: huggingface
  • trackio_space_id: None
  • trackio_bucket_id: None
  • trackio_static_space_id: None
  • per_device_eval_batch_size: 16
  • prediction_loss_only: True
  • eval_on_start: False
  • eval_do_concat_batches: True
  • eval_use_gather_object: False
  • eval_accumulation_steps: None
  • include_for_metrics: []
  • batch_eval_metrics: False
  • save_only_model: False
  • save_on_each_node: False
  • enable_jit_checkpoint: False
  • push_to_hub: False
  • hub_private_repo: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_always_push: False
  • hub_revision: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • restore_callback_states_from_checkpoint: False
  • full_determinism: False
  • seed: 42
  • data_seed: None
  • use_cpu: False
  • 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
  • dataloader_drop_last: False
  • dataloader_num_workers: 4
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • dataloader_prefetch_factor: None
  • remove_unused_columns: False
  • label_names: None
  • train_sampling_strategy: random
  • length_column_name: length
  • ddp_find_unused_parameters: False
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • ddp_static_graph: None
  • ddp_backend: None
  • ddp_timeout: 1800
  • fsdp: None
  • fsdp_config: None
  • deepspeed: None
  • debug: []
  • skip_memory_metrics: True
  • do_predict: False
  • resume_from_checkpoint: None
  • warmup_ratio: None
  • local_rank: -1
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Click to expand
Epoch Step Training Loss val_ndcg@10
-1 -1 - 0.7943 (-0.2057)
0.0000 1 1.4710 -
0.0042 200 1.4013 -
0.0085 400 0.5979 -
0.0127 600 0.5999 -
0.0169 800 0.5945 -
0.0211 1000 0.5892 -
0.0254 1200 0.5755 -
0.0296 1400 0.5645 -
0.0338 1600 0.5724 -
0.0380 1800 0.5580 -
0.0423 2000 0.5464 -
0.0465 2200 0.5608 -
0.0507 2400 0.5423 -
0.0549 2600 0.5369 -
0.0592 2800 0.5486 -
0.0634 3000 0.5246 -
0.0676 3200 0.5327 -
0.0718 3400 0.5099 -
0.0761 3600 0.5206 -
0.0803 3800 0.5020 -
0.0845 4000 0.4972 -
0.0887 4200 0.5019 -
0.0930 4400 0.4833 -
0.0972 4600 0.4934 -
0.1014 4800 0.4929 -
0.1056 5000 0.4984 -
0.1099 5200 0.4815 -
0.1141 5400 0.5029 -
0.1183 5600 0.4811 -
0.1225 5800 0.4606 -
0.1268 6000 0.4862 -
0.1310 6200 0.4804 -
0.1352 6400 0.4709 -
0.1394 6600 0.4880 -
0.1437 6800 0.4795 -
0.1479 7000 0.4633 -
0.1521 7200 0.4780 -
0.1563 7400 0.4513 -
0.1606 7600 0.4539 -
0.1648 7800 0.4714 -
0.1690 8000 0.4594 -
0.1733 8200 0.4657 -
0.1775 8400 0.4718 -
0.1817 8600 0.4584 -
0.1859 8800 0.4491 -
0.1902 9000 0.4537 -
0.1944 9200 0.4549 -
0.1986 9400 0.4630 -
0.2000 9465 - 0.9146 (-0.0854)
0.2028 9600 0.4433 -
0.2071 9800 0.4564 -
0.2113 10000 0.4646 -
0.2155 10200 0.4485 -
0.2197 10400 0.4429 -
0.2240 10600 0.4508 -
0.2282 10800 0.4455 -
0.2324 11000 0.4417 -
0.2366 11200 0.4410 -
0.2409 11400 0.4382 -
0.2451 11600 0.4523 -
0.2493 11800 0.4231 -
0.2535 12000 0.4396 -
0.2578 12200 0.4408 -
0.2620 12400 0.4466 -
0.2662 12600 0.4427 -
0.2704 12800 0.4522 -
0.2747 13000 0.4316 -
0.2789 13200 0.4292 -
0.2831 13400 0.4297 -
0.2873 13600 0.4193 -
0.2916 13800 0.4283 -
0.2958 14000 0.4286 -
0.3000 14200 0.4293 -
0.3042 14400 0.4267 -
0.3085 14600 0.4450 -
0.3127 14800 0.4336 -
0.3169 15000 0.4117 -
0.3211 15200 0.4254 -
0.3254 15400 0.4184 -
0.3296 15600 0.4180 -
0.3338 15800 0.4184 -
0.3381 16000 0.4328 -
0.3423 16200 0.4212 -
0.3465 16400 0.4370 -
0.3507 16600 0.4126 -
0.3550 16800 0.4160 -
0.3592 17000 0.4237 -
0.3634 17200 0.4224 -
0.3676 17400 0.4119 -
0.3719 17600 0.4209 -
0.3761 17800 0.4094 -
0.3803 18000 0.4214 -
0.3845 18200 0.4208 -
0.3888 18400 0.4201 -
0.3930 18600 0.4003 -
0.3972 18800 0.4239 -
0.4000 18930 - 0.9305 (-0.0695)
0.4014 19000 0.4219 -
0.4057 19200 0.4181 -
0.4099 19400 0.3995 -
0.4141 19600 0.4168 -
0.4183 19800 0.4038 -
0.4226 20000 0.4055 -
0.4268 20200 0.4019 -
0.4310 20400 0.3999 -
0.4352 20600 0.4055 -
0.4395 20800 0.3921 -
0.4437 21000 0.4050 -
0.4479 21200 0.4030 -
0.4521 21400 0.4047 -
0.4564 21600 0.3961 -
0.4606 21800 0.4128 -
0.4648 22000 0.4031 -
0.4690 22200 0.4044 -
0.4733 22400 0.3807 -
0.4775 22600 0.4081 -
0.4817 22800 0.3995 -
0.4859 23000 0.4035 -
0.4902 23200 0.4009 -
0.4944 23400 0.3859 -
0.4986 23600 0.4059 -
0.5029 23800 0.3905 -
0.5071 24000 0.3918 -
0.5113 24200 0.3980 -
0.5155 24400 0.3953 -
0.5198 24600 0.3873 -
0.5240 24800 0.3933 -
0.5282 25000 0.3919 -
0.5324 25200 0.4035 -
0.5367 25400 0.3900 -
0.5409 25600 0.3843 -
0.5451 25800 0.3855 -
0.5493 26000 0.3862 -
0.5536 26200 0.3862 -
0.5578 26400 0.3986 -
0.5620 26600 0.3831 -
0.5662 26800 0.3970 -
0.5705 27000 0.3867 -
0.5747 27200 0.3997 -
0.5789 27400 0.4003 -
0.5831 27600 0.3716 -
0.5874 27800 0.3877 -
0.5916 28000 0.4030 -
0.5958 28200 0.3844 -
0.5999 28395 - 0.9410 (-0.0590)
0.6000 28400 0.3882 -
0.6043 28600 0.3934 -
0.6085 28800 0.3883 -
0.6127 29000 0.3937 -
0.6169 29200 0.3767 -
0.6212 29400 0.3805 -
0.6254 29600 0.3888 -
0.6296 29800 0.3885 -
0.6338 30000 0.3834 -
0.6381 30200 0.3732 -
0.6423 30400 0.3812 -
0.6465 30600 0.3816 -
0.6508 30800 0.3834 -
0.6550 31000 0.3891 -
0.6592 31200 0.3597 -
0.6634 31400 0.3666 -
0.6677 31600 0.3775 -
0.6719 31800 0.3597 -
0.6761 32000 0.3818 -
0.6803 32200 0.3740 -
0.6846 32400 0.3706 -
0.6888 32600 0.3633 -
0.6930 32800 0.3740 -
0.6972 33000 0.3848 -
0.7015 33200 0.3803 -
0.7057 33400 0.3697 -
0.7099 33600 0.3643 -
0.7141 33800 0.3707 -
0.7184 34000 0.3702 -
0.7226 34200 0.3653 -
0.7268 34400 0.3800 -
0.7310 34600 0.3651 -
0.7353 34800 0.3656 -
0.7395 35000 0.3893 -
0.7437 35200 0.3772 -
0.7479 35400 0.3836 -
0.7522 35600 0.3643 -
0.7564 35800 0.3651 -
0.7606 36000 0.3797 -
0.7648 36200 0.3841 -
0.7691 36400 0.3658 -
0.7733 36600 0.3733 -
0.7775 36800 0.3851 -
0.7817 37000 0.3745 -
0.7860 37200 0.3648 -
0.7902 37400 0.3603 -
0.7944 37600 0.3703 -
0.7986 37800 0.3749 -
0.7999 37860 - 0.9446 (-0.0554)
0.8029 38000 0.3696 -
0.8071 38200 0.3541 -
0.8113 38400 0.3635 -
0.8156 38600 0.3761 -
0.8198 38800 0.3633 -
0.8240 39000 0.3600 -
0.8282 39200 0.3700 -
0.8325 39400 0.3489 -
0.8367 39600 0.3807 -
0.8409 39800 0.3548 -
0.8451 40000 0.3635 -
0.8494 40200 0.3602 -
0.8536 40400 0.3690 -
0.8578 40600 0.3470 -
0.8620 40800 0.3603 -
0.8663 41000 0.3607 -
0.8705 41200 0.3633 -
0.8747 41400 0.3584 -
0.8789 41600 0.3656 -
0.8832 41800 0.3666 -
0.8874 42000 0.3652 -
0.8916 42200 0.3721 -
0.8958 42400 0.3632 -
0.9001 42600 0.3529 -
0.9043 42800 0.3587 -
0.9085 43000 0.3552 -
0.9127 43200 0.3671 -
0.9170 43400 0.3656 -
0.9212 43600 0.3604 -
0.9254 43800 0.3545 -
0.9296 44000 0.3592 -
0.9339 44200 0.3569 -
0.9381 44400 0.3693 -
0.9423 44600 0.3610 -
0.9465 44800 0.3516 -
0.9508 45000 0.3628 -
0.9550 45200 0.3575 -
0.9592 45400 0.3595 -
0.9634 45600 0.3663 -
0.9677 45800 0.3395 -
0.9719 46000 0.3484 -
0.9761 46200 0.3498 -
0.9804 46400 0.3476 -
0.9846 46600 0.3467 -
0.9888 46800 0.3619 -
0.9930 47000 0.3604 -
0.9973 47200 0.3535 -
0.9999 47325 - 0.9461 (-0.0539)
1.0 47330 - 0.9461 (-0.0539)
  • The bold row denotes the saved checkpoint.

Training Time

  • Training: 50.6 minutes
  • Evaluation: 7.4 seconds
  • Total: 50.7 minutes

Framework Versions

  • Python: 3.11.15
  • Sentence Transformers: 5.6.0
  • Transformers: 5.12.1
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.14.0
  • Datasets: 5.0.0
  • Tokenizers: 0.22.2

Additional Resources

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",
}
Downloads last month
18
Safetensors
Model size
34.5M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ARGA100/ru-reranker-modernbert-small

Finetuned
(7)
this model

Paper for ARGA100/ru-reranker-modernbert-small

Evaluation results