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
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
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
- Dataset:
ir_evaluator - Evaluated with InformationRetrievalEvaluator
| 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 tokensmean: 30.5 tokensmax: 51 tokens min: 177 tokensmean: 386.2 tokensmax: 581 tokens min: 143 tokensmean: 467.57 tokensmax: 1281 tokens min: 159 tokensmean: 427.37 tokensmax: 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: 16learning_rate: 2e-05num_train_epochs: 2warmup_steps: 0.1fp16: Trueload_best_model_at_end: Truegradient_checkpointing: Truebatch_sampler: no_duplicates
All Hyperparameters
do_predict: Falseprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 8gradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 2max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0.1log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Trueignore_data_skip: Falsefsdp: []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: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Nonegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Truepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Truegradient_checkpointing_kwargs: Noneinclude_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueuse_cache: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_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
- Training and Finetuning Embedding Models with Sentence Transformers: the end-to-end guide for training or finetuning Sentence Transformer models.
- Introduction to Matryoshka Embedding Models: variable-size embeddings that can be truncated with minimal quality loss.
- Binary and Scalar Embedding Quantization for Significantly Faster & Cheaper Retrieval: post-training compression of embedding vectors.
- Multimodal Embedding & Reranker Models with Sentence Transformers: use text, image, audio, and video models through the same API.
- Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers: train multimodal embedding models, with a Visual Document Retrieval walkthrough.
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},
}