GTE-quqa-haqa / README.md
yoriis's picture
Add new CrossEncoder model
c955508 verified
metadata
tags:
  - sentence-transformers
  - cross-encoder
  - reranker
  - generated_from_trainer
  - dataset_size:12128
  - loss:BinaryCrossEntropyLoss
  - dataset_size:8623
base_model: NAMAA-Space/GATE-Reranker-V1
pipeline_tag: text-ranking
library_name: sentence-transformers
metrics:
  - accuracy
  - accuracy_threshold
  - f1
  - f1_threshold
  - precision
  - recall
  - average_precision
model-index:
  - name: CrossEncoder based on NAMAA-Space/GATE-Reranker-V1
    results:
      - task:
          type: cross-encoder-classification
          name: Cross Encoder Classification
        dataset:
          name: eval
          type: eval
        metrics:
          - type: accuracy
            value: 0.9347181008902077
            name: Accuracy
          - type: accuracy_threshold
            value: 0.5419439077377319
            name: Accuracy Threshold
          - type: f1
            value: 0.8598726114649681
            name: F1
          - type: f1_threshold
            value: 0.5419439077377319
            name: F1 Threshold
          - type: precision
            value: 0.9278350515463918
            name: Precision
          - type: recall
            value: 0.8011869436201781
            name: Recall
          - type: average_precision
            value: 0.9188465849471387
            name: Average Precision
          - type: accuracy
            value: 0.8665276329509907
            name: Accuracy
          - type: accuracy_threshold
            value: 0.6019971370697021
            name: Accuracy Threshold
          - type: f1
            value: 0.4424242424242424
            name: F1
          - type: f1_threshold
            value: 0.11302665621042252
            name: F1 Threshold
          - type: precision
            value: 0.4294117647058823
            name: Precision
          - type: recall
            value: 0.45625
            name: Recall
          - type: average_precision
            value: 0.49082594482919695
            name: Average Precision

CrossEncoder based on NAMAA-Space/GATE-Reranker-V1

This is a Cross Encoder model finetuned from NAMAA-Space/GATE-Reranker-V1 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("yoriis/GTE-quqa-haqa")
# Get scores for pairs of texts
pairs = [
    ['هل  ترك الصلاة تهاونا وكسلا كبيرة من الكبائر، ومن العلماء من قال بكفره، هل هذا الحكم له توجيهه من السنة النبوية؟', 'حديث طَارِقِ بْنِ شِهَابٍ رضي الله عنه، عَنِ النَّبِيِّ ﷺ قَالَ: «الجُمُعَةُ حَقٌّ وَاجِبٌ عَلَى كُلِّ مُسْلِمٍ فِي جَمَاعَةٍ إِلَّا أَرْبَعَةً: عَبْدٌ مَمْلُوكٌ، أَوِ امْرَأَةٌ، أَوْ صَبِيٌّ، أَوْ مَرِيضٌ». رواه أبو داود (1067)، وصححه الألباني في إرواء الغليل (592)، والوادعي في الصحيح المسند (517) .'],
    ['من هو النبي الذي كان يعمل نجارا ؟', 'عن أبي بن كعب رضي الله عنه قال: «إن رسول الله ﷺ كان يوتر فيقنت قبل الركوع». أخرجه ابن ماجه.'],
    ['ما سبب كراهية الصلاة على السجّاد المزخرف؟', 'ابن عباس رضي الله عنه عن النبي ﷺ أنه قال: (من سمع النداء فلم يأته، فلا صلاة له إلا من عذر). أخرجه ابن ماجه'],
    ['من هو الصحابي الذي قال فيه النبي ﷺ: «من خير ذي يمن وعلى وجهه مسحة ملك» ؟', 'حديث  جَرِير بْن عَبْدِ الله البَجَلِيَّ رضي الله عنه، مَا رَآنِي رَسُولُ الله ﷺ قَطُّ إِلَّا تَبَسَّمَ فِي وَجْهِي قَالَ: وَقَالَ رَسُولُ الله ﷺ: «يَطْلُعُ عَلَيْكُمْ مِنْ هَذَا البَابِ رَجُلٌ مِنْ خَيْرِ ذِي يُمْنٍ، عَلَى وَجْهِهِ مِسْحَةُ مَلَكٍ، فَطَلَعَ جَرِيرُ بْنُ عَبْدِ الله». وهو في مسند الإمام أحمد (19179)، وهو في الصحيحة (3193)، وفي الصحيح المسند (262).'],
    ['ما فضل صلاة الليل؟', 'عَنْ أَبِي هُرَيْرَةَ رضي الله عنه، أَنَّ رَسُولَ الله ﷺ قَالَ: «لَيْسَ الشَّدِيدُ بِالصُّرَعَةِ إِنَّمَا الشَّدِيدُ الَّذِي يَمْلِكُ نَفْسَهُ عِنْدَ الغَضَبِ». رواه البخاري (6114)، ومسلم (2609).'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'هل  ترك الصلاة تهاونا وكسلا كبيرة من الكبائر، ومن العلماء من قال بكفره، هل هذا الحكم له توجيهه من السنة النبوية؟',
    [
        'حديث طَارِقِ بْنِ شِهَابٍ رضي الله عنه، عَنِ النَّبِيِّ ﷺ قَالَ: «الجُمُعَةُ حَقٌّ وَاجِبٌ عَلَى كُلِّ مُسْلِمٍ فِي جَمَاعَةٍ إِلَّا أَرْبَعَةً: عَبْدٌ مَمْلُوكٌ، أَوِ امْرَأَةٌ، أَوْ صَبِيٌّ، أَوْ مَرِيضٌ». رواه أبو داود (1067)، وصححه الألباني في إرواء الغليل (592)، والوادعي في الصحيح المسند (517) .',
        'عن أبي بن كعب رضي الله عنه قال: «إن رسول الله ﷺ كان يوتر فيقنت قبل الركوع». أخرجه ابن ماجه.',
        'ابن عباس رضي الله عنه عن النبي ﷺ أنه قال: (من سمع النداء فلم يأته، فلا صلاة له إلا من عذر). أخرجه ابن ماجه',
        'حديث  جَرِير بْن عَبْدِ الله البَجَلِيَّ رضي الله عنه، مَا رَآنِي رَسُولُ الله ﷺ قَطُّ إِلَّا تَبَسَّمَ فِي وَجْهِي قَالَ: وَقَالَ رَسُولُ الله ﷺ: «يَطْلُعُ عَلَيْكُمْ مِنْ هَذَا البَابِ رَجُلٌ مِنْ خَيْرِ ذِي يُمْنٍ، عَلَى وَجْهِهِ مِسْحَةُ مَلَكٍ، فَطَلَعَ جَرِيرُ بْنُ عَبْدِ الله». وهو في مسند الإمام أحمد (19179)، وهو في الصحيحة (3193)، وفي الصحيح المسند (262).',
        'عَنْ أَبِي هُرَيْرَةَ رضي الله عنه، أَنَّ رَسُولَ الله ﷺ قَالَ: «لَيْسَ الشَّدِيدُ بِالصُّرَعَةِ إِنَّمَا الشَّدِيدُ الَّذِي يَمْلِكُ نَفْسَهُ عِنْدَ الغَضَبِ». رواه البخاري (6114)، ومسلم (2609).',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Classification

Metric Value
accuracy 0.9347
accuracy_threshold 0.5419
f1 0.8599
f1_threshold 0.5419
precision 0.9278
recall 0.8012
average_precision 0.9188

Cross Encoder Classification

Metric Value
accuracy 0.8665
accuracy_threshold 0.602
f1 0.4424
f1_threshold 0.113
precision 0.4294
recall 0.4562
average_precision 0.4908

Training Details

Training Dataset

Unnamed Dataset

  • Size: 8,623 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: 9 characters
    • mean: 35.96 characters
    • max: 132 characters
    • min: 39 characters
    • mean: 286.62 characters
    • max: 12356 characters
    • min: 0.0
    • mean: 0.16
    • max: 1.0
  • Samples:
    sentence_0 sentence_1 label
    هل ترك الصلاة تهاونا وكسلا كبيرة من الكبائر، ومن العلماء من قال بكفره، هل هذا الحكم له توجيهه من السنة النبوية؟ حديث طَارِقِ بْنِ شِهَابٍ رضي الله عنه، عَنِ النَّبِيِّ ﷺ قَالَ: «الجُمُعَةُ حَقٌّ وَاجِبٌ عَلَى كُلِّ مُسْلِمٍ فِي جَمَاعَةٍ إِلَّا أَرْبَعَةً: عَبْدٌ مَمْلُوكٌ، أَوِ امْرَأَةٌ، أَوْ صَبِيٌّ، أَوْ مَرِيضٌ». رواه أبو داود (1067)، وصححه الألباني في إرواء الغليل (592)، والوادعي في الصحيح المسند (517) . 0.0
    من هو النبي الذي كان يعمل نجارا ؟ عن أبي بن كعب رضي الله عنه قال: «إن رسول الله ﷺ كان يوتر فيقنت قبل الركوع». أخرجه ابن ماجه. 0.0
    ما سبب كراهية الصلاة على السجّاد المزخرف؟ ابن عباس رضي الله عنه عن النبي ﷺ أنه قال: (من سمع النداء فلم يأته، فلا صلاة له إلا من عذر). أخرجه ابن ماجه 0.0
  • Loss: BinaryCrossEntropyLoss with these parameters:
    {
        "activation_fn": "torch.nn.modules.linear.Identity",
        "pos_weight": null
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • num_train_epochs: 4
  • fp16: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • 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: 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: 4
  • 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: {'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
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss eval_average_precision
0.3298 500 0.4083 0.8871
0.6596 1000 0.2958 0.9043
0.9894 1500 0.2839 0.9092
1.0 1516 - 0.9091
1.3193 2000 0.2698 0.9129
1.6491 2500 0.2617 0.9152
1.9789 3000 0.2791 0.9163
2.0 3032 - 0.9160
2.3087 3500 0.2651 0.9159
2.6385 4000 0.2475 0.9172
2.9683 4500 0.264 0.9186
3.0 4548 - 0.9187
3.2982 5000 0.225 0.9180
3.6280 5500 0.2706 0.9186
3.9578 6000 0.2242 0.9188
4.0 6064 - 0.9188
0.4638 500 0.5074 0.4693
0.9276 1000 0.3909 0.4817
1.0 1078 - 0.4858
1.3915 1500 0.3806 0.4802
1.8553 2000 0.3638 0.4828
2.0 2156 - 0.4843
2.3191 2500 0.395 0.4828
2.7829 3000 0.347 0.4840
3.0 3234 - 0.4850
3.2468 3500 0.3614 0.4866
3.7106 4000 0.3483 0.4906
4.0 4312 - 0.4908

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 5.0.0
  • Transformers: 4.55.0
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.9.0
  • Datasets: 4.0.0
  • Tokenizers: 0.21.4

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