Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use Monad-dz/Arabic-Triplet-Matryoshka-V2-finetuned-keywords with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Monad-dz/Arabic-Triplet-Matryoshka-V2-finetuned-keywords")
sentences = [
"لكن حيث أن القرار المطعون فيه يحمل دليل شرعيته وقانونيته وأنه من المؤكد أنه قد صدر بعد أن أعطيت الكلمة الأخيرة للمتهم وفق ما تنص عليه أحكام المادة 04/431 من قانون الإجراءات الجزائية وعليه كان على الطاعن إن لم يتم هذا الإجراء الجوهري أن يقدم ما يثبت ذلك واعتبارا أنه لم يفعل يتعين رفض هذا الوجه ورفض الطعن معه.",
"دليل كتابي",
"تبديد",
"اغفال"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from Omartificial-Intelligence-Space/Arabic-Triplet-Matryoshka-V2. 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, 'architecture': '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("Monad-dz/Arabic-Triplet-Matryoshka-V2-finetuned-keywords")
# Run inference
sentences = [
'الفرعان الاول والثاني، لارتباطهما وتداخلهما:\nلكن حيث ثابت من القرار المطعون فيه تاسيس القضاة قرارهم على المحضر المؤرخ في 06/06/2011 المتضمن تعيين الطاعن كحارس قضائي على العتاد المرهون من طرف القائم بالتنفيذ بعد جرد العتاد بذلك المحضر, ولئن تم ذلك خلال سريان عقد الايجار الذي ابرمه لفائدة المطعون ضده (ح.ع), على اعتبار مدة نهاية الايجار محددة ليوم 30/06/2011, فمن الثابت بذلك المحضر تواجد الطاعن بالمحل بذلك التاريخ وقع على المحضر وتم تعيينه كحارس قضائي على العتاد المرهون دون اي اعتراض يذكر, جاء بالمحضر: ” عرفناه بصفتنا والغرض من مهمتنا وقمنا فورا بجرد العتاد المرهون, وعينا حارسا عليه السيد (ح.ا)”.\nوحيث الى جانب ذلك اعتمد القضاة على المحضر المؤرخ في 10/08/2011 المتضمن عدم وجود المعدات المرهونة بعد تواجدها من قبل تحت حراسة الطاعن, وبعد حسم القضاء الجزائي في الشكوى الجزائية المقدمة من طرف القرض الشعبي الجزائري ضد المقترض المدين (ح.ع), بتبرئته من تهمة تبديد اموال مرهونة بصفة نهائية, بعد رفض الطعن بالنقض بقرار المحكمة العليا الغرفة الجزائية الصادر بتاريخ 19/01/2017, بسبب عدم تواجدها بحوزته وانما تحت حراسة الطاعن, وتاسيس القضاة قرارهم قانوني, على خلاف مزاعم الطاعن, ومنه الوجه كسابقه غير سديد يرفض, والطعن معا.',
'مسؤولية',
'املاك مرهونة',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, 0.1110, 0.4448],
# [ 0.1110, 1.0000, -0.0038],
# [ 0.4448, -0.0038, 1.0000]])
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
حيث انه من المقرر قانون طبقا للمادة 207 من قانون الاجراءات المدنية و الادارية اذا وﺟـــد ارﺗــــﺒـــﺎط ﺑــــين خصومتين او اكثر معروضة اﻣـﺎم ﻧـﻔس اﻟﻘـﺎﺿي ﺟـﺎز ﻟﻪ ولحسن ﺳـﻴﺮ العدالة ضمها من تلقاء نفسه او بطلب من الخصوم و الفصل فيهما بحكم واحد. |
لجنة التعويض |
تعويض |
حيث انه من المقرر قانون طبقا للمادة 207 من قانون الاجراءات المدنية و الادارية اذا وﺟـــد ارﺗــــﺒـــﺎط ﺑــــين خصومتين او اكثر معروضة اﻣـﺎم ﻧـﻔس اﻟﻘـﺎﺿي ﺟـﺎز ﻟﻪ ولحسن ﺳـﻴﺮ العدالة ضمها من تلقاء نفسه او بطلب من الخصوم و الفصل فيهما بحكم واحد. |
لجنة التعويض |
ضم |
حيث انه من المقرر قانون طبقا للمادة 207 من قانون الاجراءات المدنية و الادارية اذا وﺟـــد ارﺗــــﺒـــﺎط ﺑــــين خصومتين او اكثر معروضة اﻣـﺎم ﻧـﻔس اﻟﻘـﺎﺿي ﺟـﺎز ﻟﻪ ولحسن ﺳـﻴﺮ العدالة ضمها من تلقاء نفسه او بطلب من الخصوم و الفصل فيهما بحكم واحد. |
لجنة التعويض |
رقم |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.COSINE",
"triplet_margin": 0.4
}
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
و بناءا على طعن النائب العام رفضته المحكمة العليا موضوعا بقرارها المؤرخ في 20/03/2019. و اضاف بانه كان يقيم بفرنسا و له راتبا شهريا يقدر بـ 1200 يورو و بسبب ايداعه الحبس من 17/01/2017 الى 10/11/2017 فانه فقد عمله و توقف راتبه لمدة تعادل 33 شهر بما يعادل 42900 يورو. كما تعرض اثناء تواجده بالمؤسسة العقابية لانهيار عصبي و اغمي عليه مرتين . و ان من نتائج متابعته حجز سيارته من تاريخ 08/01/2017 الى غاية 04/06/2019 و قد دفع لادارة الجمارك مبلغ 25000 دج تكاليف المحشر كما دفع مبلغ 112000 دج ثمن تغيير عجلاتها الاربعة و مبلغ 60000 دج اتعاب المحامي الاول الاستاذ مرسلي و مبلغ 20000 دج اتعاب المحامية قرماط حياة.و عليه فانه يلتمس تعويضه مبلغ 6.000.000 دج تعويضا ماديا عن مدة وضعه تحت النظر و الحبس الاحتياطي و مبلغ 8.000.000 دج تعويض عن حرمانه من اجرته و الاضرار اللاحقة باسرته من جراء معانتها بسبب حبس معيلها الوحيد. |
حبس مؤقت غير مبرر |
تعويض مادي |
و بناءا على طعن النائب العام رفضته المحكمة العليا موضوعا بقرارها المؤرخ في 20/03/2019. و اضاف بانه كان يقيم بفرنسا و له راتبا شهريا يقدر بـ 1200 يورو و بسبب ايداعه الحبس من 17/01/2017 الى 10/11/2017 فانه فقد عمله و توقف راتبه لمدة تعادل 33 شهر بما يعادل 42900 يورو. كما تعرض اثناء تواجده بالمؤسسة العقابية لانهيار عصبي و اغمي عليه مرتين . و ان من نتائج متابعته حجز سيارته من تاريخ 08/01/2017 الى غاية 04/06/2019 و قد دفع لادارة الجمارك مبلغ 25000 دج تكاليف المحشر كما دفع مبلغ 112000 دج ثمن تغيير عجلاتها الاربعة و مبلغ 60000 دج اتعاب المحامي الاول الاستاذ مرسلي و مبلغ 20000 دج اتعاب المحامية قرماط حياة.و عليه فانه يلتمس تعويضه مبلغ 6.000.000 دج تعويضا ماديا عن مدة وضعه تحت النظر و الحبس الاحتياطي و مبلغ 8.000.000 دج تعويض عن حرمانه من اجرته و الاضرار اللاحقة باسرته من جراء معانتها بسبب حبس معيلها الوحيد. |
حبس مؤقت غير مبرر |
حبس |
و بناءا على طعن النائب العام رفضته المحكمة العليا موضوعا بقرارها المؤرخ في 20/03/2019. و اضاف بانه كان يقيم بفرنسا و له راتبا شهريا يقدر بـ 1200 يورو و بسبب ايداعه الحبس من 17/01/2017 الى 10/11/2017 فانه فقد عمله و توقف راتبه لمدة تعادل 33 شهر بما يعادل 42900 يورو. كما تعرض اثناء تواجده بالمؤسسة العقابية لانهيار عصبي و اغمي عليه مرتين . و ان من نتائج متابعته حجز سيارته من تاريخ 08/01/2017 الى غاية 04/06/2019 و قد دفع لادارة الجمارك مبلغ 25000 دج تكاليف المحشر كما دفع مبلغ 112000 دج ثمن تغيير عجلاتها الاربعة و مبلغ 60000 دج اتعاب المحامي الاول الاستاذ مرسلي و مبلغ 20000 دج اتعاب المحامية قرماط حياة.و عليه فانه يلتمس تعويضه مبلغ 6.000.000 دج تعويضا ماديا عن مدة وضعه تحت النظر و الحبس الاحتياطي و مبلغ 8.000.000 دج تعويض عن حرمانه من اجرته و الاضرار اللاحقة باسرته من جراء معانتها بسبب حبس معيلها الوحيد. |
حبس مؤقت غير مبرر |
حبس مؤقت |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.COSINE",
"triplet_margin": 0.4
}
eval_strategy: stepsper_device_train_batch_size: 640per_device_eval_batch_size: 256learning_rate: 2e-05num_train_epochs: 13warmup_ratio: 0.1bf16: Trueload_best_model_at_end: Truepush_to_hub: Truehub_model_id: Monad-dz/Arabic-Triplet-Matryoshka-V2-finetuned-keywordsoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 640per_device_eval_batch_size: 256per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 13max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_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: Falsebf16: Truefp16: Falsefp16_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: Trueignore_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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: Trueresume_from_checkpoint: Nonehub_model_id: Monad-dz/Arabic-Triplet-Matryoshka-V2-finetuned-keywordshub_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: noneftune_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: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss |
|---|---|---|---|
| 0.0858 | 200 | 0.366 | 0.3163 |
| 0.1715 | 400 | 0.2585 | 0.1926 |
| 0.2573 | 600 | 0.1777 | 0.1495 |
| 0.3431 | 800 | 0.1472 | 0.1334 |
| 0.4288 | 1000 | 0.1318 | 0.1234 |
| 0.5146 | 1200 | 0.1221 | 0.1177 |
| 0.6003 | 1400 | 0.1135 | 0.1124 |
| 0.6861 | 1600 | 0.1064 | 0.1088 |
| 0.7719 | 1800 | 0.1011 | 0.1055 |
| 0.8576 | 2000 | 0.0952 | 0.1036 |
| 0.9434 | 2200 | 0.0906 | 0.1005 |
| 1.0292 | 2400 | 0.0842 | 0.0998 |
| 1.1149 | 2600 | 0.0789 | 0.0978 |
| 1.2007 | 2800 | 0.0741 | 0.0959 |
@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",
}
@misc{hermans2017defense,
title={In Defense of the Triplet Loss for Person Re-Identification},
author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
year={2017},
eprint={1703.07737},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Base model
aubmindlab/bert-base-arabertv02