CrossEncoder based on MatMulMan/araelectra-base-discriminator-tydi-tafseer-pairs

This is a Cross Encoder model finetuned from MatMulMan/araelectra-base-discriminator-tydi-tafseer-pairs using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.

Model Details

Model Description

Model Sources

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 CrossEncoder

# Download from the 🤗 Hub
model = CrossEncoder("cross_encoder_model_id")
# Get scores for pairs of texts
pairs = [
    ['بعد ستة أيام شغل ورا بعض، المفروض آخد راحة قد إيه في الأسبوع؟', '24 ساعة متصلة (يعني يوم كامل).'],
    ['إيه هي الحقوق والميزات اللي القانون الجديد للشغل بيديها للستات الحوامل بالتحديد؟', 'ممكن بس بشرطين: ما يزيدش عن 48 ساعة في الأسبوع (من غير حساب الراحة). يتم احتساب الساعات الزايدة كعمل إضافي ويتحسب لها أجر أعلى.'],
    ['حد من الصحة بييجي يتأكد من سلامة المستشفى اللي بنشتغل فيها؟ (يستخدم كلمة "سلامة" للتعبير عن الجودة)', 'أيوه، في مفتشين من وزارة الصحة أو هيئة السلامة المهنية بيزوروا المستشفيات والمنشآت الصحية علشان يتأكدوا من التزامها بشروط السلامة والصحة المهنية.'],
    ['لو خدت إجازة في الفترة دي، ده هيقلل من رصيد إجازتي السنوية العادية، ولا ده وضع مختلف ومش هياثر عليها؟', 'أيوه، التأمين الصحي بيغطي الأمراض والإصابات اللي بتحصل أثناء الشغل أو بسبب ظروف الشغل. وفيه حاجة اسمها "إصابة عمل"، ودي بيكون ليها علاج وتعويض خاص.'],
    ['يعني العقد لازم يبقى عربي بس، حتى لو الشركة اللي طرف فيه مش مصرية؟ ولا ممكن يكون بلغتهم برضه؟', 'الحد الأدنى بيتحدد سنويًا بقرار من الهيئة العامة للتأمينات. في 2025، الحد الأدنى حوالي 1700 جنيه، والحد الأقصى وصل لـ11200 جنيه، وده بيزيد تدريجيًا كل سنة.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'بعد ستة أيام شغل ورا بعض، المفروض آخد راحة قد إيه في الأسبوع؟',
    [
        '24 ساعة متصلة (يعني يوم كامل).',
        'ممكن بس بشرطين: ما يزيدش عن 48 ساعة في الأسبوع (من غير حساب الراحة). يتم احتساب الساعات الزايدة كعمل إضافي ويتحسب لها أجر أعلى.',
        'أيوه، في مفتشين من وزارة الصحة أو هيئة السلامة المهنية بيزوروا المستشفيات والمنشآت الصحية علشان يتأكدوا من التزامها بشروط السلامة والصحة المهنية.',
        'أيوه، التأمين الصحي بيغطي الأمراض والإصابات اللي بتحصل أثناء الشغل أو بسبب ظروف الشغل. وفيه حاجة اسمها "إصابة عمل"، ودي بيكون ليها علاج وتعويض خاص.',
        'الحد الأدنى بيتحدد سنويًا بقرار من الهيئة العامة للتأمينات. في 2025، الحد الأدنى حوالي 1700 جنيه، والحد الأقصى وصل لـ11200 جنيه، وده بيزيد تدريجيًا كل سنة.',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 34,420 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1 label
    type string string float
    details
    • min: 30 characters
    • mean: 108.55 characters
    • max: 275 characters
    • min: 19 characters
    • mean: 140.71 characters
    • max: 399 characters
    • min: 0.0
    • mean: 0.2
    • max: 1.0
  • Samples:
    sentence_0 sentence_1 label
    بعد ستة أيام شغل ورا بعض، المفروض آخد راحة قد إيه في الأسبوع؟ 24 ساعة متصلة (يعني يوم كامل). 1.0
    إيه هي الحقوق والميزات اللي القانون الجديد للشغل بيديها للستات الحوامل بالتحديد؟ ممكن بس بشرطين: ما يزيدش عن 48 ساعة في الأسبوع (من غير حساب الراحة). يتم احتساب الساعات الزايدة كعمل إضافي ويتحسب لها أجر أعلى. 0.0
    حد من الصحة بييجي يتأكد من سلامة المستشفى اللي بنشتغل فيها؟ (يستخدم كلمة "سلامة" للتعبير عن الجودة) أيوه، في مفتشين من وزارة الصحة أو هيئة السلامة المهنية بيزوروا المستشفيات والمنشآت الصحية علشان يتأكدوا من التزامها بشروط السلامة والصحة المهنية. 1.0
  • Loss: BinaryCrossEntropyLoss with these parameters:
    {
        "activation_fn": "torch.nn.modules.linear.Identity",
        "pos_weight": null
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • num_train_epochs: 10
  • disable_tqdm: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • 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: 10
  • 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: True
  • 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
  • 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: proportional

Training Logs

Epoch Step Training Loss
0.2323 500 0.58
0.4647 1000 0.2103
0.6970 1500 0.1512
0.9294 2000 0.1332
1.1617 2500 0.1047
1.3941 3000 0.1018
1.6264 3500 0.088
1.8587 4000 0.0734
2.0911 4500 0.0621
2.3234 5000 0.0681
2.5558 5500 0.0584
2.7881 6000 0.0491
3.0204 6500 0.0519
3.2528 7000 0.0502
3.4851 7500 0.0365
3.7175 8000 0.0452
3.9498 8500 0.0455
4.1822 9000 0.0438
4.4145 9500 0.0358
4.6468 10000 0.0398
4.8792 10500 0.0346
5.1115 11000 0.038
5.3439 11500 0.0368
5.5762 12000 0.0273
5.8086 12500 0.0369
6.0409 13000 0.0314
6.2732 13500 0.0242
6.5056 14000 0.0276
6.7379 14500 0.0306
6.9703 15000 0.0338
7.2026 15500 0.0226
7.4349 16000 0.0274
7.6673 16500 0.0294
7.8996 17000 0.0298
8.1320 17500 0.0267
8.3643 18000 0.0307
8.5967 18500 0.0167
8.8290 19000 0.0289
9.0613 19500 0.0183
9.2937 20000 0.0247
9.5260 20500 0.0266
9.7584 21000 0.025
9.9907 21500 0.0215

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

@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
5
Safetensors
Model size
135M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DHOM-Uni/FAQ-Ai-Assistant-V2