Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use emirhanyac/e5-small-msmarco-tr with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("emirhanyac/e5-small-msmarco-tr")
sentences = [
"query: augusta teknik üniversite kamu",
"passage: Augusta Technical College. Augusta Technical College, Gürcistan'ın doğusunda beş ilçelik bir alanda iş, endüstri ve halkın ihtiyaçlarına hizmet veren Teknik ve Yetişkin Eğitimi Devlet Kurulu gözetiminde faaliyet göstermektedir.",
"passage: Teşekkürler. Sorular 1 ila 2 iş günü içinde cevaplandırılacaktır. Acil bir ihtiyacınız varsa, lütfen 901.333.6500 numaralı telefondan Hayvanat Bahçesi'ni arayın. Kitap raporları, okul projeleri vb. ile ilgili sorularla ilgili olarak, Memphis Hayvanat Bahçesi her e-postaya cevap veremeyeceği gibi, proje vadesi için zamanında bir cevap da veremeyecek.",
"passage: Kablolar olmadan iki kablosuz yönlendiricinin bağlanması, bir ev ağında birçok kullanıma sahiptir. Ev Ethernet için kablolu değilse ve ev ağına bağlanması gereken birkaç cihaz varsa, yönlendiriciyi yönlendirici kablosuz köprüye bağlamak iyi bir fikirdir."
]
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-small on the msmarco-tr dataset. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for retrieval.
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'BertModel'})
(1): Pooling({'embedding_dimension': 384, 'pooling_mode': 'mean', '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("emirhanyac/e5-small-msmarco-tr")
# Run inference
queries = [
'query: Safra kesesi karaciğerin______ marjında bulunur',
]
documents = [
'passage: Karaciğer, karın boşluğunun üst kısmında diyaframın hemen altında bulunur. Karaciğerin büyük bir kısmı sağ kostal marjın altında bulunur ve ayrıca sol hemidiafragma ulaşmak için sola uzanır. Diyafram karaciğeri pleura, akciğerler, perikardiyum ve kalpten ayırır.',
"passage: Jay Gatsby (doğum adı James Gatz), F. Scott Fitzgerald'ın 1925 tarihli romanı The Great Gatsby'nin baş karakteridir. Gatsby, West Egg'deki Gotik bir konakta yaşayan inanılmaz derecede zengin bir genç adamdır.",
'passage: ağaç cerrahisi. n. Budama veya dalları destekleyerek hastalıklı veya hasarlı ağaçların tedavisi. ağaç cerrahı n.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 384] [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.4641, -0.0035, 0.1333]])
msmarco-tr-evalInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.833 |
| cosine_accuracy@3 | 0.914 |
| cosine_accuracy@5 | 0.932 |
| cosine_accuracy@10 | 0.951 |
| cosine_precision@1 | 0.833 |
| cosine_precision@3 | 0.3047 |
| cosine_precision@5 | 0.1864 |
| cosine_precision@10 | 0.0951 |
| cosine_recall@1 | 0.833 |
| cosine_recall@3 | 0.914 |
| cosine_recall@5 | 0.932 |
| cosine_recall@10 | 0.951 |
| cosine_ndcg@10 | 0.8955 |
| cosine_mrr@10 | 0.8773 |
| cosine_map@100 | 0.8786 |
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| modality | text | text |
| details |
|
|
| anchor | positive |
|---|---|
query: asal meridyen arktik daire veya antarktik daireden geçer mi |
passage: Dünya'daki boylamın her meridyeni Antarktika Çemberi, Arktik Çemberi ve Dünya'daki diğer tüm enlem paralellerini geçer. Her ikisine de evet. Asal meridyen bir boylam çizgisidir ve bu nedenle hem Kuzey Kutbu hem de Antarktika çemberlerinden geçer, bunlar latent çizgileridir. |
query: Kaç test şeridi için ilaç ödeyecek |
passage: Gary'ye göre, Medicare tarafından kapsanan test şeritlerinin sayısı, hastanın insülin kullanıp kullanmadığına bağlı olabilir. Bir yararlanıcı insülin kullanırsa, her ay 100 test şeridine ve lancet'a ve her 6 ayda bir lancet cihazına kadar çıkabilir, dedi Gary. |
query: Bir kedinin ortalama ömrü |
passage: Köpeklerin ve Kedilerin Yaşam Beklentisi. Evcil hayvanlarımızın uzun yıllar boyunca hayatımızın bir parçası olacağını umuyoruz, ancak gerçek şu ki, ortalama yaşam beklentisi köpekler için 10-12 yıl ve kediler için 10-14 yıldır. Yaşlı evcil hayvanların çok özel ihtiyaçları vardır ve daha sonraki yıllarda kanser, artrit ve diş hastalıklarına özellikle duyarlıdırlar. |
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: 64num_train_epochs: 1learning_rate: 2e-05warmup_steps: 0.1batch_sampler: no_duplicatesper_device_train_batch_size: 64num_train_epochs: 1max_steps: -1learning_rate: 2e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.1optim: adamw_torch_fusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 8prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: Nonefsdp_config: Nonedeepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | msmarco-tr-eval_cosine_ndcg@10 |
|---|---|---|---|
| -1 | -1 | - | 0.8841 |
| 0.1592 | 25 | 1.3794 | - |
| 0.3185 | 50 | 0.1740 | - |
| 0.4777 | 75 | 0.1527 | - |
| 0.6369 | 100 | 0.1369 | - |
| 0.7962 | 125 | 0.1406 | - |
| 0.9554 | 150 | 0.1435 | - |
| -1 | -1 | - | 0.8955 |
@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-small