Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use yoriis/NAMAA-retriever-tydi-tafseer-quqa with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("yoriis/NAMAA-retriever-tydi-tafseer-quqa")
sentences = [
"«كذبت قوم لوط المرسلين»\n «إذ قال لهم أخوهم لوط ألا تتقون»\n «إني لكم رسول أمين»\n «فاتقوا الله وأطيعون»\n «وما أسألكم عليه من أجر إن» ما «أجري إلا على رب العالمين»\n «أتأتون الذكران من العالمين» الناس\n «وتذرون ما خلق لكم ربكم من أزواجكم» أي أقبالهن «بل أنتم قوم عادون» متجاوزون الحلال إلى الحرام\n «قالوا لئن لم تنته يا لوط» عن إنكارك علينا «لتكونن من المخرجين» من بلدتنا\n «قال» لوط «إني لعملكم من القالين» المبغضين\n «رب نجني وأهلي مما يعلمون» أي من عذابه\n «فنجيناه وأهله أجمعين»\n «إلا عجوزا» امرأته «في الغابرين» الباقين أهلكناها\n «ثم دمرنا الآخرين» أهلناهم\n «وأمطرنا عليهم مطرا» حجارة من جملة الإهلاك «فساء مطر المنذرين» مطرهم\n «إن في ذلك لآية وما كان أكثرهم مؤمنين»\n «وإن ربك لهو العزيز الرحيم»",
"كذبت قوم لوط المرسلين. إذ قال لهم أخوهم لوط ألا تتقون. إني لكم رسول أمين. فاتقوا الله وأطيعون. وما أسألكم عليه من أجر إن أجري إلا على رب العالمين. أتأتون الذكران من العالمين. وتذرون ما خلق لكم ربكم من أزواجكم بل أنتم قوم عادون. قالوا لئن لم تنته يا لوط لتكونن من المخرجين. قال إني لعملكم من القالين. رب نجني وأهلي مما يعملون. فنجيناه وأهله أجمعين. إلا عجوزا في الغابرين. ثم دمرنا الآخرين. وأمطرنا عليهم مطرا فساء مطر المنذرين. إن في ذلك لآية وما كان أكثرهم مؤمنين. وإن ربك لهو العزيز الرحيم.",
"ولقد خلقنا فوقكم سبع طرائق وما كنا عن الخلق غافلين. وأنزلنا من السماء ماء بقدر فأسكناه في الأرض وإنا على ذهاب به لقادرون. فأنشأنا لكم به جنات من نخيل وأعناب لكم فيها فواكه كثيرة ومنها تأكلون. وشجرة تخرج من طور سيناء تنبت بالدهن وصبغ للآكلين. وإن لكم في الأنعام لعبرة نسقيكم مما في بطونها ولكم فيها منافع كثيرة ومنها تأكلون. وعليها وعلى الفلك تحملون.",
"كذبت قوم نوح المرسلين. إذ قال لهم أخوهم نوح ألا تتقون. إني لكم رسول أمين. فاتقوا الله وأطيعون. وما أسألكم عليه من أجر إن أجري إلا على رب العالمين. فاتقوا الله وأطيعون. قالوا أنؤمن لك واتبعك الأرذلون. قال وما علمي بما كانوا يعملون. إن حسابهم إلا على ربي لو تشعرون. وما أنا بطارد المؤمنين. إن أنا إلا نذير مبين. قالوا لئن لم تنته يا نوح لتكونن من المرجومين. قال رب إن قومي كذبون. فافتح بيني وبينهم فتحا ونجني ومن معي من المؤمنين. فأنجيناه ومن معه في الفلك المشحون. ثم أغرقنا بعد الباقين. إن في ذلك لآية وما كان أكثرهم مؤمنين. وإن ربك لهو العزيز الرحيم."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from yoriis/NAMAA-retriever-tydi. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: ModernBertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("yoriis/NAMAA-retriever-tydi-tafseer-quqa")
# Run inference
sentences = [
'«وممن خلقنا أمة يهدون بالحق وبه يعدلون» هم أمة محمد صلى الله عليه وسلم كما في حديث\n «والذين كذبوا بآياتنا» القرآن من أهل مكة «سنستدرجهم» نأخذهم قليلا قليلا «من حيث لا يعلمون»\n «وأملي لهم» أمهلهم «إن كيدي متين» شديد لا يطاق\n «أو لم يتفكروا» فيعلموا «ما بصاحبهم» محمد صلى الله عليه وسلم «من جنة» جنون «إن» ما «هو إلا نذير مبين» بين الإنذار\n «أو لم ينظروا في ملكوت» ملك «السماوات والأرض و» في «ما خلق الله من شيء» بيان لما فيستدلوا به على قدرة صانعه ووحدانيته «و» في «أن» أي أنه «عسى أن يكون قد اقترب» قرب «أجلهم» فيموتوا كفارا فيصيروا إلى النار فيبادروا إلى الإيمان «فبأي حديث بعده» أي القرآن «يؤمنون»\n «من يضلل الله فلا هادي له ويذرهم» بالياء والنون مع الرفع استئنافا والجزم عطفا على محل ما بعد الفاء «في طغيانهم يعمهون» يترددون تحيرا',
'وإذ أخذنا ميثاقكم ورفعنا فوقكم الطور خذوا ما آتيناكم بقوة واذكروا ما فيه لعلكم تتقون. ثم توليتم من بعد ذلك فلولا فضل الله عليكم ورحمته لكنتم من الخاسرين. ولقد علمتم الذين اعتدوا منكم في السبت فقلنا لهم كونوا قردة خاسئين. فجعلناها نكالا لما بين يديها وما خلفها وموعظة للمتقين.',
'واصبر على ما يقولون واهجرهم هجرا جميلا. وذرني والمكذبين أولي النعمة ومهلهم قليلا. إن لدينا أنكالا وجحيما. وطعاما ذا غصة وعذابا أليما. يوم ترجف الأرض والجبال وكانت الجبال كثيبا مهيلا.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
من رفض تنفيذ المشروع ( أول مرة ) فهو غير مؤهل لتكملة مشروعك، أذكر الآية التي دلت على هذا المعنى؟. |
فإن رجعك الله إلى طائفة منهم فاستأذنوك للخروج فقل لن تخرجوا معي أبدا ولن تقاتلوا معي عدوا إنكم رضيتم بالقعود أول مرة فاقعدوا مع الخالفين{83} التوبة |
1.0 |
ما الآية التي تدل على أن ما أصابك -أيها الإنسان- مِن خير ونعمة فهو من الله تعالى وحده, فضلا وإحسانًا, وما أصابك من جهد وشدة فبسبب عملك السيئ ؟ |
قال فإنا قد فتنا قومك من بعدك وأضلهم السامري{85} طه |
0.0 |
ما هو الشرك الأكبر؟ |
وإذ قلنا ادخلوا هـذه القرية فكلوا منها حيث شئتم رغدا وادخلوا الباب سجدا وقولوا حطة نغفر لكم خطاياكم وسنزيد المحسنين{58} فبدل الذين ظلموا قولا غير الذي قيل لهم فأنزلنا على الذين ظلموا رجزا من السماء بما كانوا يفسقون{59}البقرة.. |
0.0 |
ContrastiveLoss with these parameters:{
"distance_metric": "SiameseDistanceMetric.COSINE_DISTANCE",
"margin": 0.5,
"size_average": true
}
per_device_train_batch_size: 4per_device_eval_batch_size: 4fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 4per_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: 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: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.1975 | 500 | 0.0025 |
| 0.3949 | 1000 | 0.0003 |
| 0.5924 | 1500 | 0.0002 |
| 0.7899 | 2000 | 0.0002 |
| 0.9874 | 2500 | 0.0002 |
| 1.1848 | 3000 | 0.0001 |
| 1.3823 | 3500 | 0.0001 |
| 1.5798 | 4000 | 0.0001 |
| 1.7773 | 4500 | 0.0 |
| 1.9747 | 5000 | 0.0 |
| 2.1722 | 5500 | 0.0 |
| 2.3697 | 6000 | 0.0 |
| 2.5671 | 6500 | 0.0 |
| 2.7646 | 7000 | 0.0 |
| 2.9621 | 7500 | 0.0 |
| 0.1484 | 500 | 0.0143 |
| 0.2968 | 1000 | 0.013 |
| 0.4452 | 1500 | 0.0117 |
| 0.5936 | 2000 | 0.0106 |
| 0.7421 | 2500 | 0.0109 |
| 0.8905 | 3000 | 0.01 |
| 1.0389 | 3500 | 0.009 |
| 1.1873 | 4000 | 0.005 |
| 1.3357 | 4500 | 0.0048 |
| 1.4841 | 5000 | 0.0054 |
| 1.6325 | 5500 | 0.0047 |
| 1.7809 | 6000 | 0.0049 |
| 1.9294 | 6500 | 0.0051 |
| 2.0778 | 7000 | 0.0035 |
| 2.2262 | 7500 | 0.0021 |
| 2.3746 | 8000 | 0.0021 |
| 2.5230 | 8500 | 0.0023 |
| 2.6714 | 9000 | 0.0023 |
| 2.8198 | 9500 | 0.0022 |
| 2.9682 | 10000 | 0.0022 |
@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",
}
@inproceedings{hadsell2006dimensionality,
author={Hadsell, R. and Chopra, S. and LeCun, Y.},
booktitle={2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06)},
title={Dimensionality Reduction by Learning an Invariant Mapping},
year={2006},
volume={2},
number={},
pages={1735-1742},
doi={10.1109/CVPR.2006.100}
}
Base model
NAMAA-Space/AraModernBert-Base-V1.0