Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use yoriis/BGE-M3-QUQA-cosine with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("yoriis/BGE-M3-QUQA-cosine")
sentences = [
"متى تم اغتيال شكري بالعيد؟",
"كان إنريكو فيرمي أول من قام بتصويب النيوترونات على اليورانيوم عام 1934 ولكنه لم ينجح في تفسير النتائج. وقام العالم الكيميائي الألماني أوتو هان وزميلته ليز مايتنر وزميلهما فريتز شتراسمان بتلك الأبحاث وقاموا بتحليل المواد الناتجة عن التفاعل. وكانت مفاجأة لم يستطيعوا تفسيرها أولاً، إذ أنهم وجدوا عناصر جديدة تكونت من خلال التفاعل. وكان أن أعادوا التجربة باستخدام يورانيوم عالي النقاء، فكانت النتيجة هي ما وجدوه من قبل وتكوّن عنصر الباريوم. والعدد الذري للباريوم نصف العدد الذري لليورانيوم تقريباً. كان ذلك عام 1938 وبعدها بدأت الحرب العالمية الثانية واضطرت ليزا مايتنر إلى مغادرة ألمانيا نظراً لاضطهاد النازية لليهود. وسافرت ليزا إلى السويد حيث كان أحد أقربائها يعمل هناك وهو روبرت فريتش. وقصت عليه نتائج تجربة اليورانيوم.",
"ولاية سيدي بوزيد هي إحدى ولايات الجمهورية التونسية الـ24 من سنة1973, مساحتها 6994 كم مربع. وبلغ عدد سكان الولاية 912 429 ساكن حسب إحصائيات رسمية لسنة 2014[1], بها 12 معتمدية أكبرها سيدي بوزيد الغربية وسيدي بوزيد الشرقية والمكناسي والرقاب وجلمة والمزونة، هي ولاية فلاحية من أهم إنتاجها الخضر وزيت الزيتون. مركز الولاية مدينة سيدي بوزيد.",
"في ديسمبر 1800 أعلن جورج أوستن على غير توقع قرار تقاعده من عمله ككاهن، وغادر ستيفنتون وانتقل بالعائلة إلى باث. على الرغم من أن قرار التقاعد والسفر جيدًا للأشقاء الكبار، صدمت جين لمعرفتها أنها ستغادر المنزل الوحيد الذي طالما عرفته.[53] عدم قدرتها على الإنتاج كان دلالة على ارتباك عقلها عندما عاشت في باث. قامت ببعض المراجعات لرواية \"سوزان\"، وبدأت ثم ترطت رواية جديدة تدعى \"آل واتسون\" ، لكن لم يكن هناك ما يضاهي الإنتاج المثمر ما بين 1795 و1799.[54] اقترحت تومالين أن ذلك يعكس اكتئابًا عميقًا يعجزها ككاتبة. عارضها هونان وقال أن أوستن كتبت أو راجعت كتاباتها الخام طوال حياتها ماعدا بضعة أشهر عقب وفاة والدها.[55]"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from omarelshehy/Arabic-Retrieval-v1.0. 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: BertModel
(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/BGE-M3-QUQA-cosine")
# Run inference
sentences = [
'متى ولد زين الدين زيدان ؟',
'الدرفلة هي عملية صناعية تعتبر إحدى طرق تشكيل المعادن. وتعتمد فكرتها على تمرير المعدن على البارد أو الساخن عبر أجسام أسطوانية ثقيلة وذات صلادة عالية (تسمى الدرافيل) وذلك بهدف تقليل سمك الصفائح أو قطر القضبان.[1][2]',
'هو أبو عبد الله حمود عقلا الشعيبي (ولد عام 1346هـ - توفي عام 1422 هـ) اسمه بالكامل حمود بن عبد الله بن عقلاء بن محمد بن علي بن عقلاء الشعيبي الخالدي من آل جناح من بني خالد ولد في بلدة الشقة من أعمال القصيم، نشأ في بيت دين وكرم فلما كان عمره ست سنوات التحق بالكتّاب فتعلم القراءة والكتابة والحساب، وفي عام 1352 هـ أصيب الشعيبي بمرض الجدري مما أدى إلى فقده بصره، وقد حرص عليه والده منذ نعومة أظفاره وكان والده عبد الله صاحب زراعة وفلاحة فتعلم الشعيبي منه مع فقده لبصره الزراعة والسقي وغيرها.',
]
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 |
CosineSimilarityLoss with these parameters:{
"loss_fct": "torch.nn.modules.loss.MSELoss"
}
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.0848 | 500 | 0.0371 |
| 0.1695 | 1000 | 0.0317 |
| 0.2543 | 1500 | 0.0302 |
| 0.3391 | 2000 | 0.0304 |
| 0.4239 | 2500 | 0.0295 |
| 0.5086 | 3000 | 0.0263 |
| 0.5934 | 3500 | 0.0271 |
| 0.6782 | 4000 | 0.0278 |
| 0.7630 | 4500 | 0.0263 |
| 0.8477 | 5000 | 0.0271 |
| 0.9325 | 5500 | 0.0253 |
| 1.0173 | 6000 | 0.022 |
| 1.1021 | 6500 | 0.0085 |
| 1.1868 | 7000 | 0.0115 |
| 1.2716 | 7500 | 0.0127 |
| 1.3564 | 8000 | 0.0111 |
| 1.4412 | 8500 | 0.011 |
| 1.5259 | 9000 | 0.0124 |
| 1.6107 | 9500 | 0.0116 |
| 1.6955 | 10000 | 0.0112 |
| 1.7803 | 10500 | 0.0131 |
| 1.8650 | 11000 | 0.0127 |
| 1.9498 | 11500 | 0.011 |
| 2.0346 | 12000 | 0.0094 |
| 2.1194 | 12500 | 0.0051 |
| 2.2041 | 13000 | 0.0042 |
| 2.2889 | 13500 | 0.0044 |
| 2.3737 | 14000 | 0.0048 |
| 2.4585 | 14500 | 0.0065 |
| 2.5432 | 15000 | 0.0055 |
| 2.6280 | 15500 | 0.0055 |
| 2.7128 | 16000 | 0.0049 |
| 2.7976 | 16500 | 0.0049 |
| 2.8823 | 17000 | 0.0045 |
| 2.9671 | 17500 | 0.0053 |
| 0.1975 | 500 | 0.0366 |
| 0.3949 | 1000 | 0.0155 |
| 0.5924 | 1500 | 0.0143 |
| 0.7899 | 2000 | 0.012 |
| 0.9874 | 2500 | 0.0119 |
| 1.1848 | 3000 | 0.006 |
| 1.3823 | 3500 | 0.0052 |
| 1.5798 | 4000 | 0.005 |
| 1.7773 | 4500 | 0.0048 |
| 1.9747 | 5000 | 0.0037 |
| 2.1722 | 5500 | 0.0023 |
| 2.3697 | 6000 | 0.0018 |
| 2.5671 | 6500 | 0.0016 |
| 2.7646 | 7000 | 0.0018 |
| 2.9621 | 7500 | 0.0023 |
| 0.1484 | 500 | 0.1158 |
| 0.2968 | 1000 | 0.1153 |
| 0.4452 | 1500 | 0.1063 |
| 0.5936 | 2000 | 0.0976 |
| 0.7421 | 2500 | 0.0971 |
| 0.8905 | 3000 | 0.0985 |
| 1.0389 | 3500 | 0.0885 |
| 1.1873 | 4000 | 0.062 |
| 1.3357 | 4500 | 0.0582 |
| 1.4841 | 5000 | 0.0635 |
| 1.6325 | 5500 | 0.0618 |
| 1.7809 | 6000 | 0.0596 |
| 1.9294 | 6500 | 0.0626 |
| 2.0778 | 7000 | 0.0482 |
| 2.2262 | 7500 | 0.0397 |
| 2.3746 | 8000 | 0.0376 |
| 2.5230 | 8500 | 0.0432 |
| 2.6714 | 9000 | 0.0397 |
| 2.8198 | 9500 | 0.0413 |
| 2.9682 | 10000 | 0.0403 |
@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