|
|
--- |
|
|
tags: |
|
|
- sentence-transformers |
|
|
- cross-encoder |
|
|
- generated_from_trainer |
|
|
- dataset_size:42460 |
|
|
- loss:BinaryCrossEntropyLoss |
|
|
base_model: aubmindlab/bert-base-arabertv02 |
|
|
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 aubmindlab/bert-base-arabertv02 |
|
|
results: |
|
|
- task: |
|
|
type: cross-encoder-classification |
|
|
name: Cross Encoder Classification |
|
|
dataset: |
|
|
name: eval |
|
|
type: eval |
|
|
metrics: |
|
|
- type: accuracy |
|
|
value: 0.9953370072064434 |
|
|
name: Accuracy |
|
|
- type: accuracy_threshold |
|
|
value: 0.939628005027771 |
|
|
name: Accuracy Threshold |
|
|
- type: f1 |
|
|
value: 0.9929936305732484 |
|
|
name: F1 |
|
|
- type: f1_threshold |
|
|
value: 0.9252349138259888 |
|
|
name: F1 Threshold |
|
|
- type: precision |
|
|
value: 0.9948947032546267 |
|
|
name: Precision |
|
|
- type: recall |
|
|
value: 0.9910998092816274 |
|
|
name: Recall |
|
|
- type: average_precision |
|
|
value: 0.9990948433394359 |
|
|
name: Average Precision |
|
|
--- |
|
|
|
|
|
# CrossEncoder based on aubmindlab/bert-base-arabertv02 |
|
|
|
|
|
This is a [Cross Encoder](https://www.sbert.net/docs/cross_encoder/usage/usage.html) model finetuned from [aubmindlab/bert-base-arabertv02](https://huggingface.co/aubmindlab/bert-base-arabertv02) using the [sentence-transformers](https://www.SBERT.net) 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:** [aubmindlab/bert-base-arabertv02](https://huggingface.co/aubmindlab/bert-base-arabertv02) <!-- at revision 016fb9d6768f522a59c6e0d2d5d5d43a4e1bff60 --> |
|
|
- **Maximum Sequence Length:** 512 tokens |
|
|
- **Number of Output Labels:** 1 label |
|
|
<!-- - **Training Dataset:** Unknown --> |
|
|
<!-- - **Language:** Unknown --> |
|
|
<!-- - **License:** Unknown --> |
|
|
|
|
|
### Model Sources |
|
|
|
|
|
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net) |
|
|
- **Documentation:** [Cross Encoder Documentation](https://www.sbert.net/docs/cross_encoder/usage/usage.html) |
|
|
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers) |
|
|
- **Hugging Face:** [Cross Encoders on Hugging Face](https://huggingface.co/models?library=sentence-transformers&other=cross-encoder) |
|
|
|
|
|
## 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 CrossEncoder |
|
|
|
|
|
# Download from the 🤗 Hub |
|
|
model = CrossEncoder("yoriis/checkpoint") |
|
|
# Get scores for pairs of texts |
|
|
pairs = [ |
|
|
['كم عاماً حكم السلطان سليمان القانوني الدولة العثمانية؟', 'شبه جزيرة تامان () هي شبه جزيرة تقع في روسيا في إقليم كراسنودار كراي.'], |
|
|
['من هو عمر الخيام؟', 'الرَّاغِب الأَصْفَهَاني (توفي 502 هـ / 1108 م) هو أديب وعالم، أصله من أصفهان، وعاش ببغداد. ألف عدة كتب في التفسير والأدب والبلاغة.[1]'], |
|
|
['ما هى طريقة توزيع الذيل ؟', 'في الإحصاء والأعمال التجارية ، يمثل الذيل الطويل لبعض توزيعات الأرقام جزءًا من التوزيع بعدد كبير من التواجدات بعيدًا عن "الرأس" أو الجزء المركزي من التوزيع. يمكن أن يتضمن التوزيع شعبية ، وأعدادًا عشوائية لوقائع أحداث ذات احتمالات مختلفة ، إلخ. غالباً ما يستخدم المصطلح بشكل فضفاض ، بدون تعريف أو تعريف تعسفي ، لكن التعاريف الدقيقة ممكنة.'], |
|
|
['أين كانت تقام بطولة كأس العالم المصغرة للأندية؟', 'أُقيم كأس العالم للأندية لأول مرة في 2000 ولم تقم بين 2001 و2004 بسبب انهيار شريكة الفيفا التسويقية. تُقام البطولة كل سنة منذ 2005. استضاف البطولةَ البرازيل واليابان والإمارات والمغرب.'], |
|
|
['كم مدينة تحتوي رومانيا؟', 'ولاية ميلة تقع بالشمال الشرقي الجزائري تحدها شرقا ولاية قسنطينة وغربا ولاية سطيف وولاية جيجل وجنوبا ولاية أم البواقي وولاية باتنة وشمالا ولاية جيجل وولاية سكيكدة تبلغ مساحتها 3,407\xa0كم² بتعداد سكاني قدّر(سنة 2008) بـ: 766,886 نسمة...أما الكثافة السكانية فبلغت 225 نسمة/كم² في نفس السنة.'], |
|
|
] |
|
|
scores = model.predict(pairs) |
|
|
print(scores.shape) |
|
|
# (5,) |
|
|
|
|
|
# Or rank different texts based on similarity to a single text |
|
|
ranks = model.rank( |
|
|
'كم عاماً حكم السلطان سليمان القانوني الدولة العثمانية؟', |
|
|
[ |
|
|
'شبه جزيرة تامان () هي شبه جزيرة تقع في روسيا في إقليم كراسنودار كراي.', |
|
|
'الرَّاغِب الأَصْفَهَاني (توفي 502 هـ / 1108 م) هو أديب وعالم، أصله من أصفهان، وعاش ببغداد. ألف عدة كتب في التفسير والأدب والبلاغة.[1]', |
|
|
'في الإحصاء والأعمال التجارية ، يمثل الذيل الطويل لبعض توزيعات الأرقام جزءًا من التوزيع بعدد كبير من التواجدات بعيدًا عن "الرأس" أو الجزء المركزي من التوزيع. يمكن أن يتضمن التوزيع شعبية ، وأعدادًا عشوائية لوقائع أحداث ذات احتمالات مختلفة ، إلخ. غالباً ما يستخدم المصطلح بشكل فضفاض ، بدون تعريف أو تعريف تعسفي ، لكن التعاريف الدقيقة ممكنة.', |
|
|
'أُقيم كأس العالم للأندية لأول مرة في 2000 ولم تقم بين 2001 و2004 بسبب انهيار شريكة الفيفا التسويقية. تُقام البطولة كل سنة منذ 2005. استضاف البطولةَ البرازيل واليابان والإمارات والمغرب.', |
|
|
'ولاية ميلة تقع بالشمال الشرقي الجزائري تحدها شرقا ولاية قسنطينة وغربا ولاية سطيف وولاية جيجل وجنوبا ولاية أم البواقي وولاية باتنة وشمالا ولاية جيجل وولاية سكيكدة تبلغ مساحتها 3,407\xa0كم² بتعداد سكاني قدّر(سنة 2008) بـ: 766,886 نسمة...أما الكثافة السكانية فبلغت 225 نسمة/كم² في نفس السنة.', |
|
|
] |
|
|
) |
|
|
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...] |
|
|
``` |
|
|
|
|
|
<!-- |
|
|
### 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.* |
|
|
--> |
|
|
|
|
|
## Evaluation |
|
|
|
|
|
### Metrics |
|
|
|
|
|
#### Cross Encoder Classification |
|
|
|
|
|
* Dataset: `eval` |
|
|
* Evaluated with [<code>CrossEncoderClassificationEvaluator</code>](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderClassificationEvaluator) |
|
|
|
|
|
| Metric | Value | |
|
|
|:----------------------|:-----------| |
|
|
| accuracy | 0.9953 | |
|
|
| accuracy_threshold | 0.9396 | |
|
|
| f1 | 0.993 | |
|
|
| f1_threshold | 0.9252 | |
|
|
| precision | 0.9949 | |
|
|
| recall | 0.9911 | |
|
|
| **average_precision** | **0.9991** | |
|
|
|
|
|
<!-- |
|
|
## 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: 42,460 training samples |
|
|
* Columns: <code>sentence_0</code>, <code>sentence_1</code>, and <code>label</code> |
|
|
* Approximate statistics based on the first 1000 samples: |
|
|
| | sentence_0 | sentence_1 | label | |
|
|
|:--------|:-----------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------|:---------------------------------------------------------------| |
|
|
| type | string | string | float | |
|
|
| details | <ul><li>min: 10 characters</li><li>mean: 29.38 characters</li><li>max: 86 characters</li></ul> | <ul><li>min: 42 characters</li><li>mean: 474.79 characters</li><li>max: 3512 characters</li></ul> | <ul><li>min: 0.0</li><li>mean: 0.32</li><li>max: 1.0</li></ul> | |
|
|
* Samples: |
|
|
| sentence_0 | sentence_1 | label | |
|
|
|:--------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------| |
|
|
| <code>كم عاماً حكم السلطان سليمان القانوني الدولة العثمانية؟</code> | <code>شبه جزيرة تامان () هي شبه جزيرة تقع في روسيا في إقليم كراسنودار كراي.</code> | <code>0.0</code> | |
|
|
| <code>من هو عمر الخيام؟</code> | <code>الرَّاغِب الأَصْفَهَاني (توفي 502 هـ / 1108 م) هو أديب وعالم، أصله من أصفهان، وعاش ببغداد. ألف عدة كتب في التفسير والأدب والبلاغة.[1]</code> | <code>0.0</code> | |
|
|
| <code>ما هى طريقة توزيع الذيل ؟</code> | <code>في الإحصاء والأعمال التجارية ، يمثل الذيل الطويل لبعض توزيعات الأرقام جزءًا من التوزيع بعدد كبير من التواجدات بعيدًا عن "الرأس" أو الجزء المركزي من التوزيع. يمكن أن يتضمن التوزيع شعبية ، وأعدادًا عشوائية لوقائع أحداث ذات احتمالات مختلفة ، إلخ. غالباً ما يستخدم المصطلح بشكل فضفاض ، بدون تعريف أو تعريف تعسفي ، لكن التعاريف الدقيقة ممكنة.</code> | <code>1.0</code> | |
|
|
* Loss: [<code>BinaryCrossEntropyLoss</code>](https://sbert.net/docs/package_reference/cross_encoder/losses.html#binarycrossentropyloss) with these parameters: |
|
|
```json |
|
|
{ |
|
|
"activation_fn": "torch.nn.modules.linear.Identity", |
|
|
"pos_weight": null |
|
|
} |
|
|
``` |
|
|
|
|
|
### Training Hyperparameters |
|
|
#### Non-Default Hyperparameters |
|
|
|
|
|
- `eval_strategy`: steps |
|
|
- `per_device_train_batch_size`: 16 |
|
|
- `per_device_eval_batch_size`: 16 |
|
|
- `num_train_epochs`: 4 |
|
|
- `fp16`: True |
|
|
|
|
|
#### All Hyperparameters |
|
|
<details><summary>Click to expand</summary> |
|
|
|
|
|
- `overwrite_output_dir`: False |
|
|
- `do_predict`: False |
|
|
- `eval_strategy`: steps |
|
|
- `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`: 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 |
|
|
|
|
|
</details> |
|
|
|
|
|
### Training Logs |
|
|
| Epoch | Step | Training Loss | eval_average_precision | |
|
|
|:------:|:-----:|:-------------:|:----------------------:| |
|
|
| 0.1884 | 500 | 0.3474 | 0.9981 | |
|
|
| 0.3768 | 1000 | 0.1324 | 0.9988 | |
|
|
| 0.5652 | 1500 | 0.0712 | 0.9984 | |
|
|
| 0.7536 | 2000 | 0.058 | 0.9981 | |
|
|
| 0.9420 | 2500 | 0.0466 | 0.9989 | |
|
|
| 1.0 | 2654 | - | 0.9988 | |
|
|
| 1.1304 | 3000 | 0.0426 | 0.9989 | |
|
|
| 1.3188 | 3500 | 0.0357 | 0.9989 | |
|
|
| 1.5072 | 4000 | 0.0362 | 0.9988 | |
|
|
| 1.6956 | 4500 | 0.0314 | 0.9992 | |
|
|
| 1.8839 | 5000 | 0.0273 | 0.9990 | |
|
|
| 2.0 | 5308 | - | 0.9991 | |
|
|
| 2.0723 | 5500 | 0.0302 | 0.9991 | |
|
|
| 2.2607 | 6000 | 0.0265 | 0.9990 | |
|
|
| 2.4491 | 6500 | 0.0262 | 0.9991 | |
|
|
| 2.6375 | 7000 | 0.0249 | 0.9991 | |
|
|
| 2.8259 | 7500 | 0.0284 | 0.9991 | |
|
|
| 3.0 | 7962 | - | 0.9991 | |
|
|
| 3.0143 | 8000 | 0.0252 | 0.9991 | |
|
|
| 3.2027 | 8500 | 0.023 | 0.9991 | |
|
|
| 3.3911 | 9000 | 0.022 | 0.9991 | |
|
|
| 3.5795 | 9500 | 0.0244 | 0.9991 | |
|
|
| 3.7679 | 10000 | 0.0219 | 0.9991 | |
|
|
| 3.9563 | 10500 | 0.021 | 0.9991 | |
|
|
| 4.0 | 10616 | - | 0.9991 | |
|
|
|
|
|
|
|
|
### 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", |
|
|
} |
|
|
``` |
|
|
|
|
|
<!-- |
|
|
## 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.* |
|
|
--> |