metadata
tags:
- sentence-transformers
- cross-encoder
- generated_from_trainer
- dataset_size:28960
- loss:BinaryCrossEntropyLoss
base_model: MatMulMan/araelectra-base-discriminator-tydi-tafseer-pairs
pipeline_tag: text-ranking
library_name: sentence-transformers
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 Type: Cross Encoder
- Base model: MatMulMan/araelectra-base-discriminator-tydi-tafseer-pairs
- Maximum Sequence Length: 512 tokens
- Number of Output Labels: 1 label
Model Sources
- Documentation: Sentence Transformers Documentation
- Documentation: Cross Encoder Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Cross Encoders on Hugging Face
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 = [
['بخصوص الاشتراكات، ممكن توضحلي مين بيدفع كام؟ يعني العامل بيساهم بقد إيه وصاحب الشغل بيكمل الباقي؟', 'أيوه، العامل له الحق يرفض التغييرات اللي بتضره، خصوصًا لو كانت في مواعيد الشغل، الراتب، أو طبيعة العمل. ولو صاحب العمل أصر، العامل يقدر يلجأ لمكتب العمل أو المحكمة المختصة.'],
['السؤال بالبلدي: الفلوس دي بندفعها للموظف لو قرر يسيب الشغل بعد سن معين، ولا دي بس للناس اللي الشركة بتستغنى عنهم؟', 'أيوه، العامل يقدر ياخد المكافأة حتى لو هو اللي قرر يسيب الشغل بعد سن الستين. مش لازم يكون اتفصل، المهم إن خدمته انتهت بعد ما كمل المدة المطلوبة.'],
['لو قررت امشي من الشركة، هل فيه ورق أو تصديق لازم اخده من مكتب العمل عشان اضمن حقي بعد كده؟ (تركيز على الحقوق بعد الاستقالة)', 'مدة فترة التجربة في أي عقد ماينفعش تزيد عن 3 شهور، وخلال المدة دي ينفع فسخ العقد من أي طرف بدون تعويض.'],
['لو أم بترضع طفلها في الشغل، وقت الرضاعة ده بيعتبر جزء من الدوام الرسمي بتاعها ولا لازم تعوضه بعدين؟', 'لو اتفقت مع الشركة كتابيًا إنك تلتزم بفترة معينة بعد التدريب، وسِبت الشغل قبل ما تكمّل المدة دي، ساعتها ممكن الشركة تطلب منك تدفع جزء من تكلفة التدريب، لكن لازم ده يكون مكتوب بوضوح في العقد.'],
['ممكن آخد المرتب بتاعي كله فلوس مباشرة من غير ما يتحط في البنك؟ ولا ده إجباري؟', 'نعم، الضرائب والتأمينات مش داخلة في الحد الأقصى للخصومات (الـ25%)، لأنها إلزامية من الدولة. يعني ممكن المرتب يتخصم منه ضرائب وتأمينات فوق الـ25% حسب القانون.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'بخصوص الاشتراكات، ممكن توضحلي مين بيدفع كام؟ يعني العامل بيساهم بقد إيه وصاحب الشغل بيكمل الباقي؟',
[
'أيوه، العامل له الحق يرفض التغييرات اللي بتضره، خصوصًا لو كانت في مواعيد الشغل، الراتب، أو طبيعة العمل. ولو صاحب العمل أصر، العامل يقدر يلجأ لمكتب العمل أو المحكمة المختصة.',
'أيوه، العامل يقدر ياخد المكافأة حتى لو هو اللي قرر يسيب الشغل بعد سن الستين. مش لازم يكون اتفصل، المهم إن خدمته انتهت بعد ما كمل المدة المطلوبة.',
'مدة فترة التجربة في أي عقد ماينفعش تزيد عن 3 شهور، وخلال المدة دي ينفع فسخ العقد من أي طرف بدون تعويض.',
'لو اتفقت مع الشركة كتابيًا إنك تلتزم بفترة معينة بعد التدريب، وسِبت الشغل قبل ما تكمّل المدة دي، ساعتها ممكن الشركة تطلب منك تدفع جزء من تكلفة التدريب، لكن لازم ده يكون مكتوب بوضوح في العقد.',
'نعم، الضرائب والتأمينات مش داخلة في الحد الأقصى للخصومات (الـ25%)، لأنها إلزامية من الدولة. يعني ممكن المرتب يتخصم منه ضرائب وتأمينات فوق الـ25% حسب القانون.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
Training Details
Training Dataset
Unnamed Dataset
- Size: 28,960 training samples
- Columns:
sentence_0,sentence_1, andlabel - Approximate statistics based on the first 1000 samples:
sentence_0 sentence_1 label type string string float details - min: 28 characters
- mean: 110.24 characters
- max: 320 characters
- min: 16 characters
- mean: 141.96 characters
- max: 399 characters
- min: 0.0
- mean: 0.24
- max: 1.0
- Samples:
sentence_0 sentence_1 label بخصوص الاشتراكات، ممكن توضحلي مين بيدفع كام؟ يعني العامل بيساهم بقد إيه وصاحب الشغل بيكمل الباقي؟أيوه، العامل له الحق يرفض التغييرات اللي بتضره، خصوصًا لو كانت في مواعيد الشغل، الراتب، أو طبيعة العمل. ولو صاحب العمل أصر، العامل يقدر يلجأ لمكتب العمل أو المحكمة المختصة.0.0السؤال بالبلدي: الفلوس دي بندفعها للموظف لو قرر يسيب الشغل بعد سن معين، ولا دي بس للناس اللي الشركة بتستغنى عنهم؟أيوه، العامل يقدر ياخد المكافأة حتى لو هو اللي قرر يسيب الشغل بعد سن الستين. مش لازم يكون اتفصل، المهم إن خدمته انتهت بعد ما كمل المدة المطلوبة.1.0لو قررت امشي من الشركة، هل فيه ورق أو تصديق لازم اخده من مكتب العمل عشان اضمن حقي بعد كده؟ (تركيز على الحقوق بعد الاستقالة)مدة فترة التجربة في أي عقد ماينفعش تزيد عن 3 شهور، وخلال المدة دي ينفع فسخ العقد من أي طرف بدون تعويض.0.0 - Loss:
BinaryCrossEntropyLosswith these parameters:{ "activation_fn": "torch.nn.modules.linear.Identity", "pos_weight": null }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 5disable_tqdm: True
All Hyperparameters
Click to expand
overwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 5max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Trueremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters:auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional
Training Logs
| Epoch | Step | Training Loss |
|---|---|---|
| 0.2762 | 500 | 0.5834 |
| 0.5525 | 1000 | 0.2288 |
| 0.8287 | 1500 | 0.1489 |
| 1.1050 | 2000 | 0.1207 |
| 1.3812 | 2500 | 0.1102 |
| 1.6575 | 3000 | 0.0987 |
| 1.9337 | 3500 | 0.0813 |
| 2.2099 | 4000 | 0.0759 |
| 2.4862 | 4500 | 0.0675 |
| 2.7624 | 5000 | 0.0621 |
| 3.0387 | 5500 | 0.0535 |
| 3.3149 | 6000 | 0.0568 |
| 3.5912 | 6500 | 0.0494 |
| 3.8674 | 7000 | 0.0449 |
| 4.1436 | 7500 | 0.0471 |
| 4.4199 | 8000 | 0.0446 |
| 4.6961 | 8500 | 0.0508 |
| 4.9724 | 9000 | 0.0386 |
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",
}