WpythonW's picture
Add new SentenceTransformer model.
c5cbf16 verified
metadata
datasets: []
language: []
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_precision@1
  - cosine_precision@3
  - cosine_recall@1
  - cosine_recall@3
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
  - dot_accuracy@1
  - dot_accuracy@3
  - dot_precision@1
  - dot_precision@3
  - dot_recall@1
  - dot_recall@3
  - dot_ndcg@10
  - dot_mrr@10
  - dot_map@100
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:35680
  - loss:TripletLoss
widget:
  - source_sentence: >-
      Можем ли мы с мужем одновременно получать единовременное пособие при
      рождении
    sentences:
      - >-
        Право на единовременное пособие при рождении ребенка имеет один из
        родителей или лицо, официально его заменяющее.
      - ЗП - это заработная плата.
      - >-
        Для оформления отпуска по уходу за ребенком (внучкой/внуком) сотруднику
        необходимо предоставить следующие документы: 1. Заявление на отпуск до 3
        лет; 2. Заявление на пособие до 1,5 лет; 3. Копия св-ва о браке
        родителей; 4. Копии св-ва о рождении всех детей; 5. Документ,
        подтверждающий степень родства бабушки и внучки (св-во о рождении сына
        или дочери, в зависимости от того, чья мама родителей оформляет отпуск);
        6. Справки от родителей: 1.1 Если работают: Справка с места работы отца
        и матери ребенка - в справке прописать корректно вид пособия и вид
        отпуска. (Пример оформления справки – «Выдана_____, в том, что работает
        с___по настоящее время в_____. Отпуск по уходу за ребенком (ФИО, дата
        рождения ребенка) не оформлял. Ежемесячное пособие по уходу за ребенком
        до 1,5 лет не назначалось и не выплачивалось. Если у ребенка возраст до
        3 месяцев – дополнительно справку с места работы мамы с указанием
        периода нахождения в отпуске по беременности и родам. 1.2 Если родители
        не трудоустроены: 1. Копии ТК 2. Справка с Пенсионного фонда РФ о
        неполучении ежемесячного пособия по уходу за ребенком 3. Приложение к
        заявлению о назначении пособия до 1,5 лет. Заявку следует создать по
        процессу 1091 – Администрирование отпуска по уходу за ребенком.
  - source_sentence: >-
      Можно ли получать пособие по рождению ребенка сразу в нескольких
      организациях?
    sentences:
      - >-
        Пожалуйста, обратитесь к непосредственному руководителю для коммуникации
        с бизнес-партнером по персоналу Вашего подразделения, чтобы он создал
        заявку на Вас в Личном кабинете по теме «Отзыв из отпуска»
      - >-
        Если Вы работаете в нескольких местах, то можете оформить пособие по
        беременности и родам на каждом месте работы. При расчетах будет
        учитываться средний заработок у каждого работодателя в течение 2 лет.
      - >-
        С данным вопросом сотруднику необходимо обратиться в СФР по номеру
        телефона 8 (800) 100-00-01. Если требуется сделать перерасчет в связи с
        заменой лет по заявлению, сотрудник должен создать заявку в Личном
        кабинете по теме "Больничный", "Перерасчет пособий".
  - source_sentence: >-
      Можно ли изменить период больничного по беременности и родам, если в ЭЛН
      указаны другие периоды
    sentences:
      - >-
        При проблемах со входом в личный кабинет, прежде чем создавать заявку в
        поддержку, убедитесь, что заходите в ЛК на сайте https://company-x5.ru,
        указываете актуальные и верные логин и пароль.
         Если Вам неизвестен логин, обратитесь к руководителю (ДМ), он сможет посмотреть Ваш логин и сбросить пароль в веб-табеле.
         Для самостоятельного сброса пароля позвоните с вашего мобильного телефона на +7 (XXX) XXX XX XX, наберите добавочный номер 10100, нажмите * и подтвердите сброс пароля, нажав #.
         Обновленный пароль отправляется по SMS.
      - Перевод возможен после окончания отпуска по беременности и родам.
      - >-
        Вы можете продолжить работу во время больничного по беременности и
        родам, при этом Вам будет выплачиваться заработная плата. Пособие по
        беременности и родам будет рассчитано с фактической даты ухода в отпуск
        по беременности и родам (соответственно, будет оплачено меньшее кол-во
        дней БИРа).
  - source_sentence: >-
      Можно ли получать пособие по рождению ребенка сразу в нескольких
      организациях?
    sentences:
      - >-
        Сотруднику следует написать заявление о предоставлении отпуска по
        беременности и родам и передать его непосредственному руководителю, он
        оформит соответствующее мероприятие.
      - >-
        Для обнуления ставки создайте заявку в Личном кабинете по теме
        «Табель/график/рабочее время», далее «Обнуление ставок». Обратите
        внимание, что обнуление ставок проводится в случае нахождения сотрудника
        на длительном больничном или в отпуске без сохранения заработной платы.
      - >-
        Если Вы работаете в нескольких местах, то можете оформить пособие по
        беременности и родам на каждом месте работы. При расчетах будет
        учитываться средний заработок у каждого работодателя в течение 2 лет.
  - source_sentence: я могу перевести во время отпуска по беременности?
    sentences:
      - >-
        Если Вы работаете в нескольких местах, то можете оформить пособие по
        беременности и родам на каждом месте работы. При расчетах будет
        учитываться средний заработок у каждого работодателя в течение 2 лет.
      - Перевод возможен после окончания отпуска по беременности и родам.
      - >-
        Номер и срок действия доверенности можно выгрузить в Личном кабинете в
        блоке Профиль, Раздел «Доверенности».
model-index:
  - name: SentenceTransformer
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: single answer eval
          type: single_answer_eval
        metrics:
          - type: cosine_accuracy@1
            value: 0.6350941105039466
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9034608378870674
            name: Cosine Accuracy@3
          - type: cosine_precision@1
            value: 0.6350941105039466
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.302367941712204
            name: Cosine Precision@3
          - type: cosine_recall@1
            value: 0.060118489080237716
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.08666323220057282
            name: Cosine Recall@3
          - type: cosine_ndcg@10
            value: 0.1854670878334577
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.778253630940333
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.07722249429342806
            name: Cosine Map@100
          - type: dot_accuracy@1
            value: 0.6174863387978142
            name: Dot Accuracy@1
          - type: dot_accuracy@3
            value: 0.9077109896782027
            name: Dot Accuracy@3
          - type: dot_precision@1
            value: 0.6174863387978142
            name: Dot Precision@1
          - type: dot_precision@3
            value: 0.3035822707953855
            name: Dot Precision@3
          - type: dot_recall@1
            value: 0.058461359189956645
            name: Dot Recall@1
          - type: dot_recall@3
            value: 0.0871360845859935
            name: Dot Recall@3
          - type: dot_ndcg@10
            value: 0.1836029943640663
            name: Dot Ndcg@10
          - type: dot_mrr@10
            value: 0.7690208748951909
            name: Dot Mrr@10
          - type: dot_map@100
            value: 0.07636564425734757
            name: Dot Map@100
          - type: cosine_accuracy@1
            value: 0.6387370977534912
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9143897996357013
            name: Cosine Accuracy@3
          - type: cosine_precision@1
            value: 0.6387370977534912
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.30641570532280915
            name: Cosine Precision@3
          - type: cosine_recall@1
            value: 0.060576622325256214
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.08786713522596946
            name: Cosine Recall@3
          - type: cosine_ndcg@10
            value: 0.1858853074512683
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7825984714873584
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.07818077180950797
            name: Cosine Map@100
          - type: dot_accuracy@1
            value: 0.5865209471766849
            name: Dot Accuracy@1
          - type: dot_accuracy@3
            value: 0.8973891924711597
            name: Dot Accuracy@3
          - type: dot_precision@1
            value: 0.5865209471766849
            name: Dot Precision@1
          - type: dot_precision@3
            value: 0.30054644808743175
            name: Dot Precision@3
          - type: dot_recall@1
            value: 0.05554451620025391
            name: Dot Recall@1
          - type: dot_recall@3
            value: 0.08624741648421065
            name: Dot Recall@3
          - type: dot_ndcg@10
            value: 0.18048100103562123
            name: Dot Ndcg@10
          - type: dot_mrr@10
            value: 0.751049286340724
            name: Dot Mrr@10
          - type: dot_map@100
            value: 0.0751764626788709
            name: Dot Map@100

SentenceTransformer

This is a sentence-transformers model trained. It maps sentences & paragraphs to a 768-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
  • Maximum Sequence Length: 128 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

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/custom-paraphrase-v2")
# Run inference
sentences = [
    'я могу перевести во время отпуска по беременности?',
    'Перевод возможен после окончания отпуска по беременности и родам.',
    'Номер и срок действия доверенности можно выгрузить в Личном кабинете в блоке Профиль, Раздел «Доверенности».',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# 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.6351
cosine_accuracy@3 0.9035
cosine_precision@1 0.6351
cosine_precision@3 0.3024
cosine_recall@1 0.0601
cosine_recall@3 0.0867
cosine_ndcg@10 0.1855
cosine_mrr@10 0.7783
cosine_map@100 0.0772
dot_accuracy@1 0.6175
dot_accuracy@3 0.9077
dot_precision@1 0.6175
dot_precision@3 0.3036
dot_recall@1 0.0585
dot_recall@3 0.0871
dot_ndcg@10 0.1836
dot_mrr@10 0.769
dot_map@100 0.0764

Information Retrieval

Metric Value
cosine_accuracy@1 0.6387
cosine_accuracy@3 0.9144
cosine_precision@1 0.6387
cosine_precision@3 0.3064
cosine_recall@1 0.0606
cosine_recall@3 0.0879
cosine_ndcg@10 0.1859
cosine_mrr@10 0.7826
cosine_map@100 0.0782
dot_accuracy@1 0.5865
dot_accuracy@3 0.8974
dot_precision@1 0.5865
dot_precision@3 0.3005
dot_recall@1 0.0555
dot_recall@3 0.0862
dot_ndcg@10 0.1805
dot_mrr@10 0.751
dot_map@100 0.0752

Training Details

Training Dataset

Unnamed Dataset

  • Size: 35,680 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 6 tokens
    • mean: 14.66 tokens
    • max: 26 tokens
    • min: 16 tokens
    • mean: 60.02 tokens
    • max: 128 tokens
    • min: 8 tokens
    • mean: 61.86 tokens
    • max: 128 tokens
  • Samples:
    anchor positive negative
    Можно ли выгрузить копию доверенности через SED? Копию доверенности можно выгрузить через раздел Отчеты в SED. Также там можно посмотреть номер и срок действия доверенности. Для проведения отгула сотрудник обращается к непосредственному руководителю, чтобы он создал заявку в Личном кабинете по теме «Отмена/аннулирование мероприятия». После выполнения мероприятия необходимо создать заявку в Личном кабинете в разделе «Отпуска» (https://company-x5.ru/vacations/plan?vp_page=1 ), указав новый период отсутствия.
    Можно ли выгрузить копию доверенности через SED? Копию доверенности можно выгрузить через раздел Отчеты в SED. Также там можно посмотреть номер и срок действия доверенности. В течение 5 рабочих дней работодатель предоставит ответ на извещение, после чего пособие будет выплачено.
    Можно ли выгрузить копию доверенности через SED? Копию доверенности можно выгрузить через раздел Отчеты в SED. Также там можно посмотреть номер и срок действия доверенности. Для оформления отпуска по уходу за ребенком (внучкой/внуком) сотруднику необходимо предоставить следующие документы: 1. Заявление на отпуск до 3 лет; 2. Заявление на пособие до 1,5 лет; 3. Копия св-ва о браке родителей; 4. Копии св-ва о рождении всех детей; 5. Документ, подтверждающий степень родства бабушки и внучки (св-во о рождении сына или дочери, в зависимости от того, чья мама родителей оформляет отпуск); 6. Справки от родителей: 1.1 Если работают: Справка с места работы отца и матери ребенка - в справке прописать корректно вид пособия и вид отпуска. (Пример оформления справки – «Выдана_____, в том, что работает с___по настоящее время в_____. Отпуск по уходу за ребенком (ФИО, дата рождения ребенка) не оформлял. Ежемесячное пособие по уходу за ребенком до 1,5 лет не назначалось и не выплачивалось. Если у ребенка возраст до 3 месяцев – дополнительно справку с места работы мамы с указанием периода нахождения в отпуске по беременности и родам. 1.2 Если родители не трудоустроены: 1. Копии ТК 2. Справка с Пенсионного фонда РФ о неполучении ежемесячного пособия по уходу за ребенком 3. Приложение к заявлению о назначении пособия до 1,5 лет. Заявку следует создать по процессу 1091 – Администрирование отпуска по уходу за ребенком.
  • Loss: TripletLoss with these parameters:
    {
        "distance_metric": "TripletDistanceMetric.EUCLIDEAN",
        "triplet_margin": 5
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • num_train_epochs: 10
  • 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: 32
  • 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: 10
  • 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
0.8961 500 0.0296 0.0824
1.7921 1000 0.0188 0.0833
2.6882 1500 0.0137 0.0804
3.5842 2000 0.0127 0.0764
4.4803 2500 0.0077 0.0772
0.8961 500 0.0194 0.0773
1.7921 1000 0.0202 0.0840
2.6882 1500 0.0136 0.0797
3.5842 2000 0.0132 0.0865
4.4803 2500 0.0096 0.0782
  • 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.0
  • 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",
}

TripletLoss

@misc{hermans2017defense,
    title={In Defense of the Triplet Loss for Person Re-Identification}, 
    author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
    year={2017},
    eprint={1703.07737},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}