SentenceTransformer based on google-bert/bert-base-multilingual-cased
This is a sentence-transformers model finetuned from google-bert/bert-base-multilingual-cased on the all-nli-pair, all-nli-pair-class, all-nli-pair-score, all-nli-triplet, stsb and quora datasets. 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.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: google-bert/bert-base-multilingual-cased
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 768 tokens
- Similarity Function: Cosine Similarity
- Training Datasets:
- Language: ar
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
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})
)
Usage
Direct Usage (Sentence Transformers)
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("Omartificial-Intelligence-Space/Arabic-base-all-nli-stsb-quora")
# Run inference
sentences = [
'ما هي الدروس التي يمكن أن نتعلمها من أدولف هتلر؟',
'ما هي الدروس التي يمكن أن نتعلمها من أدولف هتلر؟',
'ما مدى قربنا من الحرب العالمية؟',
]
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]
Training Details
Training Datasets
all-nli-pair
- Dataset: all-nli-pair
- Size: 314,315 training samples
- Columns: anchor and positive
- Approximate statistics based on the first 1000 samples:
anchor positive type string string details min: 6 tokensmean: 24.43 tokensmax: 88 tokens min: 4 tokensmean: 11.73 tokensmax: 45 tokens - Samples:
anchor positive شخص على حصان يقفز فوق طائرة معطلة شخص في الهواء الطلق، على حصان. أطفال يبتسمون و يلوحون للكاميرا هناك أطفال حاضرون صبي يقفز على لوح التزلج في منتصف الجسر الأحمر. الفتى يقوم بخدعة التزلج - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim" }
all-nli-pair-class
- Dataset: all-nli-pair-class
- Size: 942,069 training samples
- Columns: premise, hypothesis, and label
- Approximate statistics based on the first 1000 samples:
premise hypothesis label type string string int details min: 8 tokensmean: 24.78 tokensmax: 72 tokens min: 4 tokensmean: 13.55 tokensmax: 55 tokens 0: ~33.40%1: ~33.30%2: ~33.30% - Samples:
premise hypothesis label شخص على حصان يقفز فوق طائرة معطلة شخص يقوم بتدريب حصانه للمنافسة 1 شخص على حصان يقفز فوق طائرة معطلة شخص في مطعم، يطلب عجة. 2 شخص على حصان يقفز فوق طائرة معطلة شخص في الهواء الطلق، على حصان. 0 - Loss: SoftmaxLoss
all-nli-pair-score
- Dataset: all-nli-pair-score
- Size: 942,069 training samples
- Columns: sentence1, sentence2, and score
- Approximate statistics based on the first 1000 samples:
sentence1 sentence2 score type string string float details min: 8 tokensmean: 24.78 tokensmax: 72 tokens min: 4 tokensmean: 13.55 tokensmax: 55 tokens min: 0.0mean: 0.5max: 1.0 - Samples:
sentence1 sentence2 score شخص على حصان يقفز فوق طائرة معطلة شخص يقوم بتدريب حصانه للمنافسة 0.5 شخص على حصان يقفز فوق طائرة معطلة شخص في مطعم، يطلب عجة. 0.0 شخص على حصان يقفز فوق طائرة معطلة شخص في الهواء الطلق، على حصان. 1.0 - Loss: CoSENTLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "pairwise_cos_sim" }
all-nli-triplet
- Dataset: all-nli-triplet
- Size: 557,850 training samples
- Columns: anchor, positive, and negative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details min: 6 tokensmean: 12.54 tokensmax: 72 tokens min: 6 tokensmean: 16.06 tokensmax: 59 tokens min: 6 tokensmean: 18.13 tokensmax: 70 tokens - Samples:
anchor positive negative شخص على حصان يقفز فوق طائرة معطلة شخص في الهواء الطلق، على حصان. شخص في مطعم، يطلب عجة. أطفال يبتسمون و يلوحون للكاميرا هناك أطفال حاضرون الاطفال يتجهمون صبي يقفز على لوح التزلج في منتصف الجسر الأحمر. الفتى يقوم بخدعة التزلج الصبي يتزلج على الرصيف - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim" }
stsb
- Dataset: stsb at 7c6c4bd
- Size: 5,749 training samples
- Columns: sentence1, sentence2, and score
- Approximate statistics based on the first 1000 samples:
sentence1 sentence2 score type string string float details min: 5 tokensmean: 11.68 tokensmax: 34 tokens min: 5 tokensmean: 11.44 tokensmax: 31 tokens min: 0.0mean: 0.54max: 1.0 - Samples:
sentence1 sentence2 score طائرة ستقلع طائرة جوية ستقلع 1.0 رجل يعزف على ناي كبير رجل يعزف على الناي. 0.76 رجل ينشر الجبن الممزق على البيتزا رجل ينشر الجبن الممزق على بيتزا غير مطبوخة 0.76 - Loss: CoSENTLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "pairwise_cos_sim" }
quora
- Dataset: quora at 7d49308
- Size: 10,000 training samples
- Columns: anchor and positive
- Approximate statistics based on the first 1000 samples:
anchor positive type string string details min: 7 tokensmean: 19.69 tokensmax: 58 tokens min: 6 tokensmean: 20.15 tokensmax: 73 tokens - Samples:
anchor positive علم التنجيم: أنا برج الجدي الشمس القمر والقبعة الشمسية... أنا برج الجدي الثلاثي (الشمس والقمر والصعود في برج الجدي) ماذا يقول هذا عني؟ كيف أكون جيولوجياً جيداً؟ ماذا علي أن أفعل لأكون جيولوجياً عظيماً؟ كيف أقرأ وأجد تعليقاتي على يوتيوب؟ كيف يمكنني رؤية كل تعليقاتي على اليوتيوب؟ - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim" }
Evaluation Datasets
all-nli-triplet
- Dataset: all-nli-triplet
- Size: 6,584 evaluation samples
- Columns: anchor, positive, and negative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details min: 5 tokensmean: 25.81 tokensmax: 125 tokens min: 4 tokensmean: 12.09 tokensmax: 52 tokens min: 5 tokensmean: 13.35 tokensmax: 42 tokens - Samples:
anchor positive negative امرأتان يتعانقان بينما يحملان حزمة إمرأتان يحملان حزمة الرجال يتشاجرون خارج مطعم طفلين صغيرين يرتديان قميصاً أزرق، أحدهما يرتدي الرقم 9 والآخر يرتدي الرقم 2 يقفان على خطوات خشبية في الحمام ويغسلان أيديهما في المغسلة. طفلين يرتديان قميصاً مرقماً يغسلون أيديهم طفلين يرتديان سترة يذهبان إلى المدرسة رجل يبيع الدونات لعميل خلال معرض عالمي أقيم في مدينة أنجليس رجل يبيع الدونات لعميل امرأة تشرب قهوتها في مقهى صغير - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim" }
stsb
- Dataset: stsb at 7c6c4bd
- Size: 1,500 evaluation samples
- Columns: sentence1, sentence2, and score
- Approximate statistics based on the first 1000 samples:
sentence1 sentence2 score type string string float details min: 5 tokensmean: 20.19 tokensmax: 53 tokens min: 5 tokensmean: 20.09 tokensmax: 54 tokens min: 0.0mean: 0.47max: 1.0 - Samples:
sentence1 sentence2 score رجل يرتدي قبعة صلبة يرقص رجل يرتدي قبعة صلبة يرقص. 1.0 طفل صغير يركب حصاناً. طفل يركب حصاناً. 0.95 رجل يطعم فأراً لأفعى الرجل يطعم الفأر للثعبان. 1.0 - Loss: CoSENTLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "pairwise_cos_sim" }
quora
- Dataset: quora at 7d49308
- Size: 1,000 evaluation samples
- Columns: anchor and positive
- Approximate statistics based on the first 1000 samples:
anchor positive type string string details min: 7 tokensmean: 19.66 tokensmax: 73 tokens min: 8 tokensmean: 20.17 tokensmax: 96 tokens - Samples:
anchor positive ما هو قرارك في السنة الجديدة؟ ما الذي يمكن أن يكون قراري للعام الجديد لعام 2017؟ هل يجب أن أشتري هاتف آيفون 6 أو سامسونج غالاكسي إس 7؟ أيهما أفضل: الـ iPhone 6S Plus أو الـ Samsung Galaxy S7 Edge؟ ما هي الاختلافات بين التجاوز والتراجع؟ ما الفرق بين التجاوز والتراجع؟ - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim" }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 128num_train_epochs: 1warmup_ratio: 0.1
All Hyperparameters
overwrite_output_dir: Falsedo_predict: Falseprediction_loss_only: Trueper_device_train_batch_size: 128per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 1max_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: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: 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: 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, '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: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_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: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional
Training Logs
| Epoch | Step | Training Loss |
|---|---|---|
| 0.0231 | 500 | 5.0061 |
| 0.0462 | 1000 | 4.7876 |
| 0.0693 | 1500 | 4.6618 |
| 0.0923 | 2000 | 4.7337 |
| 0.1154 | 2500 | 4.5945 |
| 0.1385 | 3000 | 4.7536 |
| 0.1616 | 3500 | 4.619 |
| 0.1847 | 4000 | 4.4761 |
| 0.2078 | 4500 | 4.4454 |
| 0.2309 | 5000 | 4.6376 |
| 0.2539 | 5500 | 4.5513 |
| 0.2770 | 6000 | 4.5619 |
| 0.3001 | 6500 | 4.3416 |
| 0.3232 | 7000 | 4.7372 |
| 0.3463 | 7500 | 4.5906 |
| 0.3694 | 8000 | 4.6546 |
| 0.3924 | 8500 | 4.2452 |
| 0.4155 | 9000 | 4.684 |
| 0.4386 | 9500 | 4.426 |
| 0.4617 | 10000 | 4.2539 |
| 0.4848 | 10500 | 4.3224 |
| 0.5079 | 11000 | 4.4046 |
| 0.5310 | 11500 | 4.4644 |
| 0.5540 | 12000 | 4.4542 |
| 0.5771 | 12500 | 4.6026 |
| 0.6002 | 13000 | 4.3519 |
| 0.6233 | 13500 | 4.5135 |
| 0.6464 | 14000 | 4.3318 |
| 0.6695 | 14500 | 4.4465 |
| 0.6926 | 15000 | 3.9692 |
| 0.7156 | 15500 | 4.2084 |
| 0.7387 | 16000 | 4.2217 |
| 0.7618 | 16500 | 4.2791 |
| 0.7849 | 17000 | 4.5962 |
| 0.8080 | 17500 | 4.5871 |
| 0.8311 | 18000 | 4.3271 |
| 0.8541 | 18500 | 4.1688 |
| 0.8772 | 19000 | 4.2081 |
| 0.9003 | 19500 | 4.2867 |
| 0.9234 | 20000 | 4.5474 |
| 0.9465 | 20500 | 4.5257 |
| 0.9696 | 21000 | 3.8461 |
| 0.9927 | 21500 | 4.1254 |
Framework Versions
- Python: 3.9.18
- Sentence Transformers: 3.0.1
- Transformers: 4.40.0
- PyTorch: 2.2.2+cu121
- Accelerate: 0.26.1
- Datasets: 2.19.0
- Tokenizers: 0.19.1
Citation
BibTeX
Sentence Transformers and SoftmaxLoss
@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",
}
MultipleNegativesRankingLoss
@misc{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
CoSENTLoss
@online{kexuefm-8847,
title={CoSENT: A more efficient sentence vector scheme than Sentence-BERT},
author={Su Jianlin},
year={2022},
month={Jan},
url={https://kexue.fm/archives/8847},
}