Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use zafonair/e5-turkish-base with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("zafonair/e5-turkish-base")
sentences = [
"query: karakterinin gelişimi bu bölümde nasıl",
"passage: morphle morphle ve dev dinozor (2022) morphle'ın değişen güçleri ve mila'nın her gün sınırsız hayal gücüyle en heyecan verici oyunları sizlerle tür: çocuk. içerik türü: episode. yaş sınırı: genel i̇zleyici.",
"passage: klasik yolculuk klasik yolculuk : i̇lyun bürkev (2023) müzik yazarı serhan bali 12 yaşındaki genç piyanist i̇lyun bürkev'i arter'de ağırlıyor ödüllü genç yeteneğin sanat yaşamının kilometre taşlarını anlattığı sıcak sohbet izleyicileri klasik bir yolculuğa çıkarıyor tür: belgesel. içerik türü: episode. yaş sınırı: genel i̇zleyici.",
"passage: yürüyerek gel 4. bölüm - eyüpsultan (2024) \"şehirler en güzel yürüyerek keşfedilir\" diyen gizem erman soysaldı'nın rotasında bu bölüm \"eyüpsultan\" var… santral i̇stanbul'dan yürüyüşüne başlayan soysaldı haliç adaları pierre loti cülus yolu ve eyüp sultan camii'ni ziyaret ettikten sonra eyüp sultan tepesi'nde konuğu oyuncu ahmet kürşat öçalan ile buluşuyor tür: yaşam. içerik türü: episode. yaş sınırı: genel i̇zleyici."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model trained. 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': 256, '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("zafonair/e5-turkish-base")
# Run inference
sentences = [
'query: yabancı dizi,drama temalı özel bölümleri listele',
"passage: marry kills people - s1 2. stix nehri (2016) mary, joel'in kimliğiyle ilgili gerçeği öğrendiğinde, polis tarafından yakalanmaktan kaçınmak için hemen bir plan yapar. tür: yabancı dizi,drama. oyuncular: caroline dhavernas,richard short,jay ryan. içerik türü: episode. yaş sınırı: 18+.",
"passage: morphle nurs morphle nurs - s1 (2022) morphle'ın değişen güçleri ve mila'nın her gün sınırsız hayal gücüyle en heyecan verici oyun randevusunuzu kaçırmayın tür: çocuk. içerik türü: season. yaş sınırı: genel i̇zleyici.",
]
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.5846, -0.2100],
# [ 0.5846, 1.0000, -0.1384],
# [-0.2100, -0.1384, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
query: craigin krallığı 11. bölüm dizisinin 2018 tarihli bölümü hakkında bilgi |
passage: craigin krallığı 11. bölüm (2018) craig'in krallığına hoş geldiniz burada istediğiniz oyunu oynayabilir ve istediğiniz kişi olabilirsiniz craig'in krallığı'nda maceraya siz de katılın tür: çocuk. içerik türü: episode. yaş sınırı: 7+. |
query: şefin akşam menüsü 3. bölüm dizisinin bu bölümünde yaşam ögeleri öne çıkıyor mu |
passage: şefin akşam menüsü 3. bölüm (2020) mutfakta lezzetli bir oyuna hazır mısınız birbirinden seçkin şefler bu kez özel reçetelerini ve zaman kazandıran mutfak tüyolarını "şeflerden akşam menüsü"nde paylaşıyor tür: yaşam. içerik türü: episode. yaş sınırı: genel i̇zleyici. |
query: dizi temalı özel bölümleri listele |
passage: yeşilçam 10. bölüm (2021) annesinin cenazesini kaçıran semih naki'nin eline düşmüştür aynı durumdaki mine için de tek bir çıkar yol vardır niyazi ekrem ve diğerlerini durdurmak stüdyonun açılışı için düzenlenen davette büyük ateş filme önemli bir iş düşecektir tür: dizi. oyuncular: afra saraçoğlu, bora akkaş, çağatay ulusoy, selin kahraman, selin şekerci. içerik türü: episode. yaş sınırı: 13+. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 128per_device_eval_batch_size: 128num_train_epochs: 4multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 128per_device_eval_batch_size: 128per_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: 4max_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: 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, '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: 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: 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: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 2.7027 | 500 | 0.8923 |
@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{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}
}