Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
12
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-task-70")
# Get scores for pairs of texts
pairs = [
['ما المخلوقات التي تسبح الله؟', 'يا بني آدم إما يأتينكم رسل منكم يقصون عليكم آياتي فمن اتقى وأصلح فلا خوف عليهم ولا هم يحزنون. والذين كذبوا بآياتنا واستكبروا عنها أولئك أصحاب النار هم فيها خالدون. فمن أظلم ممن افترى على الله كذبا أو كذب بآياته أولئك ينالهم نصيبهم من الكتاب حتى إذا جاءتهم رسلنا يتوفونهم قالوا أين ما كنتم تدعون من دون الله قالوا ضلوا عنا وشهدوا على أنفسهم أنهم كانوا كافرين.'],
['اتهم القرآن بأنه السبب في الدكتاتورية الإسلامية لكونه أباح ضرب النساء في حالة النشوز، كيف نرد على ذلك؟', 'إذ قال الله يا عيسى ابن مريم اذكر نعمتي عليك وعلى والدتك إذ أيدتك بروح القدس تكلم الناس في المهد وكهلا وإذ علمتك الكتاب والحكمة والتوراة والإنجيل وإذ تخلق من الطين كهيئة الطير بإذني فتنفخ فيها فتكون طيرا بإذني وتبرئ الأكمه والأبرص بإذني وإذ تخرج الموتى بإذني وإذ كففت بني إسرائيل عنك إذ جئتهم بالبينات فقال الذين كفروا منهم إن هذا إلا سحر مبين. وإذ أوحيت إلى الحواريين أن آمنوا بي وبرسولي قالوا آمنا واشهد بأننا مسلمون.'],
['ما هو الجهاد؟', '[PASSAGE_NOT_FOUND]'],
['هل كان سيدنا يوسف عليه السلام رسولا أم نبيا؟', 'الرجال قوامون على النساء بما فضل الله بعضهم على بعض وبما أنفقوا من أموالهم فالصالحات قانتات حافظات للغيب بما حفظ الله واللاتي تخافون نشوزهن فعظوهن واهجروهن في المضاجع واضربوهن فإن أطعنكم فلا تبغوا عليهن سبيلا إن الله كان عليا كبيرا. وإن خفتم شقاق بينهما فابعثوا حكما من أهله وحكما من أهلها إن يريدا إصلاحا يوفق الله بينهما إن الله كان عليما خبيرا.'],
['ما هي المنافع الصحية لصلاة الفجر؟', 'وقال الله لا تتخذوا إلهين اثنين إنما هو إله واحد فإياي فارهبون. وله ما في السماوات والأرض وله الدين واصبا أفغير الله تتقون. وما بكم من نعمة فمن الله ثم إذا مسكم الضر فإليه تجأرون. ثم إذا كشف الضر عنكم إذا فريق منكم بربهم يشركون. ليكفروا بما آتيناهم فتمتعوا فسوف تعلمون.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'ما المخلوقات التي تسبح الله؟',
[
'يا بني آدم إما يأتينكم رسل منكم يقصون عليكم آياتي فمن اتقى وأصلح فلا خوف عليهم ولا هم يحزنون. والذين كذبوا بآياتنا واستكبروا عنها أولئك أصحاب النار هم فيها خالدون. فمن أظلم ممن افترى على الله كذبا أو كذب بآياته أولئك ينالهم نصيبهم من الكتاب حتى إذا جاءتهم رسلنا يتوفونهم قالوا أين ما كنتم تدعون من دون الله قالوا ضلوا عنا وشهدوا على أنفسهم أنهم كانوا كافرين.',
'إذ قال الله يا عيسى ابن مريم اذكر نعمتي عليك وعلى والدتك إذ أيدتك بروح القدس تكلم الناس في المهد وكهلا وإذ علمتك الكتاب والحكمة والتوراة والإنجيل وإذ تخلق من الطين كهيئة الطير بإذني فتنفخ فيها فتكون طيرا بإذني وتبرئ الأكمه والأبرص بإذني وإذ تخرج الموتى بإذني وإذ كففت بني إسرائيل عنك إذ جئتهم بالبينات فقال الذين كفروا منهم إن هذا إلا سحر مبين. وإذ أوحيت إلى الحواريين أن آمنوا بي وبرسولي قالوا آمنا واشهد بأننا مسلمون.',
'[PASSAGE_NOT_FOUND]',
'الرجال قوامون على النساء بما فضل الله بعضهم على بعض وبما أنفقوا من أموالهم فالصالحات قانتات حافظات للغيب بما حفظ الله واللاتي تخافون نشوزهن فعظوهن واهجروهن في المضاجع واضربوهن فإن أطعنكم فلا تبغوا عليهن سبيلا إن الله كان عليا كبيرا. وإن خفتم شقاق بينهما فابعثوا حكما من أهله وحكما من أهلها إن يريدا إصلاحا يوفق الله بينهما إن الله كان عليما خبيرا.',
'وقال الله لا تتخذوا إلهين اثنين إنما هو إله واحد فإياي فارهبون. وله ما في السماوات والأرض وله الدين واصبا أفغير الله تتقون. وما بكم من نعمة فمن الله ثم إذا مسكم الضر فإليه تجأرون. ثم إذا كشف الضر عنكم إذا فريق منكم بربهم يشركون. ليكفروا بما آتيناهم فتمتعوا فسوف تعلمون.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
evalCrossEncoderClassificationEvaluator| Metric | Value |
|---|---|
| accuracy | 0.9767 |
| accuracy_threshold | 0.6094 |
| f1 | 0.8514 |
| f1_threshold | 0.0804 |
| precision | 0.8413 |
| recall | 0.8618 |
| average_precision | 0.8905 |
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
ما المخلوقات التي تسبح الله؟ |
يا بني آدم إما يأتينكم رسل منكم يقصون عليكم آياتي فمن اتقى وأصلح فلا خوف عليهم ولا هم يحزنون. والذين كذبوا بآياتنا واستكبروا عنها أولئك أصحاب النار هم فيها خالدون. فمن أظلم ممن افترى على الله كذبا أو كذب بآياته أولئك ينالهم نصيبهم من الكتاب حتى إذا جاءتهم رسلنا يتوفونهم قالوا أين ما كنتم تدعون من دون الله قالوا ضلوا عنا وشهدوا على أنفسهم أنهم كانوا كافرين. |
0.0 |
اتهم القرآن بأنه السبب في الدكتاتورية الإسلامية لكونه أباح ضرب النساء في حالة النشوز، كيف نرد على ذلك؟ |
إذ قال الله يا عيسى ابن مريم اذكر نعمتي عليك وعلى والدتك إذ أيدتك بروح القدس تكلم الناس في المهد وكهلا وإذ علمتك الكتاب والحكمة والتوراة والإنجيل وإذ تخلق من الطين كهيئة الطير بإذني فتنفخ فيها فتكون طيرا بإذني وتبرئ الأكمه والأبرص بإذني وإذ تخرج الموتى بإذني وإذ كففت بني إسرائيل عنك إذ جئتهم بالبينات فقال الذين كفروا منهم إن هذا إلا سحر مبين. وإذ أوحيت إلى الحواريين أن آمنوا بي وبرسولي قالوا آمنا واشهد بأننا مسلمون. |
0.0 |
ما هو الجهاد؟ |
[PASSAGE_NOT_FOUND] |
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 |
|---|---|---|---|
| 0.2800 | 500 | 0.181 | 0.8232 |
| 0.5599 | 1000 | 0.1431 | 0.8457 |
| 0.8399 | 1500 | 0.116 | 0.8569 |
| 1.0 | 1786 | - | 0.8621 |
| 1.1198 | 2000 | 0.1187 | 0.8696 |
| 1.3998 | 2500 | 0.1166 | 0.8764 |
| 1.6797 | 3000 | 0.1126 | 0.8871 |
| 1.9597 | 3500 | 0.1155 | 0.8902 |
| 2.0 | 3572 | - | 0.8852 |
| 2.2396 | 4000 | 0.0905 | 0.8877 |
| 2.5196 | 4500 | 0.1201 | 0.8886 |
| 2.7996 | 5000 | 0.0995 | 0.8901 |
| 3.0 | 5358 | - | 0.8898 |
| 3.0795 | 5500 | 0.0836 | 0.8882 |
| 3.3595 | 6000 | 0.0726 | 0.8867 |
| 3.6394 | 6500 | 0.1126 | 0.8919 |
| 3.9194 | 7000 | 0.0827 | 0.8903 |
| 4.0 | 7144 | - | 0.8905 |
@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