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}
}
Downloads last month
9
Safetensors
Model size
278M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Evaluation results