--- tags: - sentence-transformers - sentence-similarity - feature-extraction - dense - generated_from_trainer - dataset_size:1174 - loss:MatryoshkaLoss - loss:MultipleNegativesRankingLoss widget: - source_sentence: Sodišče sme na prošnjo obsojenca odločiti, da se obsodba izbriše iz kazenske evidence in da obsojenec velja za neobsojenega, če je potekla polovica z zakonom določenega roka, po poteku katerega se obsodba izbriše, če obsojenec v tem času ni storil novega kaznivega dejanja. Pri odločanju o izbrisu upošteva sodišče vedenje obsojenca po prestani kazni, naravo kaznivega dejanja in druge okoliščine, pomembne za izbris obsodbe. sentences: - Če dan izročitve stvari kupcu ni določen, mora prodajalec izročiti stvar v roku 15 dni po sklenitvi pogodbe, glede na naravo stvari in na druge okoliščine. - 'Upravljalci, ki so subjekti javnega sektorja, za namene raziskovanja posredujejo osebne podatke po tarifi, določeni za raziskovalne storitve. ' - Sodišče po uradni dolžnosti izbriše obsodbo iz kazenske evidence, če storilec že dalj časa ni izvršil kaznivega dejanja, pri tem pa prav tako upošteva vedenje obsojenca po prestani kazni, naravo kaznivega dejanja in druge okoliščine, pomembne za izbris obsodbe. - source_sentence: 'V okviru trženja ali podobne druge poslovne dejavnosti se ne smejo zahtevati, pridobiti ali nadalje obdelovati biometrični osebni podatki v zamenjavo za določene storitve, četudi so te storitve za posameznika, na katerega se nanašajo osebni podatki, brezplačne.' sentences: - 'Upravljavec videonadzora ni dolžan obvestiti policije, če posnetek pokaže nevaren dogodek. ' - Za obdelave osebnih podatkov na področju varnosti države pristojni organ s področja varnosti države pripravi oceno učinka s smiselno uporabo določb tega člena. Ocena učinka je za potrebe nadzorov javno dostopna. - Osebe zasebnega prava lahko zahtevajo, pridobivajo ali nadalje obdelujejo biometrične osebne v zameno za določene storitve in blago, pod pogojem, da se storitve izvajajo za posameznika brezplačno. - source_sentence: (3) Prepoved odtujitve ali obremenitve se lahko časovno omeji. sentences: - "Z ustanovitvijo hipoteke na stavbni pravici upnik hkrati \npridobi tudi zastavno\ \ pravico na terjatvi imetnika stavbnih\npravic za plačilo nadomestila." - V postopkih pred nadzornim organom ni dopustna stranska udeležba, kot jo določa zakon, ki ureja splošni civilni postopek. - 'Prepoved odtujitve mora biti časovno omejena. ' - source_sentence: (1) Več oseb ima solastninsko pravico na nerazdeljeni stvari (solastniki), če je delež vsakega izmed njih določen v sorazmerju s celoto (idealni delež). sentences: - Javni shodi so brezpogojno dovoljeni in vsakršna njihova prepoved ali preprečitev se kaznuje. - 'Posnetki videonadzora morajo se hranijo trajno, če kapacitete hranilnika tega ne dopuščajo, pa se hranijo eno leto in se po tem izbrišejo. ' - 'Več oseb ima solastninsko pravico na nerazdeljeni stvari (solastniki), vendar le če je delež vsakega izmed njih nedoločen vse do delitve. ' - source_sentence: '(1) Posest je neposredna dejanska oblast nad stvarjo (neposredna posest). (2) Posest ima tudi tisti, ki izvršuje dejansko oblast nad stvarjo prek koga drugega, ki ima neposredno posest iz kakršnegakoli pravnega naslova (posredna posest).' sentences: - V postopkih pred nadzornim organom ni dopustna stranska udeležba, kot jo določa zakon, ki ureja splošni civilni postopek. - Posameznik lahko isto stvar istočasno poseduje neposredno in posredno. - Sodišče nikoli ne more odločati o poslu, ki presega redno upravljanje, brez soglasja vseh solastnikov. pipeline_tag: sentence-similarity library_name: sentence-transformers metrics: - pearson_cosine - spearman_cosine model-index: - name: SentenceTransformer results: - task: type: semantic-similarity name: Semantic Similarity dataset: name: validation dev type: validation-dev metrics: - type: pearson_cosine value: 0.07191992786363605 name: Pearson Cosine - type: spearman_cosine value: 0.019280573682247046 name: Spearman Cosine --- # SentenceTransformer This is a [sentence-transformers](https://www.SBERT.net) 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 **This model has been specifically finetuned for contradiction retrieval! It is therefore not suitable for regular similarity-based retrieval!** ### Model Description - **Model Type:** Sentence Transformer - **Maximum Sequence Length:** 8192 tokens - **Output Dimensionality:** 768 dimensions - **Similarity Function:** Cosine Similarity ### Model Sources - **Documentation:** [Sentence Transformers Documentation](https://sbert.net) - **Repository:** [Sentence Transformers on GitHub](https://github.com/huggingface/sentence-transformers) - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers) ### Full Model Architecture ``` SentenceTransformer( (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'ModernBertModel'}) (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: ```bash pip install -U sentence-transformers ``` Then you can load this model and run inference. ```python from sentence_transformers import SentenceTransformer # Download from the 🤗 Hub model = SentenceTransformer("sentence_transformers_model_id") # Run inference sentences = [ '(1) Posest je neposredna dejanska oblast nad stvarjo (neposredna posest).\n(2) Posest ima tudi tisti, ki izvršuje dejansko oblast nad stvarjo prek koga drugega, ki\nima neposredno posest iz kakršnegakoli pravnega naslova (posredna posest).', 'Posameznik lahko isto stvar istočasno poseduje neposredno in posredno.', 'Sodišče nikoli ne more odločati o poslu, ki presega redno upravljanje, brez soglasja vseh solastnikov.', ] 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.5774, 0.4022], # [0.5774, 1.0000, 0.2455], # [0.4022, 0.2455, 1.0000]]) ``` ## Evaluation ### Metrics #### Semantic Similarity * Dataset: `validation-dev` * Evaluated with [EmbeddingSimilarityEvaluator](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.EmbeddingSimilarityEvaluator) | Metric | Value | |:--------------------|:-----------| | pearson_cosine | 0.0719 | | **spearman_cosine** | **0.0193** | ## Training Details ### Training Dataset #### Unnamed Dataset * Size: 1,174 training samples * Columns: anchor, positive, and label * Approximate statistics based on the first 1000 samples: | | anchor | positive | label | |:--------|:-------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:--------------------------------------------------------------| | type | string | string | float | | details | | | | * Samples: | anchor | positive | label | |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------|:-----------------| | (1) Vsaka stranka v dvostranski pogodbi lahko prenese pogodbo nekomu tretjemu,
ki postane s tem imetnik vseh njenih pravic in obveznosti iz te pogodbe, če v to privoli druga stranka.
(2) S prenosom pogodbe preide pogodbeno razmerje med prenositeljem in drugo
stranko na prevzemnika in drugo stranko takrat, ko druga stranka privoli v prenos; če je dala svojo privolitev vnaprej, pa takrat, ko je o prenosu obveščena.
(3) Privolitev v prenos pogodbe je veljavna samo, če je dana v obliki, ki jo predpisuje
zakon za sklenitev prenesene pogodbe.
(4) Določbe o stranskih pravicah v zvezi s pogodbo o prevzemu dolga se smiselno
uporabljajo tudi za prenos pogodbe.
| S prenosom pogodbe preide pogodbeno razmerje, pri čemer
prenositelj jamči, da bo druga stranka izpolnila svoje obveznosti.
| 1.0 | | (1) Vsaka stranka v dvostranski pogodbi lahko prenese pogodbo nekomu tretjemu,
ki postane s tem imetnik vseh njenih pravic in obveznosti iz te pogodbe, če v to privoli druga stranka.
(2) S prenosom pogodbe preide pogodbeno razmerje med prenositeljem in drugo
stranko na prevzemnika in drugo stranko takrat, ko druga stranka privoli v prenos; če je dala svojo privolitev vnaprej, pa takrat, ko je o prenosu obveščena.
(3) Privolitev v prenos pogodbe je veljavna samo, če je dana v obliki, ki jo predpisuje
zakon za sklenitev prenesene pogodbe.
(4) Določbe o stranskih pravicah v zvezi s pogodbo o prevzemu dolga se smiselno
uporabljajo tudi za prenos pogodbe.
| S prenosom pogodbe preide pogodbeno razmerje, pri čemer
prenositelj jamči, da bo druga stranka izpolnila svoje obveznosti.
| 1.0 | | (1) Za škodo, ki jo povzroči delavec pri delu ali v zvezi z delom tretji osebi, odgovarja pravna ali fizična oseba, pri kateri je delavec delal takrat, ko je bila škoda povzročena, razen če dokaže, da je delavec v danih okoliščinah ravnal tako, kot je bilo treba.
(2) Oškodovanec ima pravico zahtevati povrnitev škode tudi neposredno od delavca, če je ta škodo povzročil namenoma.
(3) Kdor je oškodovancu povrnil škodo, ki jo je povzročil delavec namenoma ali iz hude malomarnosti, ima pravico zahtevati od delavca povrnitev plačanega zneska.
(4) Ta pravica zastara v šestih mesecih od dneva, ko je bila odškodnina plačana.
(5) Določba prvega odstavka tega člena ne posega v pravila o odgovornosti za škodo, ki izvira od nevarne stvari ali nevarne dejavnosti.
| Oškodovanec lahko vedno zahteva odškonino tako od delodajalca kot od delavca, njuna odgovornost je solidarna. | 1.0 | * Loss: [MatryoshkaLoss](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters: ```json { "loss": "MultipleNegativesRankingLoss", "matryoshka_dims": [ 768 ], "matryoshka_weights": [ 1 ], "n_dims_per_step": -1 } ``` ### Evaluation Dataset #### Unnamed Dataset * Size: 62 evaluation samples * Columns: anchor, positive, and label * Approximate statistics based on the first 62 samples: | | anchor | positive | label | |:--------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:--------------------------------------------------------------| | type | string | string | float | | details | | | | * Samples: | anchor | positive | label | |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------|:-----------------| | (1) Posest je neposredna dejanska oblast nad stvarjo (neposredna posest).
(2) Posest ima tudi tisti, ki izvršuje dejansko oblast nad stvarjo prek koga drugega, ki
ima neposredno posest iz kakršnegakoli pravnega naslova (posredna posest).
| Posameznik lahko isto stvar istočasno poseduje neposredno in posredno. | 1.0 | | (1) Posest je neposredna dejanska oblast nad stvarjo (neposredna posest).
(2) Posest ima tudi tisti, ki izvršuje dejansko oblast nad stvarjo prek koga drugega, ki
ima neposredno posest iz kakršnegakoli pravnega naslova (posredna posest).
| Posameznik lahko isto stvar istočasno poseduje neposredno in posredno. | 1.0 | | Upravljavec videonadzornega sistema, ki izvaja videonadzor javnih površin, mora v primeru, ko videonadzorni sistem posname dogodek, ki ogroža zdravje ali življenje posameznika, o tem nemudoma obvestiti policijo ali drug pristojni subjekt. | Upravljavec videonadzora ni dolžan obvestiti policije, če posnetek pokaže nevaren dogodek.
| 1.0 | * Loss: [MatryoshkaLoss](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters: ```json { "loss": "MultipleNegativesRankingLoss", "matryoshka_dims": [ 768 ], "matryoshka_weights": [ 1 ], "n_dims_per_step": -1 } ``` ### Training Hyperparameters #### Non-Default Hyperparameters - `eval_strategy`: steps - `per_device_train_batch_size`: 16 - `per_device_eval_batch_size`: 16 - `warmup_ratio`: 0.1 - `bf16`: True - `batch_sampler`: no_duplicates #### All Hyperparameters
Click to expand - `overwrite_output_dir`: False - `do_predict`: False - `eval_strategy`: steps - `prediction_loss_only`: True - `per_device_train_batch_size`: 16 - `per_device_eval_batch_size`: 16 - `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`: 3 - `max_steps`: -1 - `lr_scheduler_type`: linear - `lr_scheduler_kwargs`: {} - `warmup_ratio`: 0.1 - `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 - `use_cpu`: False - `seed`: 42 - `data_seed`: None - `jit_mode_eval`: False - `bf16`: True - `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 - `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`: False - `ignore_data_skip`: False - `fsdp`: [] - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False} - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None} - `parallelism_config`: None - `deepspeed`: None - `label_smoothing_factor`: 0.0 - `optim`: adamw_torch_fused - `optim_args`: None - `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`: None - `hub_always_push`: False - `hub_revision`: None - `gradient_checkpointing`: False - `gradient_checkpointing_kwargs`: None - `include_for_metrics`: [] - `eval_do_concat_batches`: True - `mp_parameters`: - `auto_find_batch_size`: False - `full_determinism`: False - `ray_scope`: last - `ddp_timeout`: 1800 - `torch_compile`: False - `torch_compile_backend`: None - `torch_compile_mode`: None - `include_tokens_per_second`: False - `include_num_input_tokens_seen`: no - `neftune_noise_alpha`: None - `optim_target_modules`: None - `batch_eval_metrics`: False - `eval_on_start`: False - `use_liger_kernel`: False - `liger_kernel_config`: None - `eval_use_gather_object`: False - `average_tokens_across_devices`: True - `prompts`: None - `batch_sampler`: no_duplicates - `multi_dataset_batch_sampler`: proportional - `router_mapping`: {} - `learning_rate_mapping`: {}
### Training Logs | Epoch | Step | Training Loss | Validation Loss | validation-dev_spearman_cosine | |:------:|:----:|:-------------:|:---------------:|:------------------------------:| | 0.3378 | 25 | - | 0.3447 | 0.0390 | | 0.6757 | 50 | - | 0.2570 | -0.0466 | | 1.0135 | 75 | - | 0.2282 | -0.0269 | | 1.3514 | 100 | 0.3073 | 0.1797 | 0.0677 | | 1.6892 | 125 | - | 0.2085 | 0.0184 | | 2.0270 | 150 | - | 0.1725 | 0.0479 | | 2.3649 | 175 | - | 0.1636 | 0.0183 | | 2.7027 | 200 | 0.0371 | 0.1707 | 0.0193 | ### Framework Versions - Python: 3.10.12 - Sentence Transformers: 5.1.2 - Transformers: 4.57.0.dev0 - PyTorch: 2.9.0+cu128 - Accelerate: 1.10.1 - Datasets: 4.1.1 - Tokenizers: 0.22.1 ## Citation ### BibTeX #### Sentence Transformers ```bibtex @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", } ``` #### MatryoshkaLoss ```bibtex @misc{kusupati2024matryoshka, title={Matryoshka Representation Learning}, author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi}, year={2024}, eprint={2205.13147}, archivePrefix={arXiv}, primaryClass={cs.LG} } ``` #### MultipleNegativesRankingLoss ```bibtex @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} } ```