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/fine_tuned_model_5")
# Run inference
sentences = [
    'How to bake a pie?',
    'Steps to bake a pie',
    'What is the population of Chicago?',
]
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.8654
cosine_accuracy_threshold 0.8728
cosine_f1 0.8657
cosine_f1_threshold 0.82
cosine_precision 0.8286
cosine_recall 0.9062
cosine_ap 0.9323
dot_accuracy 0.8654
dot_accuracy_threshold 0.8728
dot_f1 0.8657
dot_f1_threshold 0.82
dot_precision 0.8286
dot_recall 0.9062
dot_ap 0.9323
manhattan_accuracy 0.8692
manhattan_accuracy_threshold 9.2523
manhattan_f1 0.8722
manhattan_f1_threshold 9.2523
manhattan_precision 0.8406
manhattan_recall 0.9062
manhattan_ap 0.9323
euclidean_accuracy 0.8654
euclidean_accuracy_threshold 0.5044
euclidean_f1 0.8657
euclidean_f1_threshold 0.6
euclidean_precision 0.8286
euclidean_recall 0.9062
euclidean_ap 0.9323
max_accuracy 0.8692
max_accuracy_threshold 9.2523
max_f1 0.8722
max_f1_threshold 9.2523
max_precision 0.8406
max_recall 0.9062
max_ap 0.9323

Binary Classification

Metric Value
cosine_accuracy 0.916
cosine_accuracy_threshold 0.844
cosine_f1 0.9075
cosine_f1_threshold 0.823
cosine_precision 0.8729
cosine_recall 0.945
cosine_ap 0.961
dot_accuracy 0.916
dot_accuracy_threshold 0.844
dot_f1 0.9075
dot_f1_threshold 0.823
dot_precision 0.8729
dot_recall 0.945
dot_ap 0.961
manhattan_accuracy 0.916
manhattan_accuracy_threshold 8.5812
manhattan_f1 0.9075
manhattan_f1_threshold 9.3271
manhattan_precision 0.8729
manhattan_recall 0.945
manhattan_ap 0.9613
euclidean_accuracy 0.916
euclidean_accuracy_threshold 0.5585
euclidean_f1 0.9075
euclidean_f1_threshold 0.595
euclidean_precision 0.8729
euclidean_recall 0.945
euclidean_ap 0.961
max_accuracy 0.916
max_accuracy_threshold 8.5812
max_f1 0.9075
max_f1_threshold 9.3271
max_precision 0.8729
max_recall 0.945
max_ap 0.9613

Training Details

Training Dataset

Unnamed Dataset

  • Size: 2,332 training samples
  • Columns: sentence1, sentence2, and label
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 label
    type string string int
    details
    • min: 6 tokens
    • mean: 12.96 tokens
    • max: 66 tokens
    • min: 5 tokens
    • mean: 12.67 tokens
    • max: 55 tokens
    • 0: ~52.80%
    • 1: ~47.20%
  • Samples:
    sentence1 sentence2 label
    How to bake a chocolate cake? Recipe for baking a chocolate cake 1
    Why do girls want to be friends with the guy they reject? How do guys feel after rejecting a girl? 0
    How can I stop being afraid of working? How do you stop being afraid of everything? 0
  • Loss: OnlineContrastiveLoss

Evaluation Dataset

Unnamed Dataset

  • Size: 260 evaluation samples
  • Columns: sentence1, sentence2, and label
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 label
    type string string int
    details
    • min: 6 tokens
    • mean: 13.44 tokens
    • max: 39 tokens
    • min: 4 tokens
    • mean: 12.99 tokens
    • max: 50 tokens
    • 0: ~50.77%
    • 1: ~49.23%
  • Samples:
    sentence1 sentence2 label
    How to cook spaghetti? Steps to cook spaghetti 1
    How to create a mobile app? How to create a desktop application? 0
    How can I update my resume? Steps to revise and update a resume 1
  • 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
  • num_train_epochs: 4
  • warmup_ratio: 0.1
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

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: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 4
  • max_steps: -1
  • lr_scheduler_type: linear
  • 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: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss pair-class-dev_max_ap pair-class-test_max_ap
0 0 - - 0.6979 -
0.2740 10 1.9007 - - -
0.5479 20 1.1616 - - -
0.8219 30 0.9094 - - -
0.9863 36 - 0.7692 0.9117 -
1.0959 40 0.9105 - - -
1.3699 50 0.6629 - - -
1.6438 60 0.4243 - - -
1.9178 70 0.4729 - - -
2.0 73 - 0.7294 0.9306 -
2.1918 80 0.4897 - - -
2.4658 90 0.3103 - - -
2.7397 100 0.2316 - - -
2.9863 109 - 0.7807 0.9311 -
3.0137 110 0.3179 - - -
3.2877 120 0.1975 - - -
3.5616 130 0.1477 - - -
3.8356 140 0.1034 - - -
3.9452 144 - 0.8132 0.9323 0.9613
  • 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
34
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/fine_tuned_model_5

Finetuned
(59)
this model
Finetunes
4 models

Evaluation results