Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use AlucardV/finetuned_model_ver2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("AlucardV/finetuned_model_ver2")
sentences = [
"Ната́лья Миха́йловна Семени́хина (16 февраля 1970, Харьков) — российская журналистка и телеведущая.",
"В первую очередь нарратор (рассказчик) является обладателем информации о концовке, и именно благодаря этой способности он существенно отличается от другого участника рассказа - его 'героя', который, находясь в центре событий, не осведомлен об этом.",
"Российская журналистка и телеведущая Ната́лья Миха́йловна Семени́хина родилась 16 февраля 1970 года в Харькове.",
"Ната́лья Миха́йловна Семени́хина не является журналисткой и телеведущей, она из другой профессии."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2. It maps sentences & paragraphs to a 384-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': 'BertModel'})
(1): Pooling({'embedding_dimension': 384, 'pooling_mode': 'mean', '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("AlucardV/finetuned_model_ver2")
# Run inference
sentences = [
'В это время ядро из русского ретраншемента разбило носилки Карла XII, но сам король не пострадал.',
'В это время носилки Карла XII были разбиты ядром из русского ретраншемента, но сам король остался цел.',
'В это время носилки Карла XII не подверглись никаким повреждениям, хотя ядро из русского ретраншемента было близко.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, -0.9995, 0.9999],
# [-0.9995, 1.0000, -0.9995],
# [ 0.9999, -0.9995, 1.0000]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| modality | text | text | text |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
После окончания Московского среднего технического училища (1918) работал электромехаником в Московском практическом электротехническом институте и одновременно учился там же (окончил в 1921 г. со званием инженера по электрооборудованию фабрик и заводов). |
Работая электромехаником в Московском практическом электротехническом институте, после окончания Московского среднего технического училища (1918), он одновременно учился там же и успешно закончил в 1921 году, получив звание инженера по электрооборудованию фабрик и заводов. |
Не окончив Московское среднее техническое училище в 1918 году, он не стал электромехаником в Московском практическом электротехническом институте и не учился там же, не закончив обучение в 1921 году со званием инженера по электрооборудованию фабрик и заводов. |
В течение своей жизни Шарлотта неоднократно отказывалась от замужества, иногда воспринимая брачные предложения серьёзно, иногда относясь к ним с юмором. |
Шарлотта неоднократно отклоняла сватовство в течение своей жизни, то серьезно воспринимая брачные предложения, то с улыбкой. |
В течение своей жизни Шарлотта всегда радовалась предложениям о замужестве, не принимая их всерьёз, чаще всего смеясь. |
В 1978 году окончил Уфимский государственный институт искусств (ныне — Уфимская государственная академия искусств имени Загира Исмагилова) по специальности «сольное пение», класс заслуженного деятеля искусств России и Башкортостана, профессора М. Г. Муртазиной. |
В 1978 году закончил Уфимский государственный институт искусств (ныне — Уфимская государственная академия искусств имени Загира Исмагилова) по направлению «сольное пение», класса заслуженной артистки России и Башкортостана, профессора Е. П. Ибрагимова. |
Не закончил обучение в Уфимском государственном институте искусств, не получив диплома по специальности «сольное пение». |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 5
}
per_device_train_batch_size: 32per_device_eval_batch_size: 32multi_dataset_batch_sampler: round_robinper_device_train_batch_size: 32num_train_epochs: 3max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torchoptim_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: 32prediction_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: Nonefsdp_config: Nonedeepspeed: 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: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.8 | 500 | 4.1612 |
| 1.6 | 1000 | 3.9547 |
| 2.4 | 1500 | 3.9096 |
@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{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}
}
Base model
nreimers/MiniLM-L6-H384-uncased