SentenceTransformer based on Snowflake/snowflake-arctic-embed-m-v2.0

This is a sentence-transformers model finetuned from Snowflake/snowflake-arctic-embed-m-v2.0. 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

Model Description

  • Model Type: Sentence Transformer
  • Base model: Snowflake/snowflake-arctic-embed-m-v2.0
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: GteModel 
  (1): Pooling({'word_embedding_dimension': 768, '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()
)

Usage

Direct Usage (Sentence Transformers)

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("E3LQA/lleqa_article_retriever")
# Run inference
sentences = [
    'query: Je suis travailleur salarié(e). Quelles démarches dois-je faire pour avoir droit au congé de maternité ?',
    "§ 1er. Le titulaire reconnu incapable de travailler qui n'est pas hospitalisé, ni hébergé dans une maison de repos ou de soins, une maison de soins psychiatriques ou une maison de repos pour personnes âgées, ni en situation de détention préventive ou de privation de liberté et pour lequel le médecin-conseil a décidé que l'aide d'une tierce personne est nécessairedu fait que son état physique ou mental ne lui permet pas d'accomplir seul les actes courants de la vie journalière, peut, à partir du quatrième mois d'incapacité de travail, prétendre à une allocation forfaitaire pour l'aide d'une tierce personne.L'évaluation du degré de nécessité de l'aide d'une tierce personne s'effectue sur base du nombre total de points attribués en fonction de l'échelle d'évaluation et son manuel, tels que repris sous l'annexe II. Le titulaire doit obtenir un nombre total d'au moins 11 points.L'aide d'une tierce personne ne peut être reconnue que si elle est estimée indispensable pour une période continue d'au moins trois mois.La décision de reconnaissance de la nécessité de l'aide d'une tierce personne est consignée dans le dossier médical et administratif du titulaire au siège de l'organisme assureur. Cette décision de reconnaissance est communiquée à l'INAMI par l'organisme assureur.L'hospitalisation du titulaire ou son hébergement dans une maison de repos ou de soins, une maison de soins psychiatriques ou une maison de repos pour personnes âgées, suspend les effets de la reconnaissance de la nécessité de l'aide d'une tierce personne, dès le premier jour du troisième mois d'hospitalisation ou d'hébergement et jusqu'à la fin de ceux-ci, sauf si l'assurance obligatoire soins de santé et indemnités n'intervient pas dans le prix de la journée d'entretien ou n'octroie pas l'intervention visée à l'article 147, § 3.En cas de détention préventive ou de privation de liberté du titulaire, les effets de la reconnaissance de la nécessité de l'aide d'une tierce personne sont suspendus dès le premier jour de la détention préventive ou de la privation de liberté.Si le titulaire cesse d'être hospitalisé, hébergé dans une maison de repos ou de soins, une maison de soins psychiatriques ou une maison de repos pour personnes âgées, ou cesse de se trouver en situation de détention préventive ou de privation de liberté pendant une période comptant moins de trente jours, cette période est censée être la prolongation de la précédente.§ 2. Le montant journalier de l'allocation forfaitaire pour l'aide d'une tierce personne s'élève à 16,79468euros.§ 2/1. 8.§ 3. Le titulaire invalide qui, le 31 décembre 2006, pouvait prétendre aux indemnités comme titulaire avec charge de famille sur base de la reconnaissance de la nécessité de l'aide d'une tierce personne, maintient cette qualité pour la période pendant laquelle la nécessité de l'aide d'une tierce personne continue à être reconnue, si la différence entre le montant de son indemnité comme titulaire avec charge de famille et le montant de son indemnité comme titulaire sans charge de famille est supérieure au montant visé au paragraphe 2.§ 4.8",
    "§ 1er. Sauf dans le cas où il a été expressément convenu que les frais et charges imposés au preneur sont fixés forfaitairement, ils correspondent à des dépenses réelles.Ces frais et charges sont mentionnés dans un compte distinct.L'ensemble des documents établissant ces dépenses, reprenant les rubriques et les calculs détaillés formules, quotités sont produits.Dans le cas d'immeubles à appartements multiples, dont la gestion est assurée par une même personne, l'obligation est remplie dès lors que le bailleur fait parvenir au preneur un relevé des frais et charges, et que la possibilité est offerte à celui-ci ou à son mandataire spécial, de consulter les documents au domicile de la personne physique ou au siège de la personne morale qui assure la gestion.§ 2. Les dispositions contractuelles contraires au paragraphe 1er sont nulles.",
]
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]

Training Details

Training Dataset

LLeQA dataset

  • Size: 148,815 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 15 tokens
    • mean: 36.07 tokens
    • max: 90 tokens
    • min: 4 tokens
    • mean: 265.66 tokens
    • max: 8192 tokens
  • Samples:
    anchor positive
    query: Les frais de séjour et de représentation sont-ils accordés uniquement au président du conseil d'administration, ou peuvent-ils être accordés à d'autres membres du conseil? Le montant de l'indemnité accordée au président du conseil d'administration est fixé à 800 euros par mois.La participation aux séances du conseil d'administration donne droit à un jeton de présence d'un montant de :1° 350 euros pour les vice-présidents;2° 250 euros pour les autres membres et les commissaires du Gouvernement.En outre, le président du conseil d'administration bénéficie de frais de séjour et de représentation à concurrence de 1.950 euros par an.
    query: Quel est le but de la création du Conseil de recours mentionné dans l'article de loi? Il est créé un Conseil de recours contre les décisions de refus d'octroi du certificat du tronc commun selon les modalités établies par le Gouvernement.Le Conseil de recours peut remplacer la décision de refus d'octroi du certificat du tronc commun par une décision d'octroi du certificat du tronc commun.
    query: Quelles sont les notions de mesure d'assainissement et de procédure de liquidation qui sont utilisées dans le présent chapitre, et comment sont-elles définies? Ancien 297§ 1er. La FSMA peut demander aux autorités belges compétentes et aux autorités compétentes de l'Etat membre d'origine d'une entreprise d'assurances des informations sur le déroulement d'une mesure d'assainissement ou d'une procédure de liquidation.§ 2. Pour l'application du présent chapitre, les notions de mesure d'assainissement et de procédure de liquidation sont à comprendre au sens qui leur est donné dans la loi du 13 mars 2016.
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 192
    }
    

Evaluation Dataset

LLeQA Dataset

  • Size: 1,493 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 11 tokens
    • mean: 29.73 tokens
    • max: 74 tokens
    • min: 14 tokens
    • mean: 457.73 tokens
    • max: 8192 tokens
  • Samples:
    anchor positive
    query: Après combien de temps ma facture de gaz et d'électricité est-elle prescrite en Wallonie ? Les arrérages de rentes perpétuelles et viagères;Ceux des pensions alimentaires;Les créances de frais extraordinaires visés à l'article 203bis, § 3;Les loyers des maisons, et le prix de ferme des biens ruraux;Les intérêts des sommes prêtées, et généralement tout ce qui est payable par année, ou à des termes périodiques plus courts,Se prescrivent par cinq ans.Les créances pour la fourniture de biens et de services via des réseaux de distribution d'eau, de gaz ou d'électricité ou la fourniture de services de communications électroniques ou de services de radiotransmission ou de radio- et télédiffusion via des réseaux de communications électroniques se prescrivent par cinq ans.
    query: Je vis seul avec les enfants, ai-je droit à un supplément d'allocations familiales à Bruxelles ? L'allocation familiale de base visée à l'article 7, b, est majorée d'un supplément social aux conditions suivantes :1° lorsque les revenus annuels du ménage n'atteignent pas 31.000 euros, le supplément social s'élève :a dans une famille comptant un enfant bénéficiaire unique, à :- 40 euros pour un enfant de 0 à 11 ans ;- 50 euros pour un enfant de 12 à 24 ans ;b dans une famille comptant 2 enfants bénéficiaires, pour chaque enfant bénéficiaire, à :- 80 euros pour un enfant de 0 à 11 ans s'il est élevé dans une famille monoparentale ou 70 euros dans le cas contraire ;- 90 euros pour un enfant de 12 à 24 ans s'il est élevé dans une famille monoparentale ou 80 euros dans le cas contraire;c dans une famille comptant 3 enfants bénéficiaires et plus, pour chaque enfant bénéficiaire, à :- 130 euros pour un enfant de 0 à 11 ans s'il est élevé dans une famille monoparentale ou 110 euros dans le cas contraire ;- 140 euros pour un enfant de 12 à 24 ans, s'il est élevé dans une famille monoparenta...
    query: Je loue un kot d'étudiant. Quelles règles s'appliquent à mon bail en Wallonie ? Sauf si les parties ont convenu d'une durée inférieure, le bail étudiant est réputé conclu pour une durée d'un an.Il prend fin à l'expiration du terme convenu ou réputé moyennant un préavis d'un mois notifié par l'une ou l'autre partie. Au terme de la durée d'un an, si l'étudiant continue à occuper les lieux sans opposition du bailleur, le bail est prorogé pour une durée d'un an aux mêmes conditions, sans préjudice de l'indexation.Si le bail a été conclu pour une durée inférieure à un an, à défaut d'un congé notifié par l'une ou l'autre des parties et si l'étudiant continue à occuper les lieux sans opposition du bailleur, le bail est réputé avoir été conclu pour une période d'un an à compter de la date à laquelle le bail initial de moins d'un an est entré en vigueur. Dans ce cas, le loyer et les autres conditions demeurent inchangés par rapport à ceux convenus dans le bail initial.
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 192
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • overwrite_output_dir: True
  • eval_strategy: epoch
  • per_device_train_batch_size: 2048
  • per_device_eval_batch_size: 192
  • learning_rate: 0.00017
  • weight_decay: 0.01
  • num_train_epochs: 25
  • lr_scheduler_type: cosine_with_min_lr
  • lr_scheduler_kwargs: {'min_lr': 1e-09}
  • log_level: debug
  • save_only_model: True
  • bf16: True
  • dataloader_num_workers: 6
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: True
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 2048
  • per_device_eval_batch_size: 192
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 0.00017
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 25
  • max_steps: -1
  • lr_scheduler_type: cosine_with_min_lr
  • lr_scheduler_kwargs: {'min_lr': 1e-09}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: debug
  • 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: True
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: 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
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 6
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • tp_size: 0
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • 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
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • 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: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Framework Versions

  • Python: 3.11.8
  • Sentence Transformers: 4.1.0
  • Transformers: 4.51.3
  • PyTorch: 2.5.1
  • Accelerate: 1.5.2
  • Datasets: 3.5.0
  • Tokenizers: 0.21.0

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",
}

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
Downloads last month
4
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for E3LQA/lleqa_article_retriever

Finetuned
(34)
this model

Papers for E3LQA/lleqa_article_retriever

Evaluation results