Matryoshka Representation Learning
Paper • 2205.13147 • Published • 27
How to use deepali1021/finetuned_arctic_ft with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("deepali1021/finetuned_arctic_ft")
sentences = [
"What initiatives were implemented in the past year to improve communication between departments?",
"with other departments. In the past year, we conducted monthly departmental meetings and \nestablished communication channels to facilitate information sharing and problem-solving. \n \nFare Collection and Fee Structure",
"Our fare collection system ensures fair and consistent fee collection from passengers. The current fee \nstructure is as follows: \n \nRegular fare: $2.50 \nSenior citizens and students: $1.50 \nChildren under 5 years old: Free \nFee collection is primarily done through electronic payment methods, such as smart cards and \nmobile payment apps. Drivers are responsible for ensuring correct fare collection and providing \nreceipts upon request. \nRoute Information and Rules \nOur transportation department operates multiple routes within the city. Route information, including \nmaps, schedules, and stops, is available on our website and at designated information centers.",
"Our drivers are responsible for operating vehicles safely, following traffic rules and regulations. They \nare required to hold a valid driver's license and maintain a clean driving record. In the past year, our \ndrivers completed over 2,000 hours of driving training to enhance their skills and knowledge. \n \nRoute Planning and Optimization \nEfficient route planning is essential for timely transportation services. Our department utilizes \nadvanced routing software to optimize routes and minimize travel time. In the past year, we reduced \nour average route duration by 15% through effective route planning and optimization strategies. \n \nCustomer Service"
]
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("deepali1021/finetuned_arctic_ft")
# Run inference
sentences = [
'Who should you contact if you have questions or need further information regarding the Transportation Department Policy Manual?',
"for familiarizing themselves with the latest version of the manual. \n \nConclusion \nThank you for reviewing the Transportation Department Policy Manual. Your commitment to safety, \ncustomer service, and compliance plays a crucial role in our department's success. If you have any \nquestions or need further information, please reach out to your supervisor or the department \nmanager. Your dedication and professionalism are appreciated.",
'Transportation Department Policy Manual \n \nTable of Contents: \n \n• \nIntroduction \n• \nDepartment Overview \n• \nSafety and Vehicle Maintenance \n• \nDriver Responsibilities \n• \nRoute Planning and Optimization \n• \nCustomer Service \n• \nIncident Reporting and Investigation \n• \nCompliance with Regulations \n• \nTraining and Development \n• \nCommunication and Collaboration \n• \nFare Collection and Fee Structure \n• \nRoute Information and Rules \n• \nAmendments to the Policy Manual \n• \nConclusion \nIntroduction \nWelcome to the Transportation Department Policy Manual! This manual serves as a comprehensive \nguide to the policies, procedures, and expectations for employees working in the transportation',
]
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 | 1.0 |
| cosine_accuracy@10 | 1.0 |
| cosine_precision@1 | 0.9375 |
| cosine_precision@3 | 0.3264 |
| cosine_precision@5 | 0.2 |
| cosine_precision@10 | 0.1 |
| cosine_recall@1 | 0.9375 |
| cosine_recall@3 | 0.9792 |
| cosine_recall@5 | 1.0 |
| cosine_recall@10 | 1.0 |
| cosine_ndcg@10 | 0.9718 |
| cosine_mrr@10 | 0.9625 |
| cosine_map@100 | 0.9625 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What topics are covered in the Transportation Department Policy Manual? |
Transportation Department Policy Manual |
What is the purpose of the Transportation Department Policy Manual? |
Transportation Department Policy Manual |
What is the primary focus of the Transportation Department as outlined in the manual? |
department. It provides guidelines to ensure safe, efficient, and customer-focused transportation |
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 | cosine_ndcg@10 |
|---|---|---|
| 1.0 | 2 | 0.8107 |
| 2.0 | 4 | 0.9292 |
| 3.0 | 6 | 0.9623 |
| 4.0 | 8 | 0.9712 |
| 5.0 | 10 | 0.9642 |
| 6.0 | 12 | 0.9642 |
| 7.0 | 14 | 0.9642 |
| 8.0 | 16 | 0.9642 |
| 9.0 | 18 | 0.9718 |
| 10.0 | 20 | 0.9718 |
@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