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-colab-d23f57a4")
# Run inference
sentences = [
'What should I do if I notice signs of an ear infection in my puppy?',
'Don’t use cotton swabs or poke into your puppy’s ear canal. You can cause irreparable damage by doing so.\n\n» Prevent water from entering the ear. If you’re bathing your pup, put a cotton ball in the opening ahead of time and wipe the ears out with a dry cotton ball when you’re finished.\n\nEar infections are quite common. Signs of infection include a red or swollen ear, discharge, head shaking, ear itching, or bad odor. If you notice any of these symp- toms, get your puppy to their doctor immediately. Left untreated, infections can cause fever, depression, irritability, and loss of balance. Your veterinarian may prescribe an ointment that you administer at home. Here’s how to use it:\n\n1. Wait until your dog’s a little sleepy. 2. Bring them to the refrigerator and swipe some peanut butter or broth at their eye level.\n\n3. As they’re licking the refrigerator, gently squeeze into their ear canal the amount of ointment specified by your veterinarian.\n\nYou don’t have to know much about the nose, though it is helpful for tipping you off to the fact that your puppy’s not feeling well. A warm nose can be caused by elevated temperature. (See the nearby sidebar, “Taking your puppy’s tempera- ture.”) However, weather conditions also can lead to dryness or fluctuation in body temperature. If you suspect that your puppy has a fever, touch their other body areas without fur (belly, paws, or the inside of their ears) or take their tem- perature. Did I mention that you have to do it rectally? What fun!',
'More than 320 breeds are now registered worldwide. These days, being a purebred dog is like belonging to an exclusive club: Only dogs with similar looks and inter- ests get in. Although most breeds are no longer asked to do the work they were developed for, fanciers continually devote themselves to breeding and selling puppies that reflect their traditions.\n\nChoosing a specific breed enables you to predict the size, weight, and interest of your puppy. Selecting a one-of-a-kind mixed-breed puppy, and predicting or discovering the various breeds that combine to create them, allows you to make accurate descriptions about their interests and energy level as an adult dog.\n\nWhen researching a breed, mixed-breed, or designer-mixed-breed, try to meet at least three adult dogs of the same breed or mix-breeds. All puppies are cute and adorable, but they grow up in the blink of an eye, so make sure you like the look and personality of the dog your puppy will become.\n\nWhether you’re considering a purebred, mixed-breed, or designer-mixed-breed, take a good, hard look at your lifestyle now and project out five to ten years. How might a certain breed’s or mixed breed’s interests and energy level play out in your home?',
]
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.6667 |
| cosine_accuracy@3 | 0.8533 |
| cosine_accuracy@5 | 0.9267 |
| cosine_accuracy@10 | 0.96 |
| cosine_precision@1 | 0.6667 |
| cosine_precision@3 | 0.2844 |
| cosine_precision@5 | 0.1853 |
| cosine_precision@10 | 0.096 |
| cosine_recall@1 | 0.6667 |
| cosine_recall@3 | 0.8533 |
| cosine_recall@5 | 0.9267 |
| cosine_recall@10 | 0.96 |
| cosine_ndcg@10 | 0.8202 |
| cosine_mrr@10 | 0.7746 |
| cosine_map@100 | 0.7766 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What techniques can I apply to train my puppy to stay calm and still when I approach, similar to how llamas are trained? |
are each a process, defined by results. Negative reinforcers can be used effectively to train behavior, and even though aversive stimuli are involved, the process can be relatively benign. Here (with thanks to llama expert Jim Logan) is a nice use of the negative reinforcer with a semidomestic animal, the llama, kept in the United States as pets and elsewhere as pack animals and for their wool. |
What are the best ways to socialize my hound puppy with household pets to avoid any chasing instincts? |
When these puppies are exercised, directed, and included, no group is more happy-go-lucky and accepting of life’s random chaos. But when they don’t get enough playtime or training, they can be hyperactive and destructive. |
What are the top five dog breeds recommended for first-time owners, and what makes them suitable for beginners? |
Now don’t get me wrong, I’m not trying to put you off. I love dogs, and I think everyone can benefit from having one in their life. If you’re still unsure which breed is right for you, let me suggest a few that I think make brilliant first dogs. |
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: 16per_device_eval_batch_size: 16num_train_epochs: 5multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_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}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: 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.5682 | 25 | 0.7986 |
| 1.0 | 44 | 0.8182 |
| 1.1364 | 50 | 0.8224 |
| 1.7045 | 75 | 0.8181 |
| 2.0 | 88 | 0.8224 |
| 2.2727 | 100 | 0.8205 |
| 2.8409 | 125 | 0.8221 |
| 3.0 | 132 | 0.8235 |
| 3.4091 | 150 | 0.8205 |
| 3.9773 | 175 | 0.8178 |
| 4.0 | 176 | 0.8184 |
| 4.5455 | 200 | 0.8204 |
| 5.0 | 220 | 0.8202 |
@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