Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use bewrkay/multilingual-e5-large-tr-legal with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("bewrkay/multilingual-e5-large-tr-legal")
sentences = [
"query: Onur kırıcı muamele sebebiyle boşanma nedir?",
"passage: Eşlerden birinin diğerine onur kırıcı muamelede bulunması durumunda açılan boşanma davasıdır.",
"passage: Anayasa madde 122'ye göre, sıkıyönetim, savaş hali, seferberlik, ayaklanma veya ülkenin veya milletin varlığına yönelik ağır ve yaygın şiddet hareketleri nedeniyle ilan edilebilir. sıkıyönetim ilan etme yetkisi, cumhurbaşkanının başkanlığında toplanan bakanlar kurulu'na aittir ve resmi gazete'de yayımlanarak yürürlüğe girer. sıkıyönetim süresi altı ayı geçemez, ancak gerektiğinde aynı usulle uzatılabilir. bu hüküm, sıkıyönetim ilan etme yetkisi ve süresini düzenler. devlet, sıkıyönetim ilan etme sürecini düzenlemek ve uygulamakla yükümlüdür.",
"passage: Vergi Usul Kanunu kapsamında suç olarak değerlendirilen eylemler hakkında daha fazla bilgi, Vergi Ziyaı Suçu ve Cezası başlıklı yazıdan alınabilir."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from intfloat/multilingual-e5-large. It maps sentences & paragraphs to a 1024-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': 'XLMRobertaModel'})
(1): Pooling({'word_embedding_dimension': 1024, '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})
(2): Normalize()
)
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("bewrkay/multilingual-e5-large-tr-legal")
# Run inference
sentences = [
'query: Ehliyetsiz ve alkollü araç kullanmanın sonuçları nelerdir?',
'passage: Ehliyetsiz ve alkollü araç kullanmanın sonuçları, her iki fiil için ayrı ayrı idari para cezası verilmesidir.',
'passage: Kullanma zimmeti suçu, kamu görevlisinin kendisine verilen malı geçici bir süre kullanıp iade etme düşüncesiyle uhdesinde tutması durumudur. Bu suçun oluşabilmesi için, failin malı geçici olarak kullanma amacıyla zimmetine geçirdiği ve iade etme imkanına sahip olduğu gözlemlenmelidir.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.9049, 0.0862],
# [0.9049, 1.0000, 0.1353],
# [0.0862, 0.1353, 1.0000]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
query: Anayasa madde 175'e göre, anayasa'nın değiştirilmesinin ihlali hangi durumlarda söz konusu olur |
passage: Anayasa madde 175'e göre, anayasa'nın değiştirilmesinin ihlali, türkiye büyük millet meclisi üyelerinin en az üçte biri tarafından yazılı olarak teklif edilmemesi, meclis üye tam sayısının beşte üç çoğunluğunun gizli oyu ile kabul edilmemesi veya cumhurbaşkanı'nın halkoyuna sunma yetkisinin kullanılmaması durumunda söz konusu olur. devlet, bu tür ihlalleri önlemek ve anayasa'nın değiştirilmesini sağlamakla yükümlüdür. |
passage: Taşınmaz rehni, bir borcun teminatı olarak taşınmazın rehin edilmesidir. taşınmaz rehni, tapu siciline tescil edilerek kurulur. rehin alacaklısı, borç ödenmediği takdirde taşınmazı icra yoluyla sattırarak alacağını tahsil edebilir. rehin işlemi, tarafların anlaşması ve resmi senet düzenlenmesi ile gerçekleşir. |
query: Olağan kullanım dışında meydana gelen zararlar için depozito nasıl kullanılabilir? |
passage: Olağan kullanım dışında meydana gelen bir zarar söz konusuysa, ödenen depozitodan bunun karşılanması sağlanabilecektir. |
passage: Sayıştay'ın denetim raporları, yapılan denetimlerin sonuçlarını, tespit edilen eksiklikleri ve önerileri içerir. raporlar, tbmm'ye sunulmadan önce ilgili kamu idarelerine iletilir. |
query: Banka, depozitonun iadesini hangi durumda gerçekleştirebilir? |
passage: Banka, iki tarafın rızasının bulunduğu durumda depozitonun iadesini gerçekleştirebilir. |
passage: Kanun, senette vade yazılmadığında senedi görüldüğünde vadeli bir senet olarak değerlendirir. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false,
"directions": [
"query_to_doc"
],
"partition_mode": "joint",
"hardness_mode": null,
"hardness_strength": 0.0
}
per_device_train_batch_size: 4per_device_eval_batch_size: 4fp16: Truemulti_dataset_batch_sampler: round_robindo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 4gradient_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: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}accelerator_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: Nonegroup_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: Truepush_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_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_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: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0326 | 500 | 0.1419 |
| 0.0652 | 1000 | 0.0274 |
| 0.0978 | 1500 | 0.0255 |
| 0.1304 | 2000 | 0.0387 |
| 0.1630 | 2500 | 0.0359 |
| 0.1957 | 3000 | 0.0173 |
| 0.2283 | 3500 | 0.0243 |
| 0.2609 | 4000 | 0.0259 |
| 0.2935 | 4500 | 0.0199 |
| 0.3261 | 5000 | 0.0186 |
| 0.3587 | 5500 | 0.0216 |
| 0.3913 | 6000 | 0.0168 |
| 0.4239 | 6500 | 0.0129 |
| 0.4565 | 7000 | 0.0201 |
| 0.4891 | 7500 | 0.0273 |
| 0.5218 | 8000 | 0.0114 |
| 0.5544 | 8500 | 0.0114 |
| 0.5870 | 9000 | 0.0244 |
| 0.6196 | 9500 | 0.0102 |
| 0.6522 | 10000 | 0.0193 |
@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{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}
Base model
intfloat/multilingual-e5-large