Matryoshka Representation Learning
Paper
•
2205.13147
•
Published
•
25
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("JTh34/puppy-embed-8985966a")
# Run inference
sentences = [
'How can I ensure my puppy feels safe around my young child to prevent defensive biting?',
'Until the ages of 5 to 7, children have trouble grasping others’ feelings — whether the others are people or pets. Though a tight squeeze may signal love from your 3-year-old to you, it can instill panic or frighten a young pup. A squeezed puppy may feel trapped and bite defensively, even if under normal circumstances they wouldn’t react this way. This puppy can mature into a dog with an innate fear of young children or into a dog who’s immediately tense in their company.\n\nIf you have a needy toddler, postpone getting a puppy for at least a couple of years. Your child needs all your attention to develop a strong sense of self. A puppy will pull you away from your parental duties and rival the toddler for your attention. This situation is almost guaranteed to cause some headaches. Introduce the puppy after your child is more emotionally steady and is also excited and ready for the addition.\n\nIf you’re convinced this is the right time to add a puppy to your family, consider the option of an older puppy who has been well socialized to children during their first few months. Find a 6- to 10-month-old puppy who has been given up for reasons such as a move or human allergies to the puppy. After they’re past the intense nipping phase, puppies are less likely to think of the kids as littermates, also known as siblings. As a bonus, an older puppy has better bladder control and may already be completely house-trained.\n\nAre you ready to take the plunge? Flip to Chapter 8 for tips on raising kids and puppies together.',
'To avoid arguments, discuss ahead of time how you’ll raise this puppy and which rules make the most sense for your lifestyle and future situation. Have a heartfelt talk with your partner — ideally, before bringing your puppy home. Be sure to discuss the following topics:\n\n» What are your separate visions and hopes for adding a dog to your life? » Where will the puppy sleep? » How will you share responsibilities, from feeding and walking to exercise and\n\n» What are your feeding philosophies, from kibbles in the bowl to handouts\n\n» How much money will you apportion to training, grooming, and maintaining\n\nYour puppy will live and love most serenely in a household where you can both agree.\n\nIf you and your partner are retired empty nesters, now may be a terrific time to get a puppy, because you’re probably home more often and have time to be attentive to your puppy’s schedule. However, remember that a young puppy’s needs can be quite demanding. If you already completed the 4 a.m. diaper-changing routine and you’d rather skip these experiences than relive them, consider an older puppy who has been in a supportive environment or one whom the breeder is willing to socialize and train for you. Also, pay close attention to the exercise requirements when choosing a puppy. You need to ensure that you and your soon-to-be-adult dog are a solid match.\n\nIf you’re getting a puppy to raise with your young child, you may suddenly feel like you have twins (except that one is slightly furrier than the other). Raising a puppy with children younger than the age of 5 is a tremendous undertaking, and it’s one that often creates more stress than it’s worth.',
]
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.7273 |
| cosine_accuracy@3 | 0.8636 |
| cosine_accuracy@5 | 0.9545 |
| cosine_accuracy@10 | 1.0 |
| cosine_precision@1 | 0.7273 |
| cosine_precision@3 | 0.2879 |
| cosine_precision@5 | 0.1909 |
| cosine_precision@10 | 0.1 |
| cosine_recall@1 | 0.7273 |
| cosine_recall@3 | 0.8636 |
| cosine_recall@5 | 0.9545 |
| cosine_recall@10 | 1.0 |
| cosine_ndcg@10 | 0.8667 |
| cosine_mrr@10 | 0.8235 |
| cosine_map@100 | 0.8235 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What are the best practices for training my puppy effectively? |
Copyright © 2019 by John Wiley & Sons, Inc., Hoboken, New Jersey |
How can I ensure that I am following copyright guidelines when using puppy care resources? |
Copyright © 2019 by John Wiley & Sons, Inc., Hoboken, New Jersey |
What should I do if I need professional assistance with my puppy's training or care? |
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORG... |
MatryoshkaLoss with these parameters:{
"loss": "MultipleNegativesRankingLoss",
"matryoshka_dims": [
1024,
512,
256,
128,
64
],
"matryoshka_weights": [
1,
1,
1,
1,
1
],
"n_dims_per_step": -1
}
eval_strategy: stepsper_device_train_batch_size: 2per_device_eval_batch_size: 2num_train_epochs: 5multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 2per_device_eval_batch_size: 2per_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: 5max_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}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: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | cosine_ndcg@10 |
|---|---|---|
| 0.9434 | 50 | 0.7752 |
| 1.0 | 53 | 0.7752 |
| 1.8868 | 100 | 0.7808 |
| 2.0 | 106 | 0.8193 |
| 2.8302 | 150 | 0.8439 |
| 3.0 | 159 | 0.8439 |
| 3.7736 | 200 | 0.8607 |
| 4.0 | 212 | 0.8667 |
| 4.7170 | 250 | 0.8667 |
| 5.0 | 265 | 0.8667 |
@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