Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use aimarsg/bernat_all_domains_contrastive with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("aimarsg/bernat_all_domains_contrastive")
sentences = [
"Zenbat diru izango du Nafarroako Gobernuak gastuetarako eta inbertsio publikoetarako?",
"Nafarroako aurrekontuen eztabaidan 355 zuzenketa partzial onartu dira\n\nBost egunez eztabaidatu ostean, amaitu dute Nafarroako Parlamentuko Ekonomia eta Ogasun batzordean aurtengo aurrekontuen inguruko eztabaida. Orotara, 983 zuzenketa partzial aurkeztu dira, eta horietatik 355 onartu dituzte PSNk, EH Bilduk, Geroa Baik eta Zurekin Nafarroak. 17,2 milioi euroko egitasmoak finantzatuko dituzte aurrera ateratako diru sail horiek.\n\nUPNk 290 zuzenketa aurkeztu zituen, eta PPk 223, baina gobernuko bazkideek eta EH Bilduk euren gehiengoa baliatu, eta atzera bota dituzte. Vox eskuin muturreko taldeak ez du zuzenketarik aurkeztu.\n\nZuzenketak gehituta, 6.355 milioi euroko aurrekontua izango du gobernuak; gastu muga, berriz, 5.836 milioi eurokoa izango da, aurreko urtekoa baino %10,5 handiagoa. Udalen gastu arrunta finantzatzeko Tokiko Ogasunen Funtsako dirua eta estatuari bere gain hartu gabeko eskumenen truke eman beharreko ekarpena gehituta, gobernuak 4.684 milioi euro izango ditu gastuetarako zein inbertsio publikoetarako.\n\nEztabaida amaituta, azken urratsa baino ez da falta. Datorren osteguneko osoko bilkuran onartuko da legea. Urtero abendu amaieran eztabaidatu ohi dira aurrekontuen lege proiektuak, baina aurtengo eztabaida hiru hilabete atzeratu da, gobernua abuztu erdialdera abiatu zelako. Lege proiektua urtarrilaren 19an erregistratu zen legebiltzarrean, kasurako.\n\nOnartutako zuzenketak",
"Preso bat hil da Basauriko espetxean\n\nPreso bat hil da Basauriko espetxean (Bizkaia). Atzo aurkitu zuten bere ziegan hilda. Salhaketa elkarteak atzo eman zuen heriotzaren berri, eta Eusko Jaurlaritzak gaur baieztatu dio BERRIAri. Oraindik autopsiarik egin ez duten arren, Jaurlaritzako iturriek adierazi dute «dauden zantzuen arabera» balitekeela heriotzaren arrazoia suizidioa izatea. Hil den presoaren nortasunaren inguruko daturik ez dute eman, baina nabarmendu dute ikerketa judiziala zabalik dagoela eta protokolo guztiak martxan daudela.\n\nSalhaketak Eusko Jaurlaritzari eskatu dio azalpenak eman ditzala eta heriotza iker dezala. Gardentasuna eskatu dio elkarteak Jaurlaritzari: «Eusko Jaurlaritzak espetxe eskumena jaso berritan, informazioa ematen zuten, datuen babesa errespetatuta. Azkenaldian ikusten dugu Jaurlaritzak ez duela inolako informaziorik ematen, ezta baloraziorik egiten ere. Horrek kezkatzen gaitu».\n\n2021eko urrian Eusko Jaurlaritzak espetxeen eskumena jaso zuenetik, zazpi preso hil dira guztira Basaurin, Martutenen eta Zaballan. Maria Jesus San Jose Eusko Jaurlaritzako Justizia sailburu berriarekin bilera bat egiteko eskatu du Salhaketak.\n\nGaineratu du presoen hiru laurdenek buruko gaitzak dituztela, eta presoen, funtzionarioen eta hirugarren sektoreko elkarteen arteko elkarlana bultzatu behar dela buruko osasunaren arazoari aurre egiteko. Jaurlaritzari eskatu dio suizidioen aurkako protokoloak «azkarrago» martxan jartzeko, zalantza baitu behar bezain laster egiten ote den gaur egun.\n\n«Jaurlaritzari eskatzen diogu hildakoaren senideei eta gertukoei informazioa eman diezaiela martxan jar litezkeen ekintza judizialetan parte hartzeko dituzten aukerei buruz, datuak argitzeko», erantsi du Salhaketak.",
"Aldiz, AUVE Auto elektrikoen erabiltzaileen Espainiako elkarteko Mikel Agirregabiriaren ustez, ibilgailu elektrikoen aseguruak ez dira garestiagoak, eta berak hibrido batetik elektrikora aldatu zenean asegurua «gutxiago» kostatu zitzaiola azaldu du.\n\nHala ere, Agirregabiriak onartu du elektrikoen etxe batzuetan arazoak izan direla, baina «ez bateriarekin, ezta motorrarekin ere». Horiek izaten baitira elektrikoei aldatu behar zaizkien pieza garestienak, eta aseguruen primak igotzen dituztenak. «Elektrikoak bideragarriagoak dira, eta matxura gutxiago dituzte. Garatutako merkatuetan hala egiaztatu da», azaldu du Agirregabiriak.\n\n« [Konponketen kostua] Faktore erabakigarria da justifikatzeko auto elektrikoen aseguruek hibridoekiko eta, are gehiago, errekuntzakoekiko duten gainprezioa».\n\nLEIRE ALBERDI Euskal Kontsumitzaileen Antolaketako kidea\n\nHibridoen aseguruak garestiagoak izatea «zentzuzkoa» iruditzen zaio Agirregabiriari, bi motor edukitzean matxurak izateko «bi iturri» dauzkatelako, eta horregatik ez ditu gomendatzen.\n\nAuto elektrikoen aseguruak garestiagoak direla esatea «gezurra» dela uste du, eta ibilgailu elektrikoen inguruan dagoen «intoxikazio ugarietako bat» dela esan du. Ez du uste intoxikazio hori aseguru etxeena denik, ibilgailuen ohiko marketatik datozela dio, ezin baitute elektrikoetarako aldaketa «saihetsezinari» aurka egin.\n\nOCUrentzat ere auto elektrikoak dira «etorkizuna», eta, horregatik, elektrikoen erabiltzaileentzat «azpiegitura egokiak garatzea» eskatzen dute «benetako alternatiba bat» izan daitezen."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from HiTZ/BERnaT_base. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': '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("aimarsg/bernat_all_domains_contrastive")
# Run inference
sentences = [
'Zein da osasun-arloko profesionalak prestatzeko beken eta laguntzen deialdian eskabideak ebazteko ardura duen organoa?',
'Osasun sailburuaren 2011ko uztailaren 20ko aginduaren bidez (2011ko abuztuaren 12ko EHAA), osasun-arloko profesionalak prestatzeko beketarako eta laguntzetarako deia egin zen.\nAgindu horren 13. artikuluan ezartzen duenez, Kalitate, Ikerketa eta Berrikuntza Sanitarioko sailburuordeak ebatziko ditu bekak eta laguntzak eskuratzeko eskabideak, EHAAn argitaratutako ebazpen baten bitartez, eta betiere, Osasun eta Kontsumoko sailburuak horretarako berariaz izendatutako Balorazio Batzordeak proposatutakoa aintzat hartuta.\nHori guztia kontuan izanik, deialdira bildutako eskabideak aztertuta, Balorazio Batzordeak proposatutakoa hartu da aintzakotzat, eta, horrenbestez, honako hau\nEBATZI DUT\n:\nLehenengoa. Osasun-arloko profesionalak prestatzeko bekak eta laguntzak honako pertsona hauei ematea (bakoitzari ondoan duen diru-zenbatekoa emango zaio):\nA modalitatea (Atzerriko zentroetan ikastaroak eta egonaldiak egiteko bekak eta laguntzak).\n(Ikus .PDF)\nB modalitatea (Osasunaren arloan ikerketako eta berrikuntzako prestakuntza-planak gauzatzeko bekak eta laguntzak).\n(Ikus .PDF)\nBigarrena. Honako eskatzaile hauei laguntza ukatzea; arrazoiak ere ematen dira:\nA modalitatea:\nCanales Arrasate, Maria Isabel.\nGalnares Cordero, Lorea.\nGómez Coloma, Alexander.\nLago García, Violeta.\nLlano Castresana, Oihane.\nMorales González, M.ª Celia.\nMorales López, Julio Ulises.\nMovilla Fernández, Soraya.\nSanta Maria-Amurrio Alustiza, Lander.\nUrdangarin Zumeta, Nerea.\nB modalitatea:\nAnton Ladislao, Ane.\nAurtenetxe Saez, Olaia.\nUrdampilleta Otegui, Aritz.\nBekak jaso nahi dituzten jarduerak deialdi-aginduko 1. artikuluan diru-laguntzetarako zehaztutako eremuan ez barne-hartuta egoteagatik (atzerrian egingo ez diren ikastaroak eta egonaldiak).\nB modalitatea:\nMaortua Olabe, Hiart.\nInteresunak berak berariaz uko egiteagatik.\nA modalitatea:\nAmo Herrero, Laura.\nOlabarria Larizgoitia, Markel.',
'Ebazpena Euskal Herriko Agintaritzaren Aldizkarian argitaratuko da, eta, denek jakin dezaten, www.elankidetza.euskadi.net eta www.euskadi.net orrietan argitaratuko da beken esleipendunen zerrenda eta haien',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.7648, 0.2485],
# [0.7648, 1.0000, 0.2295],
# [0.2485, 0.2295, 1.0000]])
multilingual-e5-largeTripletEvaluator| Metric | Value |
|---|---|
| cosine_accuracy | 0.8655 |
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Nork izendatu du Osakidetzako Teknikari Espezialista sanitarioen lanbide-taldeko lekualdatze-lehiaketa kalifikatuko duen epaimahaia? |
Osakidetza-Euskal osasun zerbitzuko zuzendari nagusiaren azaroaren 10eko 1401/2017 Ebazpenaren bidez, Teknikari Espezialista sanitarioen lanbide-taldeko lekualdatze-lehiaketa deitu zen. Ebazpena 2017ko azaroaren 28ko EHAAn (227. zenbakia) argitaratu zen. |
Zein urtetan sortu zen UPyD alderdia? |
[TOPIC: Galdera, Gorka Maneiro Labayen Mistoa-UPyD taldeko legebiltzarkideak lehendakariari egina, euskal unibertsitate publikoan ETAko kideen espediente faltsuak izateari buruz] |
Arrasateko ospitale berrian erresonantzia magnetikoetarako unitate bat irekitzea aurreikusita al dago? |
[TOPIC: Galdera, Rebeka Ubera Aranzeta EH Bildu taldeko legebiltzarkideak Osasuneko sailburuari egina, Arrasateko ospitalean erresonantzia magnetikoetarako unitatea irekitzeari buruz] |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Zein da LABen iritzia euskal sindikalismoaren egoerari buruz? |
Erronka handiak direla onartu du LABek, are gehiago munduan inposatzen ari diren «errezeta neoliberal eta autoritarioak» kontuan hartuta, baina, sindikatuaren iritziz, Euskal Herrian bada beste norabidean jotzeko moduko «orube» sindikal, sozial eta politikorik. Aldaketa sozialaren eta burujabetasunaren alde dauden eragileen arteko «euskal agenda sozial partekatua» beharrezkoa dela nabarmendu du, «estatuekiko» autonomoa izango dena. |
Azaldu duenez, lan munduan izandako aldaketek sindikalismoaren krisia ekarri dute, eta pitzadurak eragin ditu sindikatuen botere iturrietan. |
Zer neurri hartu ditu Txinako gobernuak Pekingo zarata eta nahasmena murrizteko? |
Munduko bigarren potentziaren hiriburua aldatzen |
Pekingo gobernuak adierazi du interes tasak murrizteko gaitasuna baduela oraindik, halakorik egitea beharrezkoa balitz. |
Zein da Eusko Jaurlaritzaren jarrera Forondako aireportua bultzatzeari dagokionez? |
[TOPIC: Galdera, Igor López de Munain Ganuza EH Bildu taldeko legebiltzarkideak Ingurumen eta Lurralde Politikako sailburuari egina, Forondako aireportua bultzatzeari buruz] |
[TOPIC: Interpelazioa, Rebeka Ubera Aranzeta EH Bildu taldeko legebiltzarkideak Hezkuntzako sailburuari egina, Haurreskolak partzuergoan doakotasunaren bidean 18.000 euro baino gutxiagoko familiei doakotasuna ezartzeari buruz] |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
eval_strategy: epochlearning_rate: 2e-05warmup_ratio: 0.1batch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_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: Falsefp16_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: Nonepast_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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_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: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_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: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss | multilingual-e5-large_cosine_accuracy |
|---|---|---|---|---|
| 0.0409 | 100 | 1.5839 | - | - |
| 0.0819 | 200 | 0.3913 | - | - |
| 0.1228 | 300 | 0.1506 | - | - |
| 0.1637 | 400 | 0.1704 | - | - |
| 0.2047 | 500 | 0.0915 | - | - |
| 0.2456 | 600 | 0.0901 | - | - |
| 0.2865 | 700 | 0.105 | - | - |
| 0.3275 | 800 | 0.0687 | - | - |
| 0.3684 | 900 | 0.0589 | - | - |
| 0.4093 | 1000 | 0.0646 | - | - |
| 0.4503 | 1100 | 0.0885 | - | - |
| 0.4912 | 1200 | 0.0616 | - | - |
| 0.5321 | 1300 | 0.0517 | - | - |
| 0.5731 | 1400 | 0.0333 | - | - |
| 0.6140 | 1500 | 0.0601 | - | - |
| 0.6549 | 1600 | 0.0372 | - | - |
| 0.6959 | 1700 | 0.0487 | - | - |
| 0.7368 | 1800 | 0.047 | - | - |
| 0.7777 | 1900 | 0.0391 | - | - |
| 0.8187 | 2000 | 0.0421 | - | - |
| 0.8596 | 2100 | 0.0414 | - | - |
| 0.9005 | 2200 | 0.0413 | - | - |
| 0.9415 | 2300 | 0.0271 | - | - |
| 0.9824 | 2400 | 0.0332 | - | - |
| 1.0 | 2443 | - | 0.4724 | 0.8315 |
| 1.0233 | 2500 | 0.0338 | - | - |
| 1.0643 | 2600 | 0.019 | - | - |
| 1.1052 | 2700 | 0.0308 | - | - |
| 1.1461 | 2800 | 0.0148 | - | - |
| 1.1871 | 2900 | 0.0229 | - | - |
| 1.2280 | 3000 | 0.0214 | - | - |
| 1.2689 | 3100 | 0.0296 | - | - |
| 1.3099 | 3200 | 0.0158 | - | - |
| 1.3508 | 3300 | 0.0177 | - | - |
| 1.3917 | 3400 | 0.0281 | - | - |
| 1.4327 | 3500 | 0.0299 | - | - |
| 1.4736 | 3600 | 0.0175 | - | - |
| 1.5145 | 3700 | 0.0193 | - | - |
| 1.5555 | 3800 | 0.0119 | - | - |
| 1.5964 | 3900 | 0.0307 | - | - |
| 1.6373 | 4000 | 0.0276 | - | - |
| 1.6783 | 4100 | 0.027 | - | - |
| 1.7192 | 4200 | 0.0243 | - | - |
| 1.7601 | 4300 | 0.0127 | - | - |
| 1.8011 | 4400 | 0.0178 | - | - |
| 1.8420 | 4500 | 0.0076 | - | - |
| 1.8829 | 4600 | 0.0189 | - | - |
| 1.9239 | 4700 | 0.014 | - | - |
| 1.9648 | 4800 | 0.0109 | - | - |
| 2.0 | 4886 | - | 0.4039 | 0.8494 |
| 2.0057 | 4900 | 0.0129 | - | - |
| 2.0467 | 5000 | 0.0163 | - | - |
| 2.0876 | 5100 | 0.01 | - | - |
| 2.1285 | 5200 | 0.0107 | - | - |
| 2.1695 | 5300 | 0.0109 | - | - |
| 2.2104 | 5400 | 0.0105 | - | - |
| 2.2513 | 5500 | 0.0106 | - | - |
| 2.2923 | 5600 | 0.011 | - | - |
| 2.3332 | 5700 | 0.0177 | - | - |
| 2.3741 | 5800 | 0.0112 | - | - |
| 2.4151 | 5900 | 0.0091 | - | - |
| 2.4560 | 6000 | 0.0204 | - | - |
| 2.4969 | 6100 | 0.0051 | - | - |
| 2.5379 | 6200 | 0.0091 | - | - |
| 2.5788 | 6300 | 0.0104 | - | - |
| 2.6197 | 6400 | 0.0102 | - | - |
| 2.6607 | 6500 | 0.0081 | - | - |
| 2.7016 | 6600 | 0.0066 | - | - |
| 2.7425 | 6700 | 0.0049 | - | - |
| 2.7835 | 6800 | 0.0038 | - | - |
| 2.8244 | 6900 | 0.005 | - | - |
| 2.8653 | 7000 | 0.0139 | - | - |
| 2.9063 | 7100 | 0.0069 | - | - |
| 2.9472 | 7200 | 0.0066 | - | - |
| 2.9881 | 7300 | 0.0094 | - | - |
| 3.0 | 7329 | - | 0.3533 | 0.8655 |
@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
HiTZ/BERnaT-base