Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
9
This is a Cross Encoder model finetuned from yoriis/ce-final 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/ce-final-task")
# 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': ...}, ...]
evalCrossEncoderClassificationEvaluator| Metric | Value |
|---|---|
| accuracy | 0.9247 |
| accuracy_threshold | 0.6233 |
| f1 | 0.9435 |
| f1_threshold | 0.4821 |
| precision | 0.936 |
| recall | 0.9512 |
| average_precision | 0.9814 |
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
هل ذكر القرآن أوقات نوم معيّنة؟ |
ألم تر إلى ربك كيف مد الظل ولو شاء لجعله ساكنا ثم جعلنا الشمس عليه دليلا. ثم قبضناه إلينا قبضا يسيرا. وهو الذي جعل لكم الليل لباسا والنوم سباتا وجعل النهار نشورا. وهو الذي أرسل الرياح بشرا بين يدي رحمته وأنزلنا من السماء ماء طهورا. لنحيي به بلدة ميتا ونسقيه مما خلقنا أنعاما وأناسي كثيرا. ولقد صرفناه بينهم ليذكروا فأبى أكثر الناس إلا كفورا. ولو شئنا لبعثنا في كل قرية نذيرا. فلا تطع الكافرين وجاهدهم به جهادا كبيرا. وهو الذي مرج البحرين هذا عذب فرات وهذا ملح أجاج وجعل بينهما برزخا وحجرا محجورا. وهو الذي خلق من الماء بشرا فجعله نسبا وصهرا وكان ربك قديرا. ويعبدون من دون الله ما لا ينفعهم ولا يضرهم وكان الكافر على ربه ظهيرا. |
1.0 |
ما الدلائل على أن القرآن أُنزل لجميع الناس أو جميع الأمم والشعوب؟ |
وبالحق أنزلناه وبالحق نزل وما أرسلناك إلا مبشرا ونذيرا. وقرآنا فرقناه لتقرأه على الناس على مكث ونزلناه تنزيلا. قل آمنوا به أو لا تؤمنوا إن الذين أوتوا العلم من قبله إذا يتلى عليهم يخرون للأذقان سجدا. ويقولون سبحان ربنا إن كان وعد ربنا لمفعولا. ويخرون للأذقان يبكون ويزيدهم خشوعا. قل ادعوا الله أو ادعوا الرحمن أيا ما تدعوا فله الأسماء الحسنى ولا تجهر بصلاتك ولا تخافت بها وابتغ بين ذلك سبيلا. وقل الحمد لله الذي لم يتخذ ولدا ولم يكن له شريك في الملك ولم يكن له ولي من الذل وكبره تكبيرا. |
1.0 |
ما هي عقوبة من يتهم المرأة بالزنا بغير دليل؟ |
يا أيها الذين آمنوا إذا جاءكم المؤمنات مهاجرات فامتحنوهن الله أعلم بإيمانهن فإن علمتموهن مؤمنات فلا ترجعوهن إلى الكفار لا هن حل لهم ولا هم يحلون لهن وآتوهم ما أنفقوا ولا جناح عليكم أن تنكحوهن إذا آتيتموهن أجورهن ولا تمسكوا بعصم الكوافر واسألوا ما أنفقتم وليسألوا ما أنفقوا ذلكم حكم الله يحكم بينكم والله عليم حكيم. وإن فاتكم شيء من أزواجكم إلى الكفار فعاقبتم فآتوا الذين ذهبت أزواجهم مثل ما أنفقوا واتقوا الله الذي أنتم به مؤمنون. |
0.0 |
BinaryCrossEntropyLoss with these parameters:{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": null
}
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 4fp16: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_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: 4max_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: Truefp16_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 | eval_average_precision |
|---|---|---|
| 1.0 | 105 | 0.9728 |
| 2.0 | 210 | 0.9801 |
| 3.0 | 315 | 0.9811 |
| 4.0 | 420 | 0.9814 |
@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
yoriis/ce-final