SentenceTransformer based on deepvk/USER-bge-m3

This is a sentence-transformers model finetuned from deepvk/USER-bge-m3. It maps inputs to a 1024-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: deepvk/USER-bge-m3
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 1024 dimensions
  • Similarity Function: Cosine Similarity
  • Supported Modality: Text

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'XLMRobertaModel'})
  (1): Pooling({'embedding_dimension': 1024, 'pooling_mode': 'cls', 'include_prompt': True})
  (2): Normalize({'module_input_name': 'sentence_embedding', 'module_output_name': 'sentence_embedding'})
)

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("el1jah184/retriever")
# Run inference
queries = [
    'Разрешен ли заезд СПК на железнодорожные пути необщего пользования?',
]
documents = [
    'ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ДВИЖЕНИЯ СПЕЦИАЛЬНОГО ПОДВИЖНОГО СОСТАВА НА КОМБИНИРОВАННОМ ХОДУ\nОбщие положения:\n\nЗаезд (съезд) СПК на железнодорожный путь допускается производить на железнодорожных путях перегонов, отдельных железнодорожных путях железнодорожных станций или железнодорожных путях необщего пользования, в том числе на специально оборудованных площадках.',
    'ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ДВИЖЕНИЯ СПЕЦИАЛЬНОГО ПОДВИЖНОГО СОСТАВА НА КОМБИНИРОВАННОМ ХОДУ\nОрганизация движения СПК на перегоне:\n\nЗапрещается приступать к работам по подготовке к заезду (съезду) СПК и производить указанные операции до получения руководителем работ по средствам технологической железнодорожной электросвязи приказа диспетчера поездного о закрытии перегона (пути перегона).',
    'ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ДВИЖЕНИЯ СПЕЦИАЛЬНОГО ПОДВИЖНОГО СОСТАВА НА КОМБИНИРОВАННОМ ХОДУ\nОрганизация движения СПК на железнодорожной станции:\n\nПолучив согласие диспетчера поездного, дежурный по железнодорожной станции подписывает в журнале осмотра запись с отметкой времени, разрешая руководителю работ начать ограждение места заезда (съезда) СПК, а также при необходимости - смежных с ним путей.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 1024] [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.5949, 0.4417, 0.3585]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.7991
cosine_accuracy@3 0.933
cosine_accuracy@5 0.9643
cosine_accuracy@10 0.9955
cosine_precision@1 0.7991
cosine_precision@3 0.311
cosine_precision@5 0.1929
cosine_precision@10 0.0996
cosine_recall@1 0.7991
cosine_recall@3 0.933
cosine_recall@5 0.9643
cosine_recall@10 0.9955
cosine_ndcg@10 0.9003
cosine_mrr@10 0.8693
cosine_map@20 0.8696

Training Details

Training Dataset

Unnamed Dataset

  • Size: 415 training samples
  • Columns: anchor, positive, negative_1, and negative_2
  • Approximate statistics based on the first 100 samples:
    anchor positive negative_1 negative_2
    type string string string string
    modality text text text text
    details
    • min: 16 tokens
    • mean: 30.5 tokens
    • max: 51 tokens
    • min: 177 tokens
    • mean: 386.2 tokens
    • max: 581 tokens
    • min: 143 tokens
    • mean: 467.57 tokens
    • max: 1281 tokens
    • min: 159 tokens
    • mean: 427.37 tokens
    • max: 1511 tokens
  • Samples:
    anchor positive negative_1 negative_2
    Как возобновляется движение поездов на однопутном перегоне после восстановления систем интервального регулирования и связи? ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    После восстановления действия соответствующих систем интервального регулирования движения поездов и связи движение поездов по этим системам возобновляется локальным актом (далее - приказ) диспетчера поездного, который обязан предварительно проверить свободность перегона.
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    В течение перерыва действия всех систем интервального регулирования движения поездов и связи поезда отправляются по разрешениям на бланке ДУ-56.Для обеспечения непрерывного взаимодействия друг с другом, дежурные смежных железнодорожных станций впредь до восстановления действия систем интервального регулирования движения поездов и связи обязаны пересылать с машинистом ведущего локомотива каждого поезда в обоих направлениях письменные извещения "А" или "Б" о дальнейшем отправлении поездов.Извещения "А", "Б" и "В" на обеих железнодорожных станциях записываются в журнал поездных телефонограмм.Переход на движение поездов при посредстве письменных извещений оформляется в журн...
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ НА УЧАСТКАХ, ОБОРУДОВАННЫХ ПОЛУАВТОМАТИЧЕСКОЙ БЛОКИРОВКОЙ
    Прием и отправление поездов:

    Отправление поездов на однопутных и двухпутных перегонах (по правильному железнодорожному пути) с возвращением с перегона на железнодорожную станцию отправления производится при запрещающем показании выходного светофора с выдачей машинисту ключа-жезла на право проследования выходного светофора с запрещающим показанием и обратного следования по перегону до границы станции.При этом на однопутных перегонах перед отправлением поезда на перегон с последующим возвращением должно быть получено от смежной железнодорожной станции по блок-аппарату согласие на отправление поезда или блок-система переключена на соответствующее направление движения.Отправление двух и более единиц специального самоходного подвижного состава ...
    Кто отдаёт приказ о возобновлении движения поездов на однопутном перегоне после устранения перерыва связи? ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    После восстановления действия соответствующих систем интервального регулирования движения поездов и связи движение поездов по этим системам возобновляется локальным актом (далее - приказ) диспетчера поездного, который обязан предварительно проверить свободность перегона.
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    Если дежурным по железнодорожной станции, получающим с прекращением действия связи право на отправление первого поезда в преимущественном направлении, разрешение на отправление поезда было получено до перерыва действия связи, то, отправляя поезд по этому разрешению, он обязан одновременно установить письменную связь с дежурным смежной железнодорожной станции.
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. Общие требования к организации движения поездов на железнодорожном транспорте:

    Дежурный по железнодорожной станции после прибытия (возвращения), отправления или проследования поезда обязан немедленно сообщить об этом дежурному по железнодорожной станции смежной станции и диспетчеру поездному.
    На станциях, оборудованных автоматизированными рабочими местами управления электрической централизации, данные действия производятся подачей соответствующих управляющих команд.
    Об отправлении (проследовании) поезда сообщается:
    "Поезд N ... отправился (проследовал) в ... ч ... минут".
    О прибытии (возвращении) поезда сообщается:
    "Поезд N ... прибыл (возвратился) в ... ч ... минут".
    Если поезд следует с подталкивающим локомотивом, уведомления об отправлении и прибытии такого поезда дополняются словами "с толкачом".
    При наличии в поезде вагонов с о...
    Что обязан проверить диспетчер поездной перед выдачей приказа о возобновлении движения поездов на однопутном перегоне? ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    После восстановления действия соответствующих систем интервального регулирования движения поездов и связи движение поездов по этим системам возобновляется локальным актом (далее - приказ) диспетчера поездного, который обязан предварительно проверить свободность перегона.
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    Если к моменту перерыва действия всех систем интервального регулирования движения поездов и связи на железнодорожной станции отсутствуют нечетные поезда для отправления на перегон, ограниченный железнодорожными станциями, между которыми прекратилась связь, то дежурный по железнодорожной станции, имеющий право отправления первого поезда, если ему известно о наличии к отправлению на этот перегон поезда со смежной железнодорожной станции, посылает на эту железнодорожную станцию извещение следующего содержания:содержание извещения "В": "Ожидаю от Вас поезд. ДСП ....".На перегонах, не оборудованных двусторонней автоматической блокировкой, для пересылки письменных извещений ф...
    ПТЭ (Правила технической эксплуатации). ИНСТРУКЦИЯ ПО ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ И МАНЕВРОВОЙ РАБОТЫ НА ЖЕЛЕЗНОДОРОЖНОМ ТРАНСПОРТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОРЯДОК ОРГАНИЗАЦИИ ДВИЖЕНИЯ ПОЕЗДОВ ПРИ ПЕРЕРЫВЕ ДЕЙСТВИЯ ВСЕХ СИСТЕМ ИНТЕРВАЛЬНОГО РЕГУЛИРОВАНИЯ ДВИЖЕНИЯ ПОЕЗДОВ И СВЯЗИ
    Движение поездов на однопутных перегонах:

    Если системы интервального регулирования движения поездов и связи восстановлены ранее, чем диспетчерская связь, то дежурный по железнодорожной станции, пользующийся правом отправления поездов в преимущественном направлении, передает дежурному смежной железнодорожной станции телефонограмму следующего содержания:"На перегоне между станциями ... ... движение поездов устанавливается по ...... (указывается система интервального регулирования движения поездов).Последним прибыл от Вас поезд N .... Отправлен к Вам поезд N .... ДСП ....".Дежурный по смежной железнодорожной станции, убедившись в свободности перегона, отвечает:"Последним прибыл от Вас поезд N .... Отправлен к Вам ...
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 4,
        "mini_batch_num_tokens": null,
        "gather_across_devices": false,
        "directions": [
            "query_to_doc"
        ],
        "partition_mode": "joint",
        "hardness_mode": null,
        "hardness_strength": 0.0
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_steps: 0.1
  • fp16: True
  • load_best_model_at_end: True
  • gradient_checkpointing: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • do_predict: False
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 8
  • 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: 2
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_ratio: None
  • warmup_steps: 0.1
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • enable_jit_checkpoint: False
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • use_cpu: False
  • seed: 42
  • data_seed: None
  • bf16: False
  • fp16: True
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: -1
  • ddp_backend: None
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': 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
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • group_by_length: False
  • length_column_name: length
  • project: huggingface
  • trackio_space_id: trackio
  • 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
  • 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_for_metrics: []
  • eval_do_concat_batches: True
  • auto_find_batch_size: False
  • full_determinism: False
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_num_input_tokens_seen: no
  • 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: True
  • use_cache: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss ir_evaluator_cosine_ndcg@10
0.1154 3 1.9093 0.7953
0.2308 6 1.1852 0.8557
0.3462 9 0.5466 0.8754
0.4615 12 0.3247 0.8824
0.5769 15 0.3480 0.8783
0.6923 18 0.3173 0.8838
0.8077 21 0.3350 0.8866
0.9231 24 0.1581 0.8870
1.0385 27 0.2707 0.8900
1.1538 30 0.1166 0.8948
1.2692 33 0.1522 0.8979
1.3846 36 0.0784 0.9003

Training Time

  • Training: 11.2 minutes

Framework Versions

  • Python: 3.12.13
  • Sentence Transformers: 6.0.0
  • Transformers: 5.0.0
  • PyTorch: 2.10.0+cu128
  • Accelerate: 1.13.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",
}

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

@misc{oord2019representationlearningcontrastivepredictive,
      title={Representation Learning with Contrastive Predictive Coding},
      author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
      year={2019},
      eprint={1807.03748},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/1807.03748},
}
Downloads last month
24
Safetensors
Model size
0.4B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for el1jah184/retriever

Finetuned
(16)
this model

Papers for el1jah184/retriever

Evaluation results