Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup
Paper • 2101.06983 • Published • 2
How to use E3LQA/lleqa_article_retriever with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("E3LQA/lleqa_article_retriever", trust_remote_code=True)
sentences = [
"query: Je suis travailleuse salariée. Quelles démarches dois-je faire auprès de la mutuelle avant la naissance de mon enfant ?",
"Le trajet de réintégration visant la réinsertion socioprofessionnelle au sens de cette section a pour objectif, dans le cadre du \" Trajet Retour Au Travail \", de favoriser la réintégration socioprofessionnelle du titulaire qui n'est plus ou ne peut plus être employé par son employeur en l'accompagnant vers une fonction auprès d'un autre employeur ou dans une autre branche d'activité.",
"Le Roi peut fixer le montant minimum des cotisations personnelles visées aux articles 116/1, § 1er, 116/3, 121, 123, 128, § 1er, et 130, et les conditions dans lesquelles elles peuvent être réduites ou supprimées.",
"Le bail d'un appartement meublé est censé fait à l'année, quand il a été fait à tant par an ;Au mois, s'il a été fait à tant par mois;Au jour, s'il a été fait à tant par jour.."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]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.
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()
)
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]
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| 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. |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 192
}
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| 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. |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 192
}
overwrite_output_dir: Trueeval_strategy: epochper_device_train_batch_size: 2048per_device_eval_batch_size: 192learning_rate: 0.00017weight_decay: 0.01num_train_epochs: 25lr_scheduler_type: cosine_with_min_lrlr_scheduler_kwargs: {'min_lr': 1e-09}log_level: debugsave_only_model: Truebf16: Truedataloader_num_workers: 6load_best_model_at_end: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Truedo_predict: Falseeval_strategy: epochprediction_loss_only: Trueper_device_train_batch_size: 2048per_device_eval_batch_size: 192per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 0.00017weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 25max_steps: -1lr_scheduler_type: cosine_with_min_lrlr_scheduler_kwargs: {'min_lr': 1e-09}warmup_ratio: 0.0warmup_steps: 0log_level: debuglog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Truerestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Truefp16: 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: 6dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Trueignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}tp_size: 0fsdp_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}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_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: Falsegradient_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: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional@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{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}
}
Base model
Snowflake/snowflake-arctic-embed-m-v2.0