Arash-Alborz/minilm-dutch-legal-retrieval
SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
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 semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: sentence-transformers/all-MiniLM-L6-v2 <!-- at revision c9745ed1d9f207416be6d2e6f8de32d1f16199bf -->
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 384 dimensions
- Similarity Function: Cosine Similarity <!-- - Training Dataset: Unknown --> <!-- - Language: Unknown --> <!-- - License: Unknown -->
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': 'BertModel'})
(1): Pooling({'word_embedding_dimension': 384, '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})
(2): Normalize()
)Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformersThen 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 = [
'Ik ga scheiden. Ik scheid wegens onherstelbare ontwrichting. In welke gevallen kies ik voor een scheiding wegens onherstelbare ontwrichting?',
'Art. 1256. Op ieder ogenblik kunnen de partijen de rechter verzoeken hun overeenkomsten te homologeren over de voorlopige maatregelen met betrekking tot de persoon, het levensonderhoud en de goederen van de echtgenoten of van hun kinderen. Hij kan weigeren de overeenkomst te homologeren als deze duidelijk in strijd is met het belang van de kinderen. Bij gebrek aan een overeenkomst of in geval van een gedeeltelijke overeenkomst, verwijst de rechter de zaak op verzoek van één van de partijen naar de eerste nuttige zitting in het kader van de zaken die worden geacht spoedeisend te zijn of van de zaken waarvoor de spoedeisendheid wordt aangevoerd in de zin van artikel 1253ter/4. Artikel 803 is van toepassing',
'Art. 248. - Beginselen § 1. Indien de huurder, behoudens de zekerheden waarin onder meer voorzien in artikel 1752 van het Burgerlijk Wetboek, om de naleving van zijn verplichtingen te waarborgen, één van de in het volgende lid bepaalde vormen van waarborgen verstrekt, mag die niet meer bedragen dan het bedrag dat gelijk is aan twee of drie maanden huur, naargelang de vorm van de huurwaarborg. § 2. De in paragraaf 1 vermelde waarborgen kunnen naar keuze van de huurder drie vormen aannemen : 1° een geïndividualiseerde rekening op naam van de huurder bij een financiële instelling ; 2° een bankwaarborg die het de huurder mogelijk maakt de waarborg progressief samen te stellen ; 3° een bankwaarborg ten gevolge van een standaardcontract tussen een OCMW en een financiële instelling. § 3. Wanneer de huurder kiest voor een geïndividualiseerde rekening, mag de huurwaarborg niet meer bedragen dan een bedrag gelijk aan twee maanden huur. De opgebrachte rente wordt gekapitaliseerd ten bate van de huurder en de verhuurder verwerft voorrecht op de activa van de rekening voor elke schuldvordering ten gevolge van het volledig of gedeeltelijk niet nakomen van de verplichtingen van de huurder. § 4. Wanneer de huurder kiest voor een bankwaarborg, waarbij hij zich er in voorkomend geval toe verbindt die volledig samen te stellen middels constante maandelijkse afbetalingen gedurende de duur van de huurovereenkomst, met een maximumduur van drie jaar, is deze gelijk aan een bedrag van maximaal drie maanden huur. De financiële instelling moet die zijn waar de huurder in voorkomend geval zijn rekening heeft en waar zijn beroeps- of vervangingsinkomsten op worden gestort. Indien de huurder stopt met het storten van zijn beroeps- of vervangingsinkomens bij de desbetreffende instelling, is die gerechtigd om de integrale en onmiddellijke samenstelling van de waarborg te eisen, onverminderd de mogelijkheid om die over te brengen naar een andere financiële instelling. Niettegenstaande de wet van 25 april 2014 op het statuut van en het toezicht op de kredietinstellingen en beursvennootschappen, kan een financiële instelling deze waarborg niet weigeren om redenen die verband houden met de kredietwaardigheid van de huurder. Hoofdstuk I van titel IV van Boek VII van het Wetboek van Economisch Recht betreffende het consumentenkrediet is niet van toepassing. De Regering kan de nadere regels bepalen inzake de verplichting voor de financiële instelling om een huurwaarborg samen te stellen in het geval dat een kandidaat- huurder ? op het moment van zijn aanvraag, gebonden is door meer dan één andere samenstellingsverplichting voor huurwaarborgen die voorheen toegekend werden. De huurder zal geen enkele debetrente verschuldigd zijn aan de financiële instelling, die hem rente zal uitkeren vanaf de dag dat de waarborg volledig is samengesteld. De financiële instelling beschikt over de voorrechten van het gemeen recht ten overstaande van de huurder in geval hij zijn verplichting om de waarborg progressief samen te stellen, niet naleeft. § 5. Wanneer de huurder kiest voor een bankwaarborg die gelijk is aan een bedrag van maximaal drie maanden huur ten gevolge van een standaardcontract tussen een OCMW en een financiële instelling, is het dat OCMW dat daar om verzoekt bij de financiële instelling, die de waarborg toestaat ten gunste van de verhuurder. § 6. De Regering legt het formulier vast waarmee de financiële instellingen ten aanzien van de verhuurders zullen bevestigen dat de huurwaarborg toegekend is, ongeacht de manier waarop deze waarborg wordt gevormd',
]
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.5528, 0.1048],
# [0.5528, 1.0000, 0.1227],
# [0.1048, 0.1227, 1.0000]])<!--
Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details> -->
<!--
Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details> -->
<!--
Out-of-Scope Use
List how the model may foreseeably be misused and address what users ought not to do with the model. -->
Evaluation
Metrics
Information Retrieval
- Evaluated with <code>InformationRetrievalEvaluator</code>
<!--
Bias, Risks and Limitations
What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->
<!--
Recommendations
What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->
Training Details
Training Dataset
Unnamed Dataset
- Size: 4,450 training samples
- Columns: <code>sentence0</code> and <code>sentence1</code>
- Approximate statistics based on the first 1000 samples: | | sentence0 | sentence1 | |:--------|:----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------| | type | string | string | | details | <ul><li>min: 9 tokens</li><li>mean: 31.92 tokens</li><li>max: 98 tokens</li></ul> | <ul><li>min: 28 tokens</li><li>mean: 193.27 tokens</li><li>max: 256 tokens</li></ul> |
- Samples: | sentence0 | sentence1 | |:--------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>Waar kan ik een minnelijke schuldbemiddelaar vinden?</code> | <code>Art. 123. Niettegenstaande de naleving van bovenvermelde voorwaarden kan de Minister van Sociale Actie de erkenning weigeren aan instellingen : 1° indien wordt vastgesteld dat zij of één van hun organen, gemachtigden of aangestelden blijk geven van een gebrek aan eerbaarheid of onbaatzuchtigheid; 2° binnen dewelke de functies van voorzitter, bestuurder, directeur of gemachtigde worden toevertrouwd aan een niet gerehabiliteerde persoon die veroordeeld werd tot een gevangenisstraf van minstens één maand, zelfs met uitstel, voor een overtreding bedoeld in het koninklijk besluit nr. 22 waarbij aan bepaalde veroordeelden en aan de gefailleerde verbod wordt opgelegd bepaalde ambten, beroepen of werkzaamheden uit te oefenen en waarbij aan de rechtbanken van koophandel de bevoegdheid wordt toegekend dergelijk verbod uit te spreken; 3° die niet voldoende zelfstandig zijn t.o.v. personen of instellingen die een activiteit van kredietgever of kredietbemiddelaar uitoefenen krachtens de wet van 12 ...</code> | | <code>Moet ik een advocaat nemen om de beslissing van een sociale zekerheidsinstelling in Wallonië aan te vechten?</code> | <code>Art. 508/4. Het Rijk kent een subsidie toe aan de commissies voor juridische bijstand op basis van objectieve criteria, vastgesteld bij een in Ministerraad overlegd koninklijk besluit.</code> | | <code>Wat gebeurt er als ik mijn hypothecaire lening niet betaal?</code> | <code>Art. 1625. Het hoger beroep wordt betekend aan de partij of aan de gekozen woonplaats. De beslagene kan in hoger beroep geen andere middelen voordragen dan die welke in eerste aanleg zijn aangevoerd. De akte van hoger beroep vermeldt de grieven, alles op straffe van nietigheid. Tegen arresten bij verstek staat geen verzet open.</code> |
- Loss: <code>MultipleNegativesRankingLoss</code> 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
}Training Method
The model was fine-tuned using MultipleNegativesRankingLoss, a contrastive learning objective commonly used for semantic retrieval tasks.
This approach encourages semantically similar query–document pairs to have closer embeddings.
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy: stepsper_device_train_batch_size: 22per_device_eval_batch_size: 22num_train_epochs: 10multi_dataset_batch_sampler: round_robin
All Hyperparameters
<details><summary>Click to expand</summary>
do_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 22per_device_eval_batch_size: 22gradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 10max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamwtorchfusedoptim_args: Nonegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Truepush_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_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_num_input_tokens_seen: noneftune_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: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
</details>
Training Logs
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.3.0
- Transformers: 5.0.0
- PyTorch: 2.10.0+cu128
- Accelerate: 1.13.0
- Datasets: 4.0.0
- Tokenizers: 0.22.2
Citation
BibTeX
Sentence Transformers
@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",
}MultipleNegativesRankingLoss
@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},
}<!--
Glossary
Clearly define terms in order to be accessible across audiences. -->
<!--
Model Card Authors
Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->
<!--
Model Card Contact
Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->
