CoolFace
Modelpublic

yoriis/NAMAA-retriever-contrastive-1

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes70downloads
Model Card

SentenceTransformer based on NAMAA-Space/AraModernBert-Base-STS

This is a sentence-transformers model finetuned from NAMAA-Space/AraModernBert-Base-STS. It maps sentences & paragraphs to a 768-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: NAMAA-Space/AraModernBert-Base-STS <!-- at revision cc3cb850a251f28b99b69bfe4c5332d21dc82c08 -->
  • —Maximum Sequence Length: 512 tokens
  • —Output Dimensionality: 768 dimensions
  • —Similarity Function: Cosine Similarity <!-- - Training Dataset: Unknown --> <!-- - Language: Unknown --> <!-- - License: Unknown -->

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, '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})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

bash
pip install -U sentence-transformers

Then you can load this model and run inference.

python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("yoriis/NAMAA-retriever-contrastive-1")
# Run inference
sentences = [
    'ما هي تقنية التصوير التجسيمي (الهولوجرام) ؟',
    'الصور التجسيمية أو الذواكر الهولوغرافية  تمتلك خاصية فريدة تمكنها من إعادة تكوين صورة الأجسام بأبعادها الثلاثة في الفضاء . تتم تلك العملية بإستخدام أشعة الليزر.',
    '350px|تصغير أرمينيوس (Arminius)  (ولد 18 قبل الميلاد - توفى 21)، زعيم قبيلة الشيروسكيين الذي هزم الجيش الروماني في معركة فاروس أو المعروفة بـ معركة غابة تويتوبورغ.[1][2][3] نجح تحالف القبائل الجرمانية ضد الإمبراطورية الرومانية  في قطع الطريق على الجهود التي بذلها جرمانيكوس، ابن شقيق الإمبراطور تيبيريوس للسيطرة الأراضي الجرمانية شرقي نهر الراين ، حيث إنهزم جيش الرومان هزيمة كبيرة.  ورغم الجدل بين المؤرخين حول نتائج عدة معارك حاسمة تلت تلك المعركة لاستعادة هيبة الجيش الروماني (تاسيتوس، أنالس 2،22، سويتونيوس، كاليغولا 1.4). ولكن هزيمة الرومان كانت أكيدة وعملوا على ترك تلك المناطق . وعلى الرغم من أن أرمينيوس في نهاية المطاف لم ينجح في إقامة الوحدة بين القبائل الجرمانية، كان لنصره الكبير أثرا بعيد المدى على تاريخ اللاحق لكل من القبائل الجرمانية القديمة والإمبراطورية الرومانية، وأخيرا على أوروبا بأسرها. ويعتبر الأمان أن أرمينيوس هو أول بطل حربي في تاريخ ألمانيا.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

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

<!--

Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details> -->

<!--

Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details> -->

<!--

Out-of-Scope Use

List how the model may foreseeably be misused and address what users ought not to do with the model. -->

<!--

Bias, Risks and Limitations

What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->

<!--

Recommendations

What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->

Training Details

Training Dataset

Unnamed Dataset
  • —Size: 47,178 training samples
  • —Columns: <code>sentence0</code>, <code>sentence1</code>, and <code>label</code>
  • —Approximate statistics based on the first 1000 samples: | | sentence0 | sentence1 | label | |:--------|:---------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:---------------------------------------------------------------| | type | string | string | float | | details | <ul><li>min: 6 tokens</li><li>mean: 9.88 tokens</li><li>max: 31 tokens</li></ul> | <ul><li>min: 12 tokens</li><li>mean: 127.41 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 0.33</li><li>max: 1.0</li></ul> |
  • —Samples: | sentence0 | sentence1 | label | |:-------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------| | <code>ما سبب إندلاع الحرب الأهلية السلفادورية ؟</code> | <code>الحرب الأهلية السلفادورية كانت صراعا مسلحا بين الحكومة العسكرية السلفادورية وجبهة فارابوندو مارتي للتحرير الوطني (FMLN)، وهي ائتلاف من خمسة جماعات حرب عصابات يسارية. أدى الانقلاب العسكري في 15 أكتوبر 1979 إلى عمليات قتل للمتظاهرين ضد الانقلاب من قبل الحكومة فضلا عن إفشال إضراب المتظاهرين من قبل مقاتلي الجيش، وينظر على نطاق واسع أن هذا هو نقطة تحول السلفادور نحو الحرب الأهلية.[1]</code> | <code>1.0</code> | | <code>ما هو حيوان الرنة ؟</code> | <code>في يناير من عام 1996، كانت بداية شركة جوجل في صورة مشروع بحثي بدأه لاري بيج وسرعان ما شارك فيه سيرجي برن، وذلك حينما كانا طالبين يقومان بتحضير رسالة الدكتوراه في جامعة ستانفورد بولاية كاليفورنيا.[8] وقد افترضا أن محرك البحث الذي يقوم بتحليل العلاقات بين مواقع الشبكة من شأنه أن يوفر ترتيبًا لنتائج البحث أفضل من ذلك الذي توفره أي أساليب متبعة بالفعل والتي تقوم بترتيب النتائج حسب عدد مرات ظهور المصطلح الذي يتم البحث عنه داخل الصفحة.[9] وكان قد أطلق على محرك البحث الذي قاما بإنشائه اسم باك رب لأن النظام الخاص به كان يفحص روابط العودة الموجودة بالموقع من أجل تقييم درجة أهمية الموقع[10][11]، وكان هناك محرك بحث صغير اسمه "Rankdex" يحاول بالفعل البحث عن تقنية مماثلة.[12] ومن منطلق اقتناع "بيدج" و"برن" بأن الصفحات التي تتضمن روابط تشير لصفحات أخرى ذات صلة هي الصفحات الأكثر ارتباطًا بعملية البحث. قام كلاهما باختبار فرضيتهما كجزء من الدراسة التي يقومان بها، ومن ثم وضعا أساس محرك البحث الخاص بهما. ولقد استخدم محرك البحث آنذاك موقع الويب الخاص في جامعة "ستانفورد" مستخدمين النطاق google.stanford.ed...</code> | <code>0.0</code> | | <code>ما هو الطب الجزيئي؟</code> | <code>مولدوفا تقع بين خطي العرض 45° و49 درجة شمالا، ومعظمها بين meridians 26° و30 درجة شرقا (منطقة صغيرة تقع إلى الشرق من 30 °).إجمالي مساحة الأراضي كم 33,8512 ويكمن الجزء الأكبر من البلاد بين النهرين، نهر دنيستر وبروت. الحدود الغربية من مولدوفا يتشكل من نهر بروت، الذي يربط نهر الدانوب المتدفقة إلى البحر الأسود. مولدوفا يمتد على نهر الدانوب بحوالي 480 متر (1,575)، وهو المنفذ الوحيد المولدوفية في نهر الدانوب. في الشرق، وهو نهر دنيستر النهر الرئيسي، تتدفق عبر البلد من الشمال إلى الجنوب، تلقي مياه Răut، Bâc، إيشيل، بوتنا. ويتدفق إيالبوج إلى أحد نهر الدانوب ليمانس،. البلد غير ساحلي، حتى ولو أنها قريبة جداً من البحر الأسود. بينما معظم أنحاء البلد من التلال، المرتفاعات تبدأ من 430 متر وتتجاوز (1,411) – أعلى نقطة هي تلة Bălăneşti. هيلز في مولدوفا هي جزء من هضبة المولدوفية، التي تنبع من جبال الكارباتجيولوجيا. تشمل أقسامها في مولدوفا دنيستر هيلز (التلال الشمالية المولدوفية وريدج دنيستر) والمولدافية عادي (وادي بروت الأوسط والسهوب Bălţi) والهضبة الوسطى المولدافية (التلال سولاك-Soloneţ، Corneşti هيلز (ك...</code> | <code>0.0</code> |
  • —Loss: <code>ContrastiveLoss</code> with these parameters:
json
  {
      "distance_metric": "SiameseDistanceMetric.COSINE_DISTANCE",
      "margin": 0.5,
      "size_average": true
  }

Training Hyperparameters

Non-Default Hyperparameters
  • —per_device_train_batch_size: 32
  • —per_device_eval_batch_size: 32
  • —fp16: True
  • —multi_dataset_batch_sampler: round_robin
All Hyperparameters

<details><summary>Click to expand</summary>

  • —overwrite_output_dir: False
  • —do_predict: False
  • —eval_strategy: no
  • —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: 1
  • —eval_accumulation_steps: None
  • —torch_empty_cache_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
  • —num_train_epochs: 3
  • —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: True
  • —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: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • —fsdp_transformer_layer_cls_to_wrap: None
  • —accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': 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
  • —hub_revision: None
  • —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
  • —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
  • —liger_kernel_config: None
  • —eval_use_gather_object: False
  • —average_tokens_across_devices: False
  • —prompts: None
  • —batch_sampler: batch_sampler
  • —multi_dataset_batch_sampler: round_robin

</details>

Training Logs

EpochStepTraining Loss
0.33905000.0052
0.678010000.0032
1.016915000.0029
1.355920000.0015
1.694925000.0015
2.033930000.0014
2.372935000.0008
2.711940000.0007

Framework Versions

  • —Python: 3.11.13
  • —Sentence Transformers: 4.1.0
  • —Transformers: 4.54.0
  • —PyTorch: 2.6.0+cu124
  • —Accelerate: 1.9.0
  • —Datasets: 4.0.0
  • —Tokenizers: 0.21.2

Citation

BibTeX

Sentence Transformers
bibtex
@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",
}
ContrastiveLoss
bibtex
@inproceedings{hadsell2006dimensionality,
    author={Hadsell, R. and Chopra, S. and LeCun, Y.},
    booktitle={2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06)},
    title={Dimensionality Reduction by Learning an Invariant Mapping},
    year={2006},
    volume={2},
    number={},
    pages={1735-1742},
    doi={10.1109/CVPR.2006.100}
}

<!--

Glossary

Clearly define terms in order to be accessible across audiences. -->

<!--

Model Card Authors

Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->

<!--

Model Card Contact

Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->