Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use baconnier/xp-mteb-dense-fr-v4-063a with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("baconnier/xp-mteb-dense-fr-v4-063a")
sentences = [
"Responsabilité du détenteur pour dégradations restitution chose bonne foi",
"Code rural et de la pêche maritime - Article L753-7\nPartie législative - Dispositions sociales - Accidents du travail et maladies professionnelles - Fonds commun des accidents du travail agricole - Accidents du travail intervenus avant le 1er juillet 1973 - Dépenses du fonds commun des accidents du travail agricole - Dépenses relatives aux accidents du travail intervenus avant le 1er juillet 1973 - Majorations de rentes.\nLes caisses mentionnées à l'article L. 723-2 supportent la dépense des majorations de rentes, de l'allocation ainsi que de la bonification mentionnées à l'article L. 753-8. \nLa majoration à la charge des caisses mentionnées au même article L. 723-2 est égale à la différence entre la rente revalorisée, comme définie à l'article L. 753-8, et la rente allouée. \nLes majorations de rentes et bonifications mentionnées à la présente sous-section ne sont pas applicables aux accidents du travail survenus et maladies professionnelles constatées après le 30 juin 1973.",
"Code civil - Article 1352-1\nCelui qui restitue la chose répond des dégradations et détériorations qui en ont diminué la valeur, à moins qu'il ne soit de bonne foi et que celles-ci ne soient pas dues à sa faute.",
"Code civil - Article 1351-1\nDes différentes manières dont on acquiert la propriété - Des engagements qui se forment sans convention - Du régime général des obligations - L'extinction de l'obligation - L'impossibilité d'exécuter\nLorsque l'impossibilité d'exécuter résulte de la perte de la chose due, le débiteur mis en demeure est néanmoins libéré s'il prouve que la perte se serait pareillement produite si l'obligation avait été exécutée.\nIl est cependant tenu de céder à son créancier les droits et actions attachés à la chose."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-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': 'XLMRobertaModel'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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()
)
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 = [
"Convention de liquidation du régime matrimonial pendant l'instance en divorce : acte notarié obligatoire pour les biens soumis à publicité foncière ?",
"Code civil - Article 265-2\nDes personnes - Du divorce - Des conséquences du divorce - Des conséquences du divorce pour les époux - Dispositions générales.\nLes époux peuvent, pendant l'instance en divorce, passer toutes conventions pour la liquidation et le partage de leur régime matrimonial.\n Lorsque la liquidation porte sur des biens soumis à la publicité foncière, la convention doit être passée par acte notarié.",
"Code civil - Article 265-1\nLe divorce est sans incidence sur les droits que l'un ou l'autre des époux tient de la loi ou des conventions passées avec des tiers.",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.7003, 0.4054],
# [0.7003, 1.0000, 0.4614],
# [0.4054, 0.4614, 1.0000]])
notarial-evalInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.9717 |
| cosine_accuracy@3 | 0.9957 |
| cosine_accuracy@5 | 0.9983 |
| cosine_accuracy@10 | 0.9983 |
| cosine_precision@1 | 0.9717 |
| cosine_precision@3 | 0.3319 |
| cosine_precision@5 | 0.1997 |
| cosine_precision@10 | 0.0998 |
| cosine_recall@1 | 0.9717 |
| cosine_recall@3 | 0.9957 |
| cosine_recall@5 | 0.9983 |
| cosine_recall@10 | 0.9983 |
| cosine_ndcg@10 | 0.9876 |
| cosine_mrr@10 | 0.9839 |
| cosine_map@100 | 0.9839 |
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
Quels sont les éléments obligatoires et les cas de révision de la lettre de mission du commissaire aux comptes ? |
Code de commerce - Article A821-62 |
Code de commerce - Article A821-62 |
Où consulter la liste provisoire des caisses de mutualité sociale agricole ? |
Code rural et de la pêche maritime - Article R723-28 |
Code rural et de la pêche maritime - Article R723-26 |
Comment majorer un actif d'impôt différé lié à une perte qualifiée au taux minimum ? |
Code général des impôts - Article 223 VU quinquies |
Code général des impôts - Article 223 VU ter |
MultipleNegativesRankingLoss 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
}
per_device_train_batch_size: 4per_device_eval_batch_size: 4fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 4per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_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: 3max_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: 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: 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: lengthproject: huggingfacetrackio_space_id: trackioddp_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: 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: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | notarial-eval_cosine_ndcg@10 |
|---|---|---|---|
| 0.0576 | 500 | 0.1604 | - |
| 0.1151 | 1000 | 0.113 | - |
| 0.1727 | 1500 | 0.0933 | - |
| 0.2303 | 2000 | 0.0985 | - |
| 0.2878 | 2500 | 0.1137 | - |
| 0.3454 | 3000 | 0.128 | - |
| 0.4029 | 3500 | 0.1042 | - |
| 0.4605 | 4000 | 0.1132 | - |
| 0.5181 | 4500 | 0.1289 | - |
| 0.5756 | 5000 | 0.1185 | - |
| 0.6332 | 5500 | 0.1119 | - |
| 0.6908 | 6000 | 0.1013 | - |
| 0.7483 | 6500 | 0.1081 | - |
| 0.8059 | 7000 | 0.1237 | - |
| 0.8635 | 7500 | 0.0925 | - |
| 0.9210 | 8000 | 0.0998 | - |
| 0.9786 | 8500 | 0.0953 | - |
| 1.0 | 8686 | - | 0.9876 |
@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{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},
}
Base model
BAAI/bge-m3