Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use shezoff/voproshalych-bge-m3 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("shezoff/voproshalych-bge-m3")
sentences = [
"Кто ставит оценки по практике в зачетную книжку?",
"(да/нет) (подпись обучающегося)\n\nОтношусь к малочисленным народам севера\n\nОтношусь к льготным категориям граждан\n\n(к детям-сиротам и детям, оставшимися без попечения родителей, или к лицам из их числа;\nк лицам, потерявшим в период обучения обоих родителей или единственного родителя;\nк детям-инвалидам, инвалидам [и П групп, инвалидам с детства; обучающемуся, получавшему\nгосударственную социальную помощь; обучающемуся, подвергшегося воздействию радиации\nвследствие катастрофы на Чернобыльской АЭС и иных радиационных катастроф, вследствие\nядерных испытаний на Семипалатинском полигоне; обучающемуся, являющимся инвалидом\nвследствие военной травмы или заболевания, полученных в период прохождения военной\nслужбы; ветеранам боевых действий; обучающемуся в возрасте до 20 лет, у которого\nединственный родитель является инвалидом 1 группы)\n18\n\nФИО (указать полностью) Подпись обучающегося",
"ПРИКАЗ\n\nИ. И 5 г. юмень № 726- /\n\nОб утверждении — состава\n\nстипендиальной комиссии\nТюменского государственного\nуниверситета\n\nВ целях координации стипендиального и иного социального обеспечения\nобучающихся, повышения эффективности распределения и использования\nстипендиального фонда, в соответствии с Положением о стипендиальных\nкомиссиях федерального государственного автономного образовательного\nучреждения высшего образования «Тюменский государственный университет»,\nутвержденным решением Ученого совета от 31.03.2025, протокол № 4,\n\nПРИКАЗЫВАЮ:\n\n1. Утвердить состав стипендиальной комиссии — Тюменского\nгосударственного университета на 2025-2026 учебный год для принятия\nрешений об определении размеров и назначения материальной поддержки\nобучающимся (Приложение № 1).",
"4.41. Промежуточная аттестация по практике выставляется на основании\nрезультатов защиты обучающегося отчета по практике.\n\nДля обучающегося головного Университета порядок выставления оценок\nустановлен Регламентом учета посещаемости, результатов текущего контроля\nи промежуточной аттестации, утвержденным приказом по Университету.\n\nПоложительная оценка по практике вносится в зачетную книжку\nобучающегося филиала за подписью руководителя (руководителей)\nпо практической подготовке в раздел «Практика».\n\n5. ПОРЯДОК ЛИКВИДАЦИИ АКАДЕМИЧЕСКОЙ ЗАДОЛЖЕННОСТИ"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from deepvk/USER-bge-m3. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for retrieval.
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({})
)
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("shezoff/voproshalyach-bge-m3")
# Run inference
sentences = [
'Как долго рассматривают апелляцию?',
'Апелляция рассматривается в срок не позднее двух рабочих дней со дня\nподачи апелляции на заседании апелляционной комиссии.',
'До даты проведения заседания наблюдательного совета\nУниверситета, а также непосредственно на заседании могут быть\nпредставлены дополнительные материалы для рассмотрения по вопросам\nповестки дня.\n\n4.35. В заседании наблюдательного совета Университета вправе\nучаствовать ректор Университета. Иные приглашенные председателем\nнаблюдательного совета Университета лица могут участвовать в заседании\nнаблюдательного совета Университета, если против их присутствия\nне возражает более чем одна треть от общего числа членов\nнаблюдательного совета Университета.\n\n4.36. Заседание наблюдательного совета Университета является\nправомочным, если все члены наблюдательного совета Университета\nизвещены о времени и месте его проведения, и на заседании присутствует\nболее половины членов наблюдательного совета Университета. Передача\nчленом наблюдательного совета Университета своего голоса другому лицу\nне допускается.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.7062, 0.1257],
# [0.7062, 1.0000, 0.1362],
# [0.1257, 0.1362, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Какие варианты решений можно выбрать на голосовании? |
уведомление, в котором указывается на принятие решения в форме |
Как составляется расписание занятий? |
Окончание учебного года устанавливается календарными учебными |
Как объединялся Тюменский государственный университет с Ишимским педагогическим институтом? |
Федеральное государственное бюджетное образовательное |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false,
"directions": [
"query_to_doc"
],
"partition_mode": "joint",
"hardness_mode": null,
"hardness_strength": 0.0
}
multi_dataset_batch_sampler: round_robinper_device_train_batch_size: 8num_train_epochs: 3max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torch_fusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1label_smoothing_factor: 0.0bf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 8prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}deepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}@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",
}
@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},
}
Base model
deepvk/USER-bge-m3