codersan's picture
Add new SentenceTransformer model
b89423a verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:12000
  - loss:CosineSimilarityLoss
  - loss:MultipleNegativesRankingLoss
base_model: intfloat/multilingual-e5-small
widget:
  - source_sentence: تفاوت‌های کلیدی بین موتورهای دیزلی و بنزینی چیست؟
    sentences:
      - >-
        یک VPN یا شبکه خصوصی مجازی، ارتباط اینترنتی شما را رمزنگاری کرده و آن را
        از طریق یک سرور در مکانی که خودتان انتخاب کرده‌اید هدایت می‌کند و حفظ
        حریم خصوصی و امنیت را فراهم می‌آورد.
      - >-
        طراحان صدا روی عناصر صوتی یک فیلم کار می‌کنند، از جمله افکت‌های صوتی و
        دیالوگ.
      - سوخت دیزل چگال‌تر است و انرژی بیشتری در هر گالن نسبت به بنزین دارد.
  - source_sentence: ماده تاریک چیست؟
    sentences:
      - >-
        مطالعه موجودات بیلومینسانس می‌تواند به بهبود درک ما از فرآیندهای سلولی
        کمک کند.
      - >-
        رِف بزرگ مرجانی بزرگترین سیستم مرجانی جهان است که در استرالیا واقع شده
        است.
      - >-
        بسیاری از دانشمندان در حال انجام آزمایش‌هایی برای شناسایی مستقیم ذرات
        ماده تاریک هستند.
  - source_sentence: کشاورزی دقیق چه معنایی دارد؟
    sentences:
      - >-
        پستانداران با وجود غده‌های شیری مشخص می‌شوند که شیر تولید می‌کنند تا
        فرزندان خود را تغذیه کنند و معمولاً دارای مو یا پشم هستند.
      - >-
        در حالی که آنتی‌بیوتیک‌ها برای درمان عفونت‌های باکتریایی استفاده
        می‌شوند، آنها در برابر عفونت‌های ویروسی مانند سرماخوردگی یا آنفولانزا
        بی‌اثر هستند.
      - >-
        کشاورزان از کشاورزی دقیق استفاده می‌کنند تا تصمیمات بهتری درباره کاشت،
        کوددهی و برداشت محصولات بگیرند.
  - source_sentence: کشف رنگ تغییر می‌دهد؟
    sentences:
      - >-
        داسته‌زبان‌ها نوعی از مارمولک‌ها هستند که در بخش‌های مختلف جهان یافت
        می‌شوند.
      - >-
        استفاده از مالچ برای پوشاندن خاک می‌تواند به حفظ رطوبت کمک کرده و نیاز
        به آبیاری مکرر را کاهش دهد.
      - >-
        در حین همجوشی باکتریایی، یک سلول اهداکننده DNA را از طریق پیلاسی که
        ساختاری شبیه به پل است به یک سلول گیرنده منتقل می‌کند.
  - source_sentence: مصریان باستان چگونه هرم‌ها را ساختند؟
    sentences:
      - >-
        جنگ سرد بر توسعه سازمان‌های بین‌المللی که به حفظ صلح و امنیت می‌پردازند،
        تأثیر گذاشت.
      - >-
        مزایای بیکاری بین کشورها به طور وسیعی متفاوت است، به طوری که برخی از
        آنها حمایت بیشتری نسبت به دیگران ارائه می‌دهند.
      - >-
        هرمی‌ها به عنوان مقبره‌هایی برای فراعنه ساخته شدند و هدف از آن‌ها تأمین
        عبور ایمن آن‌ها به زندگی پس از مرگ بود.
pipeline_tag: sentence-similarity
library_name: sentence-transformers

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 dimensions
  • 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("codersan/e5Fa_small_v1_phase2")
# Run inference
sentences = [
    'مصریان باستان چگونه هرم\u200cها را ساختند؟',
    'هرمی\u200cها به عنوان مقبره\u200cهایی برای فراعنه ساخته شدند و هدف از آن\u200cها تأمین عبور ایمن آن\u200cها به زندگی پس از مرگ بود.',
    'مزایای بیکاری بین کشورها به طور وسیعی متفاوت است، به طوری که برخی از آنها حمایت بیشتری نسبت به دیگران ارائه می\u200cدهند.',
]
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]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 12,000 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 3 tokens
    • mean: 23.7 tokens
    • max: 113 tokens
    • min: 3 tokens
    • mean: 17.04 tokens
    • max: 75 tokens
  • Samples:
    anchor positive
    آدمهایی هستند که وقتی خوشحالی کنارت نیستند؟ یک آدمهایی هستند که وقتی شادی کنارت نیستند؟
    گله گوزن ها از جاده عبور نمی کنند یک گله از گوزن ها از خیابان عبور می کنند
    هیچ مردی روی مسواک خم نمی‌شود و عکس نمی‌گیرد یک مرد خم می‌شود و دوربینی را نگه می‌دارد
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 64
  • learning_rate: 2e-05
  • weight_decay: 0.01
  • num_train_epochs: 2
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 2
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: False
  • 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
  • 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: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • 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
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss
0.5319 100 0.0535
1.0638 200 0.0364
1.5957 300 0.032
2.1277 400 0.0306
2.6596 500 0.0282
0.4098 100 0.2321
0.8197 200 0.154
1.2295 300 0.1436
1.6393 400 0.1118

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.47.0
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • Datasets: 4.0.0
  • Tokenizers: 0.21.0

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",
}

MultipleNegativesRankingLoss

@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}
}