Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use Shailu1492/mbert-large-mnrl-snli-max2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Shailu1492/mbert-large-mnrl-snli-max2")
sentences = [
"Schofield got Toepfer to admit on cross-examination that she ignored many of O'Donnell's suggestions and projects.",
"But under cross-examination by O'Donnell's attorney, Lorna Schofield, Toepfer conceded she had ignored many of O'Donnell's suggestions and projects.",
"The attack seemed similar to attacks staged near foreign compounds in Riyadh on May 12, for which officials have also blamed al-Qaida.",
"In seeking leniency, Waksal apologized to the court, his employees and his family."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model trained. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for retrieval.
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'ModernBertModel'})
(1): Pooling({'embedding_dimension': 1024, 'pooling_mode': 'mean', 'include_prompt': True})
)
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("Shailu1492/mbert-large-mnrl-snli-max2")
# Run inference
sentences = [
'A woman is peeling a potato.',
'A woman is slicing a tomato.',
'Kangaroo eating.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8786, 0.7560],
# [0.8786, 1.0000, 0.7468],
# [0.7560, 0.7468, 1.0000]])
stsb_validEmbeddingSimilarityEvaluator| Metric | Value |
|---|---|
| pearson_cosine | 0.9051 |
| spearman_cosine | 0.9143 |
sentence1, sentence2, and score| sentence1 | sentence2 | score | |
|---|---|---|---|
| type | string | string | float |
| modality | text | text | |
| details |
|
|
|
| sentence1 | sentence2 | score |
|---|---|---|
A plane is taking off. |
An air plane is taking off. |
1.0 |
A man is playing a large flute. |
A man is playing a flute. |
0.76 |
A man is spreading shreded cheese on a pizza. |
A man is spreading shredded cheese on an uncooked pizza. |
0.76 |
CoSENTLoss with these parameters:{
"scale": 40.0,
"similarity_fct": "pairwise_cos_sim"
}
per_device_train_batch_size: 256num_train_epochs: 2learning_rate: 2e-05lr_scheduler_type: reduce_lr_on_plateauwarmup_steps: 1250weight_decay: 0.01bf16: Truedataloader_drop_last: Trueskip_memory_metrics: Falsebatch_sampler: no_duplicatesper_device_train_batch_size: 256num_train_epochs: 2max_steps: -1learning_rate: 2e-05lr_scheduler_type: reduce_lr_on_plateaulr_scheduler_kwargs: Nonewarmup_steps: 1250optim: adamw_torch_fusedoptim_args: Noneweight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Truefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 8prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Truedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: Nonefsdp_config: Nonedeepspeed: Nonedebug: []skip_memory_metrics: Falsedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | stsb_valid_spearman_cosine |
|---|---|---|
| 2.0 | 16 | 0.9071 |
| 2.0 | 44 | 0.9143 |
@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",
}
@article{10531646,
author={Huang, Xiang and Peng, Hao and Zou, Dongcheng and Liu, Zhiwei and Li, Jianxin and Liu, Kay and Wu, Jia and Su, Jianlin and Yu, Philip S.},
journal={IEEE/ACM Transactions on Audio, Speech, and Language Processing},
title={CoSENT: Consistent Sentence Embedding via Similarity Ranking},
year={2024},
doi={10.1109/TASLP.2024.3402087}
}