Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
This is a Cross Encoder model finetuned from aubmindlab/bert-base-arabertv2 using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.
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/arabert-tydi-quqa-task-ar-v2")
# Get scores for pairs of texts
pairs = [
['هل ذكر القرآن أن التوراة تم تحريفها؟', 'يا أيها الرسول لا يحزنك الذين يسارعون في الكفر من الذين قالوا آمنا بأفواههم ولم تؤمن قلوبهم ومن الذين هادوا سماعون للكذب سماعون لقوم آخرين لم يأتوك يحرفون الكلم من بعد مواضعه يقولون إن أوتيتم هذا فخذوه وإن لم تؤتوه فاحذروا ومن يرد الله فتنته فلن تملك له من الله شيئا أولئك الذين لم يرد الله أن يطهر قلوبهم لهم في الدنيا خزي ولهم في الآخرة عذاب عظيم. سماعون للكذب أكالون للسحت فإن جاءوك فاحكم بينهم أو أعرض عنهم وإن تعرض عنهم فلن يضروك شيئا وإن حكمت فاحكم بينهم بالقسط إن الله يحب المقسطين. وكيف يحكمونك وعندهم التوراة فيها حكم الله ثم يتولون من بعد ذلك وما أولئك بالمؤمنين.'],
['بماذا شبه الله الذي يُتبع الحسنة بالأذى؟', 'فمن أظلم ممن كذب على الله وكذب بالصدق إذ جاءه أليس في جهنم مثوى للكافرين. والذي جاء بالصدق وصدق به أولئك هم المتقون. لهم ما يشاءون عند ربهم ذلك جزاء المحسنين. ليكفر الله عنهم أسوأ الذي عملوا ويجزيهم أجرهم بأحسن الذي كانوا يعملون. أليس الله بكاف عبده ويخوفونك بالذين من دونه ومن يضلل الله فما له من هاد. ومن يهد الله فما له من مضل أليس الله بعزيز ذي انتقام.'],
['هل هناك إشارات في القرآن عن نهاية الكيان الصهيوني؟', 'وهل أتاك حديث موسى. إذ رأى نارا فقال لأهله امكثوا إني آنست نارا لعلي آتيكم منها بقبس أو أجد على النار هدى. فلما أتاها نودي يا موسى. إني أنا ربك فاخلع نعليك إنك بالواد المقدس طوى. وأنا اخترتك فاستمع لما يوحى. إنني أنا الله لا إله إلا أنا فاعبدني وأقم الصلاة لذكري. إن الساعة آتية أكاد أخفيها لتجزى كل نفس بما تسعى. فلا يصدنك عنها من لا يؤمن بها واتبع هواه فتردى.'],
['لماذا حرم الله التبني؟', 'وقالوا هذه أنعام وحرث حجر لا يطعمها إلا من نشاء بزعمهم وأنعام حرمت ظهورها وأنعام لا يذكرون اسم الله عليها افتراء عليه سيجزيهم بما كانوا يفترون. وقالوا ما في بطون هذه الأنعام خالصة لذكورنا ومحرم على أزواجنا وإن يكن ميتة فهم فيه شركاء سيجزيهم وصفهم إنه حكيم عليم. قد خسر الذين قتلوا أولادهم سفها بغير علم وحرموا ما رزقهم الله افتراء على الله قد ضلوا وما كانوا مهتدين.'],
['مقاتلو داعش مثلا أو المفسدون في الأرض من التنظيمات الإرهابية، يتوضؤون أيضا، فهل هذا يجعلهم أطهارا؟', 'كيف يكون للمشركين عهد عند الله وعند رسوله إلا الذين عاهدتم عند المسجد الحرام فما استقاموا لكم فاستقيموا لهم إن الله يحب المتقين. كيف وإن يظهروا عليكم لا يرقبوا فيكم إلا ولا ذمة يرضونكم بأفواههم وتأبى قلوبهم وأكثرهم فاسقون. اشتروا بآيات الله ثمنا قليلا فصدوا عن سبيله إنهم ساء ما كانوا يعملون. لا يرقبون في مؤمن إلا ولا ذمة وأولئك هم المعتدون. فإن تابوا وأقاموا الصلاة وآتوا الزكاة فإخوانكم في الدين ونفصل الآيات لقوم يعلمون.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'هل ذكر القرآن أن التوراة تم تحريفها؟',
[
'يا أيها الرسول لا يحزنك الذين يسارعون في الكفر من الذين قالوا آمنا بأفواههم ولم تؤمن قلوبهم ومن الذين هادوا سماعون للكذب سماعون لقوم آخرين لم يأتوك يحرفون الكلم من بعد مواضعه يقولون إن أوتيتم هذا فخذوه وإن لم تؤتوه فاحذروا ومن يرد الله فتنته فلن تملك له من الله شيئا أولئك الذين لم يرد الله أن يطهر قلوبهم لهم في الدنيا خزي ولهم في الآخرة عذاب عظيم. سماعون للكذب أكالون للسحت فإن جاءوك فاحكم بينهم أو أعرض عنهم وإن تعرض عنهم فلن يضروك شيئا وإن حكمت فاحكم بينهم بالقسط إن الله يحب المقسطين. وكيف يحكمونك وعندهم التوراة فيها حكم الله ثم يتولون من بعد ذلك وما أولئك بالمؤمنين.',
'فمن أظلم ممن كذب على الله وكذب بالصدق إذ جاءه أليس في جهنم مثوى للكافرين. والذي جاء بالصدق وصدق به أولئك هم المتقون. لهم ما يشاءون عند ربهم ذلك جزاء المحسنين. ليكفر الله عنهم أسوأ الذي عملوا ويجزيهم أجرهم بأحسن الذي كانوا يعملون. أليس الله بكاف عبده ويخوفونك بالذين من دونه ومن يضلل الله فما له من هاد. ومن يهد الله فما له من مضل أليس الله بعزيز ذي انتقام.',
'وهل أتاك حديث موسى. إذ رأى نارا فقال لأهله امكثوا إني آنست نارا لعلي آتيكم منها بقبس أو أجد على النار هدى. فلما أتاها نودي يا موسى. إني أنا ربك فاخلع نعليك إنك بالواد المقدس طوى. وأنا اخترتك فاستمع لما يوحى. إنني أنا الله لا إله إلا أنا فاعبدني وأقم الصلاة لذكري. إن الساعة آتية أكاد أخفيها لتجزى كل نفس بما تسعى. فلا يصدنك عنها من لا يؤمن بها واتبع هواه فتردى.',
'وقالوا هذه أنعام وحرث حجر لا يطعمها إلا من نشاء بزعمهم وأنعام حرمت ظهورها وأنعام لا يذكرون اسم الله عليها افتراء عليه سيجزيهم بما كانوا يفترون. وقالوا ما في بطون هذه الأنعام خالصة لذكورنا ومحرم على أزواجنا وإن يكن ميتة فهم فيه شركاء سيجزيهم وصفهم إنه حكيم عليم. قد خسر الذين قتلوا أولادهم سفها بغير علم وحرموا ما رزقهم الله افتراء على الله قد ضلوا وما كانوا مهتدين.',
'كيف يكون للمشركين عهد عند الله وعند رسوله إلا الذين عاهدتم عند المسجد الحرام فما استقاموا لكم فاستقيموا لهم إن الله يحب المتقين. كيف وإن يظهروا عليكم لا يرقبوا فيكم إلا ولا ذمة يرضونكم بأفواههم وتأبى قلوبهم وأكثرهم فاسقون. اشتروا بآيات الله ثمنا قليلا فصدوا عن سبيله إنهم ساء ما كانوا يعملون. لا يرقبون في مؤمن إلا ولا ذمة وأولئك هم المعتدون. فإن تابوا وأقاموا الصلاة وآتوا الزكاة فإخوانكم في الدين ونفصل الآيات لقوم يعلمون.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
هل ذكر القرآن أن التوراة تم تحريفها؟ |
يا أيها الرسول لا يحزنك الذين يسارعون في الكفر من الذين قالوا آمنا بأفواههم ولم تؤمن قلوبهم ومن الذين هادوا سماعون للكذب سماعون لقوم آخرين لم يأتوك يحرفون الكلم من بعد مواضعه يقولون إن أوتيتم هذا فخذوه وإن لم تؤتوه فاحذروا ومن يرد الله فتنته فلن تملك له من الله شيئا أولئك الذين لم يرد الله أن يطهر قلوبهم لهم في الدنيا خزي ولهم في الآخرة عذاب عظيم. سماعون للكذب أكالون للسحت فإن جاءوك فاحكم بينهم أو أعرض عنهم وإن تعرض عنهم فلن يضروك شيئا وإن حكمت فاحكم بينهم بالقسط إن الله يحب المقسطين. وكيف يحكمونك وعندهم التوراة فيها حكم الله ثم يتولون من بعد ذلك وما أولئك بالمؤمنين. |
1.0 |
بماذا شبه الله الذي يُتبع الحسنة بالأذى؟ |
فمن أظلم ممن كذب على الله وكذب بالصدق إذ جاءه أليس في جهنم مثوى للكافرين. والذي جاء بالصدق وصدق به أولئك هم المتقون. لهم ما يشاءون عند ربهم ذلك جزاء المحسنين. ليكفر الله عنهم أسوأ الذي عملوا ويجزيهم أجرهم بأحسن الذي كانوا يعملون. أليس الله بكاف عبده ويخوفونك بالذين من دونه ومن يضلل الله فما له من هاد. ومن يهد الله فما له من مضل أليس الله بعزيز ذي انتقام. |
0.0 |
هل هناك إشارات في القرآن عن نهاية الكيان الصهيوني؟ |
وهل أتاك حديث موسى. إذ رأى نارا فقال لأهله امكثوا إني آنست نارا لعلي آتيكم منها بقبس أو أجد على النار هدى. فلما أتاها نودي يا موسى. إني أنا ربك فاخلع نعليك إنك بالواد المقدس طوى. وأنا اخترتك فاستمع لما يوحى. إنني أنا الله لا إله إلا أنا فاعبدني وأقم الصلاة لذكري. إن الساعة آتية أكاد أخفيها لتجزى كل نفس بما تسعى. فلا يصدنك عنها من لا يؤمن بها واتبع هواه فتردى. |
0.0 |
BinaryCrossEntropyLoss with these parameters:{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": null
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16overwrite_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: 3max_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: Falseremove_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| Epoch | Step | Training Loss |
|---|---|---|
| 0.5400 | 500 | 0.0274 |
| 1.0799 | 1000 | 0.0003 |
| 1.6199 | 1500 | 0.0001 |
| 2.1598 | 2000 | 0.0001 |
| 2.6998 | 2500 | 0.0001 |
| 0.7418 | 500 | 0.9666 |
| 1.4837 | 1000 | 0.3318 |
| 2.2255 | 1500 | 0.2711 |
| 2.9674 | 2000 | 0.2051 |
| 1.0309 | 500 | 0.3163 |
| 2.0619 | 1000 | 0.2196 |
| 1.0309 | 500 | 0.1761 |
| 2.0619 | 1000 | 0.129 |
@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",
}
Base model
aubmindlab/bert-base-arabertv2