Matryoshka Representation Learning
Paper • 2205.13147 • Published • 28
How to use JTh34/puppy-embed-8985966a with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("JTh34/puppy-embed-8985966a")
sentences = [
"How can I determine the right energy level for my new puppy based on my lifestyle?",
"When choosing a breeder, keep in mind that some are better than others. How can you tell? For starters, good breeders will have as many questions for you as you do for them and will insist that you sign a contract that includes health and behavior guarantees. This document also insists that you return the puppy to the breeder should anything happen that causes you to rehome them. (To learn more about what qualifies a good breeder, flip to Chapter 4 and find a list of their qualities.)\n\nWhat are some other differences between a purebred and a mixed breed? Purebred dogs cost more — between $600 and $6,000. (The high end of that range is rare, but some championship show dogs and unique designer-mixed-breed dogs can fetch this price).\n\nMixed-breed dogs, also known as random breeds or mutts, are created when pure- bred dogs (or other mutts) mate with another breed or mixed-breed dog. This dog will have a random mix of traits from two or more parents. No two mutts are ever alike in look or personality.\n\nJust as capable of love and devotion as purebreds, mixed-breed puppies often happen by accident when people don’t spay or neuter their dogs and then forget to contain or watch their dogs. Because this often happens in parts of the world where leash laws and spay-and-neuter ordinances aren’t reinforced, many of these “oops” litters are uploaded to sites like petfinder.com or adoptapet.com or transported to shelters or adoption agencies where there’s a bigger need for pre- cious “adoptables.” The bottom line? A mixed-breed dog is every bit as delightful as a purebred dog and is, some argue, healthier mentally and physically by virtue of hybrid vigor.",
"With all the chaos and comings and goings of a family with children, I caution you against protective, or guarding, breeds, especially if your home is the hub of a lot of activity. These breeds may suffer from career stress when trying to keep track of all the activity in your home, and they may subsequently lash out at the unsus- pecting children. Unless you can dedicate your family to a consistent and exten- sive training program, stick to rough-and-tumble, ready-for-play breed or mixed-breed types who accept everyone as long-lost friends. If you end up choos- ing a breed who is home proud and stranger wary, spend loads of time socializing and training them how to act at the entranceway, to ensure that your next decade isn’t spent running interference.\n\nIs your house a zoo? Do you run the risk of creating a dog pack in your living space? Sharing your life with many animals can mean a harmonious existence — or a complete nightmare. How you plan and introduce and treat each pet are the dominant factors here.",
"» Question 8: The amount of exercise you’re able to give your new pooch should be a key factor in choosing a dog breed. If you’re honest here, this question helps you discover what energy level you can match. Even though an active breed may sound dreamy, if you can’t consistently provide plenty of exercise for the next decade, cross it off your list. A high-energy dog who is pent-up, isolated, or underexercised can become destructive, clingy, and impulsive. These behaviors will no doubt be frustrating for your family, so be sure you can provide what your dog needs.\n\n» Questions 9 through 12: How involved in your life would you like your dog to be? If socializing is high on your priority list, choose a breed that was bred to take direction and follow humans around instead of a breed that was bred to guard, hunt, or protect your home. Although any dog will enjoy being near you 24/7, breeds that were designed to work independently of man are more mentally equipped to handle periods of isolation."
]
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("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