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("ngiometti/legal-ft-3")
# Run inference
sentences = [
'What is the primary focus of Fluence as a continuing education organization?',
'Name":"Fluence","Specter - Company ID":"621f973f972ef7e5d69c8085","Domain":"fluencetraining.com","LinkedIn - URL":"linkedin.com/company/fluencetraining","Description":"Fluence is a leading continuing education organization in psychedelic therapy.","Company Size":"11-50","Industries":["Education","HR and Recruiting","Health","Software"],"Title":"Advisor","Departments":["Other"],"Start Date":"2023-07-01","End Date":null,"Location":"New York City, New York, United States, United States","Is Current":true,"Job Order":17},{"Company Name":"VentureKit","Specter - Company ID":null,"Domain":"venturekit.com","LinkedIn - URL":"linkedin.com/company/venturekit","Description":"VentureKit publishes free guides to help entrepreneurs get things',
'Education Level: Bachelor\'s Degree\nCurrent Position Title: CTO, Head of Research\nCurrent Position Company Name: Mursion\nCurrent Position Company Website: mursion.com\nPast Position Title: CEO and Co-founder\nPast Position Company Name: DNABLOCK\nPast Position Company Website: dnablock.com\nCurrent Tenure: 85.0\nAverage Tenure: 34.0\nLanguages: [{"Name":"Spanish","Proficiency Level":"Limited Working Proficiency"},{"Name":"Arabic","Proficiency Level":"Limited Working Proficiency"}]\nLinkedIn - Followers: 5022.0\nLinkedIn - Connections: 2997.0',
]
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.7917 |
| cosine_accuracy@3 | 0.9667 |
| cosine_accuracy@5 | 0.975 |
| cosine_accuracy@10 | 0.9833 |
| cosine_precision@1 | 0.7917 |
| cosine_precision@3 | 0.3222 |
| cosine_precision@5 | 0.195 |
| cosine_precision@10 | 0.0983 |
| cosine_recall@1 | 0.7917 |
| cosine_recall@3 | 0.9667 |
| cosine_recall@5 | 0.975 |
| cosine_recall@10 | 0.9833 |
| cosine_ndcg@10 | 0.9019 |
| cosine_mrr@10 | 0.8741 |
| cosine_map@100 | 0.8749 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What types of products has the individual built experience in, according to the context? |
experience in building world class hardware and software products for consumer electronics, aerospace and enterprise software solutions. Proven track record of building big-data cloud computing software and analytic software platform with AI, Computer Vision and Machine Learning. Progressive, innovative and highly valued for aligning corporate strategies with market opportunities, translating goals into actionable plans, and providing leadership to multi-discipline, cross cultural teams. |
How does the individual align corporate strategies with market opportunities? |
experience in building world class hardware and software products for consumer electronics, aerospace and enterprise software solutions. Proven track record of building big-data cloud computing software and analytic software platform with AI, Computer Vision and Machine Learning. Progressive, innovative and highly valued for aligning corporate strategies with market opportunities, translating goals into actionable plans, and providing leadership to multi-discipline, cross cultural teams. |
What is the company size of Diamanti? |
- Company ID":"5e3a8f19040ca7b0c6f031bf","Domain":"diamanti.com","LinkedIn - URL":"linkedin.com/company/diamanti","Description":null,"Company Size":"51-200","Industries":["Consumer Products","Hardware","Information Technology","Internet Services","Software"],"Title":"Chief Operating Officer","Departments":["Senior Leadership","Operations"],"Start Date":"2018-11-01","End Date":"2021-07-01","Location":"San Jose, California, United States, United States","Is Current":false,"Job Order":4},{"Company Name":"Planet","Specter - Company ID":"5e3bc13c00c8f4c966a7da4c","Domain":"planet.com","LinkedIn - URL":"linkedin.com/company/planet-labs","Description":"Planet operates the world's largest fleet of Earth imaging satellites to daily image the entire |
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 | Training Loss | cosine_ndcg@10 |
|---|---|---|---|
| 0.6329 | 50 | - | 0.8917 |
| 1.0 | 79 | - | 0.9080 |
| 1.2658 | 100 | - | 0.9265 |
| 1.8987 | 150 | - | 0.9091 |
| 2.0 | 158 | - | 0.9100 |
| 2.5316 | 200 | - | 0.9214 |
| 3.0 | 237 | - | 0.9110 |
| 3.1646 | 250 | - | 0.9161 |
| 3.7975 | 300 | - | 0.9108 |
| 4.0 | 316 | - | 0.9145 |
| 4.4304 | 350 | - | 0.8955 |
| 5.0 | 395 | - | 0.9019 |
| 5.0633 | 400 | - | 0.9008 |
| 5.6962 | 450 | - | 0.8980 |
| 6.0 | 474 | - | 0.9036 |
| 6.3291 | 500 | 0.7603 | 0.9021 |
| 6.9620 | 550 | - | 0.8977 |
| 7.0 | 553 | - | 0.8976 |
| 7.5949 | 600 | - | 0.9059 |
| 8.0 | 632 | - | 0.9005 |
| 8.2278 | 650 | - | 0.9039 |
| 8.8608 | 700 | - | 0.9050 |
| 9.0 | 711 | - | 0.9052 |
| 9.4937 | 750 | - | 0.9021 |
| 10.0 | 790 | - | 0.9019 |
@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