Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use yoriis/GTE-tydi-tafseer-quqa-haqa-task with sentence-transformers:
from sentence_transformers import CrossEncoder
model = CrossEncoder("yoriis/GTE-tydi-tafseer-quqa-haqa-task")
query = "Which planet is known as the Red Planet?"
passages = [
"Venus is often called Earth's twin because of its similar size and proximity.",
"Mars, known for its reddish appearance, is often referred to as the Red Planet.",
"Jupiter, the largest planet in our solar system, has a prominent red spot.",
"Saturn, famous for its rings, is sometimes mistaken for the Red Planet."
]
scores = model.predict([(query, passage) for passage in passages])
print(scores)This is a Cross Encoder model finetuned from yoriis/GTE-tydi-tafseer-quqa-haqa 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/GTE-tydi-tafseer-quqa-haqa-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.9462 |
| accuracy_threshold | 0.0851 |
| f1 | 0.96 |
| f1_threshold | 0.0851 |
| precision | 0.9449 |
| recall | 0.9756 |
| average_precision | 0.9879 |
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: stepsnum_train_epochs: 4fp16: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_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: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | eval_average_precision |
|---|---|---|---|
| 1.0 | 210 | - | 0.9833 |
| 2.0 | 420 | - | 0.9870 |
| 2.3810 | 500 | 0.343 | 0.9878 |
| 3.0 | 630 | - | 0.9878 |
| 4.0 | 840 | - | 0.9879 |
@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-arabertv02