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("chelleboyer/legal-ft-6c2775cc-995a-41a8-b19f-aadf6fe29c2a")
# Run inference
sentences = [
'What types of animals can be seen near the Wildlife Loop Road at Custer State Park?',
"Bison, prairie dogs, elk and other creatures roam near (and often cross!) the Wildlife Loop Road at Custer State Park, about 45 miles southwest of Rapid City. But animals are just the beginning here. Scenic Needles Highway winds through the park, hiking trails beg for exploration, and even rookie campers will feel at home at the park's Blue Bell campground.\n\nA Two-Day Black Hills Getaway\n\n\n \n07\nof 25\n\n\n Chicago \n \n\n\n\n\n\n \n John Noltner",
'Family Travel\n \n\n Road Rally\n \n\n View All\n \n\n\n\n\n\nDestinations\n\n\n\n\n\n\n\n\n\n\n\nDestinations\n\n\n\n Illinois\n \n\n Indiana\n \n\n Iowa\n \n\n Kansas\n \n\n Michigan\n \n\n Minnesota\n \n\n Missouri\n \n\n Nebraska\n \n\n North Dakota\n \n\n Ohio\n \n\n South Dakota\n \n\n Wisconsin\n \n\n View All\n \n\n\n\n\n\nHome + Garden\n\n\n\n\n\n\n\n\n\n\n\nHome + Garden\n\n\n\n Home\n \n\n Garden\n \n\n\n\n\n\nRecipes\n\n\n\n\n\n\n\n\n\n\n\nRecipes\n\n\n\n Dinner Ideas\n \n\n Breakfast and Brunch\n \n\n Salads and Sides\n \n\n Desserts\n \n\n Holidays\n \n\n View All\n \n\n\n\n\n Voices\n \n\n Current Issue\n \n\n About Us\n \n\n Subscribe\n \n\n\n\n\n \n\n\n\nLog In\n\n \n\n\n\n\n\nMy Account\n\n\n\n\n\n\n\n\n\n\n\nMy Account\n\n\n\n Log Out\n \n\n\n\n\n\nMagazine\n\n\n\n\n\n\n\n\n\n\n\nMagazine\n\n\n\n Subscribe\n \n\n Current Issue\n \n\n Give a Gift Subscription\n \n\n Manage Your Subscription\n \n\n\n\nNewsletters\n\n\n Sweepstakes',
]
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.9375 |
| cosine_accuracy@3 | 0.9792 |
| cosine_accuracy@5 | 0.9792 |
| cosine_accuracy@10 | 1.0 |
| cosine_precision@1 | 0.9375 |
| cosine_precision@3 | 0.3264 |
| cosine_precision@5 | 0.1958 |
| cosine_precision@10 | 0.1 |
| cosine_recall@1 | 0.9375 |
| cosine_recall@3 | 0.9792 |
| cosine_recall@5 | 0.9792 |
| cosine_recall@10 | 1.0 |
| cosine_ndcg@10 | 0.9653 |
| cosine_mrr@10 | 0.9544 |
| cosine_map@100 | 0.9544 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What types of trip ideas are featured in the "25 Perfect Weekend Getaways" from Midwest Living? |
25 Perfect Weekend Getaways |
Which categories of travel does Midwest Living suggest for planning weekend getaways? |
25 Perfect Weekend Getaways |
Which states are listed under the Destinations section in the context provided? |
Family Travel |
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}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 |
|---|---|---|
| 1.0 | 3 | 0.8195 |
| 2.0 | 6 | 0.9557 |
| 3.0 | 9 | 0.9638 |
| 4.0 | 12 | 0.9638 |
| 5.0 | 15 | 0.9638 |
| 6.0 | 18 | 0.9638 |
| 7.0 | 21 | 0.9653 |
| 8.0 | 24 | 0.9653 |
| 9.0 | 27 | 0.9653 |
| 10.0 | 30 | 0.9653 |
@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