Matryoshka Representation Learning
Paper • 2205.13147 • Published • 26
How to use Gonalb/flucold-ft-v0 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Gonalb/flucold-ft-v0")
sentences = [
"QUESTION #1: What are the potential adverse effects associated with the use of peramivir?",
"although poultry-to-human and human-to-human trans -\nmission remains relatively low. Despite low transmissibility, \nthe reported fatality rate is high (approximately 60%).14\nPrevention\nThe Centers for Disease Control and Prevention’s (CDC’s) \nAdvisory Committee on Immunization Practices (ACIP) \nand the American Academy of Family Physicians (AAFP) \nrecommend annual influenza vaccination for all people six \nmonths and older who do not have contraindications. 15,16 \nVaccination efforts should target people at increased risk of \ncomplicated or severe influenza (Table 117-19) and those who \ncare for or live with high-risk individuals, including health \ncare professionals. 15 Two previous FPM articles provided",
"increased sensitivity to pain.60 These cytokines are also\nassociated with URTIs and may mediate mood changes\nassociated with these infections.\nAnorexia\nAnorexia is a common behavioural response to URTIs,\nand this response has entered the folklore as advice to\nFigure 4: Fever is caused by cytokines released from macrophages and other\nimmune cells\nThe cytokines may act on vagal nerve endings or enter the brain to cause a\nresetting of the temperature control centre in the hypothalamus. The\nhypothalamus causes shivering and constriction of skin blood vessels and also\ninitiates a sensation of chilliness that is perceived at the level of the cerebral\ncortex. IL=interleukin; TNF=tumour necrosis factor.\nVagal\nnerves\nShiveringMacrophages",
"older who have been \nsymptomatic for no \nmore than 48 hours\nContraindicated in people \nwith serious hypersensitivity or \nanaphylaxis to peramivir or any \ncomponent of the product\nPotential adverse effects include \ndiarrhea, nausea, vomiting, and \nneutropenia\nWeigh risks and benefits during \npregnancy; no human data \navailable; no known risk of \nembryo-fetal toxicity based on \nanimal data at 8 times the recom -\nmended human dose; possible \nrisk of embryo-fetal toxicity with \ncontinuous intravenous infusion \nbased on limited animal data\nBaloxavir (Xofluza), \navailable as oral \ntablets\nNA ($160) Adults and children 12 years \nand older: \n88 to 174 lb (40 to 79 kg): \nsingle dose of 40 mg \n≥ 175 lb (80 kg): single dose \nof 80 mg"
]
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-l. 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}) with Transformer model: BertModel
(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("Gonalb/flucold-ft-v0")
# Run inference
sentences = [
'QUESTION #1: How might changes in posture from sitting to supine affect sinus pain according to the context?',
'gas absorption from the sinus and “vacuum maxillary\nsinusitis”.37 However, sinuses with patent ostia may also\nbe painful, indicating that the generation of\ninflammatory mediators within the sinus may be\nsufficient to trigger the sensation of pain either by direct\nstimulation of pain nerve fibres or via distension of blood\nvessels that are also served by sensory nerves.36 Changes\nin posture from sitting to supine cause an increase in\nsinus pain that may be related to dilation of the blood\nvessels draining the sinus caused by an increase in\nvenous pressure. Pressure changes in the sinus may also\ncause pain by stimulation of branches of the trigeminal\nnerve that course in and around the sinuses.37\nWatery eyes',
'American Indians and Alaska Natives\nChildren younger than 5 years (particularly those younger \nthan 2 years)\nInstitutionalized adults (e.g., residents of nursing homes or \nchronic care facilities)\nPregnant and postpartum women (up to 2 weeks postpartum, \nincluding pregnancy loss)\nAdapted with permission from Erlikh IV, Abraham S, Kondamudi VK. \nManagement of influenza. Am Fam Physician. 2010; 82(9): 1088, with \nadditional information from references 18 and 19.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.75 |
| cosine_accuracy@3 | 0.9167 |
| cosine_accuracy@5 | 1.0 |
| cosine_accuracy@10 | 1.0 |
| cosine_precision@1 | 0.75 |
| cosine_precision@3 | 0.3056 |
| cosine_precision@5 | 0.2 |
| cosine_precision@10 | 0.1 |
| cosine_recall@1 | 0.75 |
| cosine_recall@3 | 0.9167 |
| cosine_recall@5 | 1.0 |
| cosine_recall@10 | 1.0 |
| cosine_ndcg@10 | 0.8865 |
| cosine_mrr@10 | 0.8486 |
| cosine_map@100 | 0.8486 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
QUESTION #1: What is the source website from which the document was downloaded? |
Downloaded from the American Family Physician website at www.aafp.org/afp. Copyright © 2019 American Academy of Family Physicians. For the private, noncom - |
QUESTION #2: Who should be contacted for copyright questions and/or permission requests regarding the document? |
Downloaded from the American Family Physician website at www.aafp.org/afp. Copyright © 2019 American Academy of Family Physicians. For the private, noncom - |
QUESTION #1: Why is early diagnosis essential for antiviral therapy and public-health measures in the community? |
syndrome (SARS) 3 because early diagnosis is essential |
MatryoshkaLoss with these parameters:{
"loss": "MultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128,
64
],
"matryoshka_weights": [
1,
1,
1,
1,
1
],
"n_dims_per_step": -1
}
eval_strategy: stepsper_device_train_batch_size: 10per_device_eval_batch_size: 10num_train_epochs: 10multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 10per_device_eval_batch_size: 10per_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: 10max_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: Falseuse_ipex: Falsebf16: Falsefp16: 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: 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}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: Nonedispatch_batches: Nonesplit_batches: 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: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | cosine_ndcg@10 |
|---|---|---|
| 1.0 | 34 | 0.9108 |
| 1.4706 | 50 | 0.9098 |
| 2.0 | 68 | 0.8834 |
| 2.9412 | 100 | 0.9051 |
| 3.0 | 102 | 0.9066 |
| 4.0 | 136 | 0.9205 |
| 4.4118 | 150 | 0.9019 |
| 5.0 | 170 | 0.9156 |
| 5.8824 | 200 | 0.9247 |
| 6.0 | 204 | 0.9238 |
| 7.0 | 238 | 0.9019 |
| 7.3529 | 250 | 0.8856 |
| 8.0 | 272 | 0.8856 |
| 8.8235 | 300 | 0.8879 |
| 9.0 | 306 | 0.8879 |
| 10.0 | 340 | 0.8865 |
@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{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}
}
@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}
}
Base model
Snowflake/snowflake-arctic-embed-l