Edit model card

SentenceTransformer based on intfloat/multilingual-e5-small

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-small. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: intfloat/multilingual-e5-small
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, '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()
)

Usage

Direct Usage (Sentence Transformers)

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("srikarvar/multilingual-e5-small-pairclass-3")
# Run inference
sentences = [
    'What is the melting point of ice at sea level?',
    'What is the boiling point of water at sea level?',
    'Can you recommend a good restaurant nearby?',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Binary Classification

Metric Value
cosine_accuracy 0.6337
cosine_accuracy_threshold 0.9371
cosine_f1 0.6735
cosine_f1_threshold 0.9089
cosine_precision 0.5355
cosine_recall 0.9074
cosine_ap 0.6319
dot_accuracy 0.6337
dot_accuracy_threshold 0.9371
dot_f1 0.6735
dot_f1_threshold 0.9089
dot_precision 0.5355
dot_recall 0.9074
dot_ap 0.6319
manhattan_accuracy 0.6379
manhattan_accuracy_threshold 5.582
manhattan_f1 0.6713
manhattan_f1_threshold 6.5328
manhattan_precision 0.5359
manhattan_recall 0.8981
manhattan_ap 0.6426
euclidean_accuracy 0.6337
euclidean_accuracy_threshold 0.3547
euclidean_f1 0.6735
euclidean_f1_threshold 0.4269
euclidean_precision 0.5355
euclidean_recall 0.9074
euclidean_ap 0.6319
max_accuracy 0.6379
max_accuracy_threshold 5.582
max_f1 0.6735
max_f1_threshold 6.5328
max_precision 0.5359
max_recall 0.9074
max_ap 0.6426

Binary Classification

Metric Value
cosine_accuracy 0.9424
cosine_accuracy_threshold 0.7851
cosine_f1 0.9364
cosine_f1_threshold 0.7851
cosine_precision 0.9196
cosine_recall 0.9537
cosine_ap 0.9629
dot_accuracy 0.9424
dot_accuracy_threshold 0.7851
dot_f1 0.9364
dot_f1_threshold 0.7851
dot_precision 0.9196
dot_recall 0.9537
dot_ap 0.9629
manhattan_accuracy 0.9383
manhattan_accuracy_threshold 10.5544
manhattan_f1 0.9333
manhattan_f1_threshold 10.5544
manhattan_precision 0.8974
manhattan_recall 0.9722
manhattan_ap 0.9614
euclidean_accuracy 0.9424
euclidean_accuracy_threshold 0.6556
euclidean_f1 0.9364
euclidean_f1_threshold 0.6556
euclidean_precision 0.9196
euclidean_recall 0.9537
euclidean_ap 0.9629
max_accuracy 0.9424
max_accuracy_threshold 10.5544
max_f1 0.9364
max_f1_threshold 10.5544
max_precision 0.9196
max_recall 0.9722
max_ap 0.9629

Binary Classification

Metric Value
cosine_accuracy 0.9424
cosine_accuracy_threshold 0.7851
cosine_f1 0.9364
cosine_f1_threshold 0.7851
cosine_precision 0.9196
cosine_recall 0.9537
cosine_ap 0.9629
dot_accuracy 0.9424
dot_accuracy_threshold 0.7851
dot_f1 0.9364
dot_f1_threshold 0.7851
dot_precision 0.9196
dot_recall 0.9537
dot_ap 0.9629
manhattan_accuracy 0.9383
manhattan_accuracy_threshold 10.5544
manhattan_f1 0.9333
manhattan_f1_threshold 10.5544
manhattan_precision 0.8974
manhattan_recall 0.9722
manhattan_ap 0.9614
euclidean_accuracy 0.9424
euclidean_accuracy_threshold 0.6556
euclidean_f1 0.9364
euclidean_f1_threshold 0.6556
euclidean_precision 0.9196
euclidean_recall 0.9537
euclidean_ap 0.9629
max_accuracy 0.9424
max_accuracy_threshold 10.5544
max_f1 0.9364
max_f1_threshold 10.5544
max_precision 0.9196
max_recall 0.9722
max_ap 0.9629

Training Details

Training Dataset

Unnamed Dataset

  • Size: 971 training samples
  • Columns: sentence2, sentence1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence2 sentence1 label
    type string string int
    details
    • min: 4 tokens
    • mean: 10.12 tokens
    • max: 22 tokens
    • min: 6 tokens
    • mean: 10.82 tokens
    • max: 22 tokens
    • 0: ~48.61%
    • 1: ~51.39%
  • Samples:
    sentence2 sentence1 label
    Total number of bones in an adult human body How many bones are in the human body? 1
    What is the largest river in North America? What is the largest lake in North America? 0
    What is the capital of Australia? What is the capital of New Zealand? 0
  • Loss: OnlineContrastiveLoss

Evaluation Dataset

Unnamed Dataset

  • Size: 243 evaluation samples
  • Columns: sentence2, sentence1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence2 sentence1 label
    type string string int
    details
    • min: 4 tokens
    • mean: 10.09 tokens
    • max: 20 tokens
    • min: 6 tokens
    • mean: 10.55 tokens
    • max: 22 tokens
    • 0: ~55.56%
    • 1: ~44.44%
  • Samples:
    sentence2 sentence1 label
    What are the various forms of renewable energy? What are the different types of renewable energy? 1
    Gravity discoverer Who discovered gravity? 1
    Can you help me write this report? Can you help me understand this report? 0
  • Loss: OnlineContrastiveLoss

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 2
  • learning_rate: 3e-06
  • weight_decay: 0.01
  • num_train_epochs: 20
  • lr_scheduler_type: reduce_lr_on_plateau
  • warmup_ratio: 0.1
  • load_best_model_at_end: True
  • optim: adamw_torch_fused

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 2
  • eval_accumulation_steps: None
  • learning_rate: 3e-06
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 20
  • max_steps: -1
  • lr_scheduler_type: reduce_lr_on_plateau
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step loss pair-class-dev_max_ap pair-class-test_max_ap
0 0 - 0.6426 -
0.9677 15 3.1481 0.7843 -
2.0 31 2.1820 0.8692 -
2.9677 46 1.8185 0.9078 -
4.0 62 1.5769 0.9252 -
4.9677 77 1.4342 0.9310 -
6.0 93 1.3544 0.9357 -
6.9677 108 1.2630 0.9402 -
8.0 124 1.2120 0.9444 -
8.9677 139 1.1641 0.9454 -
10.0 155 1.0481 0.9464 -
10.9677 170 0.9324 0.9509 -
12.0 186 0.8386 0.9556 -
12.9677 201 0.7930 0.9577 -
14.0 217 0.7564 0.9599 -
14.9677 232 0.7480 0.9606 -
16.0 248 0.6733 0.9614 -
16.9677 263 0.6434 0.9621 -
18.0 279 0.6411 0.9630 -
18.9677 294 0.6383 0.9632 -
19.3548 300 0.6365 0.9629 0.9629
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 0.32.1
  • Datasets: 2.19.1
  • Tokenizers: 0.19.1

Citation

BibTeX

Sentence Transformers

@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",
}
Downloads last month
8
Safetensors
Model size
118M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for srikarvar/multilingual-e5-small-pairclass-3

Finetuned
(57)
this model

Evaluation results