Edit model card

SentenceTransformer based on cointegrated/rubert-tiny2

This is a sentence-transformers model finetuned from cointegrated/rubert-tiny2. It maps sentences & paragraphs to a 312-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 Type: Sentence Transformer
  • Base model: cointegrated/rubert-tiny2
  • Maximum Sequence Length: 2048 tokens
  • Output Dimensionality: 312 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 312, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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("WpythonW/RUbert-tiny_custom")
# Run inference
sentences = [
    'Какие документы нужны для приема иностранного гражданина?',
    'Для проведения приема необходимы документы: 1) Нотариально заверенный перевод паспорта на русский язык + паспорт; 2) СНИЛС или уведомление о регистрации в системе АДИ-РЕГ, где указаны полные ФИО, номер СНИЛС, дата рождения и место рождения кандидата (Уведомление можно получить в МФЦ или территориальном органе ПФР); 3) Вид на жительство либо иностранный паспорт с разрешением на временное проживание; 4) Миграционная карта ( при наличии) ; 5) Расписка об отсутствии/подтверждении государственной/муниципальной службы; 6) Копия ТК или СТД-Р (если кандидат перешёл на электронную трудовую книжку у предыдущего работодателя). 7) Реквизиты карты Альфа-банк или реквизиты Сбербанка. 8) Актуальная прописка или свидетельство о временной регистрации по месту жительства (соответствующую субъекту трудоустройства). Срок окончания действия документов должен быть не меньше 60 дней от даты приема. Инструкция и шаблоны доступны по ссылке https://company-x5.ru/cms/zayavkaskillaz',
    'Для открытия табеля создайте, пожалуйста, заявку в разделе "Заявки" по теме "Табель/график/рабочее время", выбрав подтему "Открытие табеля".',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 312]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.8087
cosine_accuracy@3 0.9454
cosine_precision@1 0.8087
cosine_precision@3 0.3161
cosine_recall@1 0.0764
cosine_recall@3 0.0894
cosine_ndcg@10 0.2021
cosine_mrr@10 0.8806
cosine_map@100 0.0869
dot_accuracy@1 0.8087
dot_accuracy@3 0.9454
dot_precision@1 0.8087
dot_precision@3 0.3161
dot_recall@1 0.0764
dot_recall@3 0.0894
dot_ndcg@10 0.2021
dot_mrr@10 0.8806
dot_map@100 0.0869

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,647 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 3 tokens
    • mean: 11.46 tokens
    • max: 54 tokens
    • min: 7 tokens
    • mean: 62.33 tokens
    • max: 371 tokens
  • Samples:
    anchor positive
    Какие документы необходимо предоставить при приеме беженцев? Вариант 1: 1) действующее удостоверение беженца: документ, удостоверяющий личность на территории РФ; 2) регистрация по месту пребывания; 3) СНИЛС (при наличии); 4) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа). Вариант 2: 1) действующее свидетельство о предоставлении временного убежища: документ, удостоверяющий личность на территории РФ; 2) может быть предоставлен паспорт, но основанием для трудоустройства будет именно свидетельство; 3) регистрация по месту пребывания; 4) СНИЛС (при наличии); 5) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа). Вариант 3: 1) паспорт гражданина Украины, Донецкой Народной Республики или Луганской Народной Республики; 2) документ, подтверждающий прохождение дактилоскопии и фотографирования. Данные должны совпадать с данными в паспорте; 3) регистрация по месту пребывания; 4) СНИЛС (при наличии); 5) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа); 6) документ, подтверждающий время пребывания на территории РФ*. Вариант 4: 1) действующий паспорт гражданина Украины/ЛНР/ДНР; 2) действующий патент (указанная в нем территория действия соответствует региону трудоустройства)/РВП/ВНЖ; 3) миграционная карта; 4) регистрация по месту пребывания; 5) СНИЛС (при наличии); 6) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа); 7) для ИГ с РВП или ВНЖ документ, подтверждающий время пребывания на территории РФ*. Вариант 5: При наличии у кандидата паспорта гражданина РФ трудоустройство осуществляется по стандартной процедуре приема на работу граждан РФ. Инструкция и шаблоны доступны по ссылке https://company-x5.ru/cms/zayavkaskillaz
    Что такое МЧД и зачем она нужна? Ранее, если для подписания документов требовалась квалифицированная электронная подпись, то применялась усиленная квалифицированная электронная подпись юридического лица – УКЭП ЮЛ. Особенность этой электронной подписи (ЭП) состояла в том, что владельцем сертификата была указана организация наряду с сотрудником. Если упростить, то такую ЭП можно представить как подпись и печать на любом бумажном документе. С 01.09.2023 в силу вступили правки в Федеральный закон РФ № 63‑ФЗ «Об электронной подписи». Суть этих правок в следующем: · выпуск УКЭП ЮЛ возможен только для Генеральных директоров компании и только в удостоверяющем центре Федеральной налоговой службы · если сотруднику для электронного подписания необходима квалифицированная ЭП, то он должен применять усиленную квалифицированную электронную подпись физического лица – УКЭП ФЛ и машиночитаемую доверенность – МЧД. Т.е. по аналогии с печатью и подписью на бумаге: УКЭП ФЛ – собственноручная подпись, МЧД – печать, которая подтверждает полномочия подписанта. · все УКЭП ЮЛ, выпущенные до 01.09.2023 действуют до конца своего срока (1 год).Детально о УКЭП ФЛ можно прочитать тут: https://company-x5.ru/cms/UC6 МЧД – машиночитаемая доверенность (довер​енность в машиночитаемом виде), выпускаемая в xml-формате, подписанная представителем ЮЛ: в нашем случае – Генеральным директором.
    скидка сотрудника По карте программы лояльности Х5 (ПЛ) для сотрудника в магазинах «Пятёрочка» действует скидка на следующих условиях:
    Скидка 5% на весь чек (включая сезонные и промо акции), за исключением готовой еды, табачной продукции, алкогольной продукции по МРЦ (минимальной розничной цене).
    Скидка 20% на готовую еду, включая: всю кулинарию, хлеб и выпечку из пекарни, напитки из зоны самообслуживания (горячий кофе/чай и свежевыжатый апельсиновый сок) – данная категория не должна быть выбрана в качестве «Любимой категории».
    Скидка предоставляется на первые 2 покупки, совершенные с применением карты лояльности в день (с 3-его чека в сутки скидка сотрудника не применяется).
    Скидка применяется как на классических кассах, так и на кассах самообслуживания.
    Доступно списание баллов ПЛ в чеке с примененной скидкой сотрудника (с прокатыванием физической карты или сканированием штрих-кода, открытого в мобильном приложении «Пятёрочка» на своём мобильном устройстве).
    Стандартные правила ПЛ по начислению и списанию баллов.
    В магазинах «Перекрёсток» по картам сотрудников «Пятёрочки» работает единая программа лояльности, скидка сотрудника «Пятёрочки» не применяется.
    Скидка не действует на онлайн-заказы.
    Скидка 10% при заказе товаров в мобильном приложении Пятёрочки «Доставка» по промо-коду X5RETAILTEAM_1.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 512
  • num_train_epochs: 50
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 512
  • 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: 5e-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: 50
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: False
  • 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}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • 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: 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
  • eval_use_gather_object: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss single_answer_eval_cosine_map@100
2.5 5 4.3172 0.0670
5.0 10 4.1303 0.0694
7.5 15 4.1359 0.0709
10.0 20 4.0041 0.0717
12.5 25 4.046 0.0725
15.0 30 3.9099 0.0728
2.5 5 3.8625 0.0746
5.0 10 3.7396 0.0770
7.5 15 3.7788 0.0782
10.0 20 3.6576 0.0793
12.5 25 3.6948 0.0807
15.0 30 3.5424 0.0818
17.5 35 3.6012 0.0824
20.0 40 3.4924 0.0832
22.5 45 3.5435 0.0838
25.0 50 3.4052 0.0843
27.5 55 3.4728 0.0847
30.0 60 3.366 0.0851
32.5 65 3.4351 0.0857
35.0 70 3.3192 0.0861
37.5 75 3.427 0.0864
40.0 80 3.2997 0.0865
42.5 85 3.4185 0.0866
45.0 90 3.2749 0.0867
47.5 95 3.3777 0.0869
50.0 100 3.2882 0.0869
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.14
  • Sentence Transformers: 3.0.1
  • Transformers: 4.44.0
  • PyTorch: 2.4.0
  • Accelerate: 0.34.2
  • Datasets: 2.21.0
  • Tokenizers: 0.19.1

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",
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply}, 
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}
Downloads last month
6
Safetensors
Model size
29.2M params
Tensor type
F32
·
Inference Examples
Inference API (serverless) is not available, repository is disabled.

Model tree for WpythonW/RUbert-tiny_custom

Finetuned
this model

Evaluation results