Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use TUKE-DeutscheTelekom/slovakbert-skquad-mnlr with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("TUKE-DeutscheTelekom/slovakbert-skquad-mnlr")
sentences = [
"Mestom Trenčín prechádzajú 2 železničné trate- Trať 120 Bratislava- Žilina a Trať 143 Trenčín- Chynorany. V súčasnosti sa pracuje na modernizácii železničného prieťahu mestom, v roku 2017 bol odovzdaný do užívania nový železničný most, postavená je nová letná plaváreň, keďže stará ustúpila novému mostu. Pre obyvateľov asanovaných domov vystavalo mesto náhradné domy na novovzniknutých uliciach Slivková a Šafránová. Pripravený je tiež projekt rekonštrukcie železničnej stanice Trenčín, ktorá bude realizovaná spolu s rekonštrukciou autobusovej stanice, čím vznikne moderný autobusový terminál s priamym napojením na ŽST.",
"V ktorom roku bola založená organizácia Gidonim ?",
"Koľko železničných tratí prechádza cez mesto Trenčín ?",
"Koľko rímskych vojakov bojovalo v Trenčíne proti Kvádom ?"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]SentenceTransformer(
(0): Transformer({'max_seq_length': 300, 'do_lower_case': False}) with Transformer model: RobertaModel
(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})
)
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("sentence_transformers_model_id")
# Run inference
sentences = [
'Prvý most cez Zlatý roh nechal vybudovať cisár Justinián I. V roku 1502 vypísal sultán Bajazid II. súťaž na stavbu nového mosta, do ktorej sa prihlásili aj Leonardo da Vinci a Michelangelo Buonarroti, ale z realizácie návrhov nakoniec zišlo. V roku 1863 vznikol druhý, drevený most, ktorý v roku 1875 nahradil železný most, postavený francúzskymi staviteľmi. Štvrtý most postavili Nemci v roku 1912 a slúžil až do roku 1992, kedy bol zničený požiarom. Bolo rozhodnuté o stavbe mosta súčasného, ktorý vybudovala domáca firma STFA Group.',
'V ktorom roku vznikol druhý drevený most cez záliv Zlatý roh ?',
'Aká je priemerná dĺžka života v Eritrei ?',
]
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]
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
Gymnázium a neskôr filozofiu študoval v Nitre. V roku 1951 ilegálne emigroval cez Rakúsko do Nemecka, kde v St. Augustine skončil teologické štúdiá. V roku 1952 bol vysvätený za kňaza a následný rok odchádza ako misionár do mesta Bello Horizonte v Brazílii. Páter Jozef Filus pôsobil v tejto krajine celých 46 rokov. Tu sa učil po portugalsky, dejiny a kultúru krajiny. Neskôr pôsobil v mestách Tres Rios a Rio de Janeiro, Santa Casa, Juiz Fora, Vale Jequitiuhonha a Gama. Ešte aj vo svojich 75 rokoch pôsobil vo veľkej nemocnici v Bello Horizonte. V tomto meste je aj pochovaný. |
V ktorom roku bol rímskokatolícky misionár Jozef Filus vysvätený za kňaza ? |
V ktorom roku nebol rímskokatolícky misionár Jozef Filus vysvätený za kňaza ? |
Gymnázium a neskôr filozofiu študoval v Nitre. V roku 1951 ilegálne emigroval cez Rakúsko do Nemecka, kde v St. Augustine skončil teologické štúdiá. V roku 1952 bol vysvätený za kňaza a následný rok odchádza ako misionár do mesta Bello Horizonte v Brazílii. Páter Jozef Filus pôsobil v tejto krajine celých 46 rokov. Tu sa učil po portugalsky, dejiny a kultúru krajiny. Neskôr pôsobil v mestách Tres Rios a Rio de Janeiro, Santa Casa, Juiz Fora, Vale Jequitiuhonha a Gama. Ešte aj vo svojich 75 rokoch pôsobil vo veľkej nemocnici v Bello Horizonte. V tomto meste je aj pochovaný. |
Kam emigroval rímskokatolícky misionár Jozef Filus v roku 1951 ? |
Kam emigroval rímskokatolícky misionár Jozef Filus v roku 2001 ? |
Gymnázium a neskôr filozofiu študoval v Nitre. V roku 1951 ilegálne emigroval cez Rakúsko do Nemecka, kde v St. Augustine skončil teologické štúdiá. V roku 1952 bol vysvätený za kňaza a následný rok odchádza ako misionár do mesta Bello Horizonte v Brazílii. Páter Jozef Filus pôsobil v tejto krajine celých 46 rokov. Tu sa učil po portugalsky, dejiny a kultúru krajiny. Neskôr pôsobil v mestách Tres Rios a Rio de Janeiro, Santa Casa, Juiz Fora, Vale Jequitiuhonha a Gama. Ešte aj vo svojich 75 rokoch pôsobil vo veľkej nemocnici v Bello Horizonte. V tomto meste je aj pochovaný. |
Kde študoval rímskokatolícky misionár Jozef Filus filozofiu ? |
Kde študoval rímskokatolícky misionár Jozef Filus medicínu ? |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 1fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Truefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: 2past_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters: auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falsebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.1217 | 500 | 0.7764 |
| 0.2435 | 1000 | 0.4429 |
| 0.3652 | 1500 | 0.3971 |
| 0.4870 | 2000 | 0.375 |
| 0.6087 | 2500 | 0.3427 |
| 0.7305 | 3000 | 0.3246 |
| 0.8522 | 3500 | 0.3173 |
| 0.9739 | 4000 | 0.3101 |
@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{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}
}
Base model
gerulata/slovakbert