Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use meet5568/bhash_finetune_phaseB with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("meet5568/bhash_finetune_phaseB")
sentences = [
"Hey, hey\nक्या ऐसा ज़िंदगी में है कोई जिसे तुम अपना कहोगे?\nमुझे भी ऐसा लगता है, क्या होगा कोई मेरे लिए कहीं पे?\nदिल कह रहा; \"मिलेगी नज़र दिल खो के\"\nहाँ, दिल कह रहा; \"मिलेगी नज़र दिल खो के\"\nऐसा लगे हर रास्ता गुज़र रहा बस तेरी गली से हो के\nऐसा लगे हर रास्ता गुज़र रहा बस तेरी गली से हो के\nदिल कह रहा; \"मिलेगी नज़र दिल खो के\"\nकरूँ वही जो मन कहे, कहे मन तुझसे बातें करूँ\nढूँढूँ तुम्हें उन्हीं राहों पे, अब उस राह पे ही चलूँ\nआरज़ू हैं हज़ारों यहाँ, मैं और तू ढूँढें अब अपना जहाँ\nमिली है नज़र अगर, हम क्यूँ उनको रोकें?\nदिल कह रहा; \"मिलेगी नज़र दिल खो के\"\nखुद पे मैं फ़िदा तो हूँ, करूँ मैं जो मर्ज़ी मेरी\nहो जाए अगर तू मुझ पे फ़िदा तो बात बनेगी कहीं\nरू-ब-रू हम एक-दूसरे से यहाँ\nमैं और तू, हो ख्वाहिशें बेइंतहा\nमैं और तुम हो अपनी जगह अनोखे\nपर दिल कह रहा; \"मिलेगी नज़र दिल खो के\"",
"Khamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nSargoshi kare hawa, chupke se mujhe kaha\n\"Dil ka haal bata, dilbar se na chhupa\"\nSun ke baat yeh sharm se meri\nAankhein jhuk jaane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nSargoshi kare hawa, chupke se mujhe kaha\n\"Dil ka haal bata, dilbar se na chhupa\"\nSun ke baat yeh sharm se meri\nAankhein jhuk jaane lagi\nJaag utha hai sapna kis ka meri in aankhon mein\nEk nayi zindagi shaamil ho rahi saanson mein\nKisi ki yaadein hain sada hawaon mein\nKisi ki baatein hain dabi si honthon mein\nRaat-din meri aankhon mein\nKoi parchhaayi lehrane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nDil ka yeh karwaan, yun hi tha ravaan-davaan\nManzil na humsafar, lekin, ae meherbaan\nTeri woh ek nazar kar gayi asar\nDuniya sanwar jaane lagi\nBekhayaali mein bhi aata hai khayaal tera\nBeqaraari meri karti hai sawaal tera\nTeri wafaon ki ummeed hai mujhko\nTeri nigahon ki panaah de mujhko\nSun, ae hamnasheen\nAas yeh teri mujhko tadpane lagi\nKhamoshiyaan gungunane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi\nTanhaaiyaan muskurane lagi\nDil ka yeh karwaan, yun hi tha ravaan-davaan\nManzil na humsafar, lekin, ae meherbaan\nTeri woh ek nazar kar gayi asar\nDuniya sanwar jaane lagi\nKhamoshiyaan gungunane lagi\nTanhaaiyaan muskurane lagi",
"ਕਹਿੰਦੇ ਮੇਰੇ ਪਾਪਾਂ ਤੂੰ ਹੈ ਪਾਪੀ\nਲਾਈਫ ਸਿਆਪਾ ਲੋਲੀਪੋਪੀ\nਵੇਹਲੇ, ਵੇਹਲੇ ਕਹਿੰਦੇ ਸਾਰੇ\nਰਹਿ ਗਏ ਆਪਾਂ ਟੂਰ\nपॉकेट में ना फूटी बेहरी\nपरफेक्ट करता कोई वी हैनी\nशॉट मर्दे रोज़ मिलाके\nचाय में एक्स्ट्रा दूध\nखिच पयजामा, जामा, जामा, जामा\nकड़ला, यामाहा, यामाहा, यामाहा\nਖਿੱਚ ਪਿਜਾਮਾ, ਕੱਢਲਾ ਯਾਮਾਂ\nपापा Oldschool\nहम बोहोत कूल वी पैदा हो गए\nMy raja boys not listening\nAa, my raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, raja\nMy raja boys not listening\nMy raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, raja\nहो टेंजी को ringtone सुनाके\nहाए करें मुंडे\nEngine को साइड सीखा के\nFly करें मुंडे\nहो टेंजी को ringtone सुनाके\nहाए करें मुंडे\nEngine को साइड सीखा के\nFly करें मुंडे\nJudge ਕਰਦੀ ਦੁਨੀਆਂ\nਪਰ enjoy ਕਰੇ ਮੁੰਡੇ\nEnjoy ਕਰੇ ਮੁੰਡੇ\nਹਾਂ fly ਕਰੇ ਮੁੰਡੇ\nEnjoy ਕਰੇ ਮੁੰਡੇ\nਚਾਚੀ, ਚਾਚਾ, ਤਾਯਾ, ਮਾਮਾ\nਕਰਦੇ ਰਹਿੰਦੇ ਡਰਾਮਾ, ਡਰਾਮਾ\nਕਰਦੇ ਰਹਿੰਦੇ ਡਰਾਮਾ, ਡਰਾਮਾ\nਸਾਰੇ middle class ਹੋ\nFirst class ਕੀ ਪੈਦਾ ਹੋ ਗਏ\nMy raja boys not listening\nAa, my raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, raja\nMy raja boys not listening\nMy raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, राजा\nहाए राजा बेटे रोज पेले कुलचे उधारी के\nSilencer की टोन है वखरी जलवे फेरारी के\nहाए राजा बेटे रोज पेले कुलचे उधारी के\nSilencer की टोन है वखरी जलवे फेरारी के\nकुड़ियो के पीछे ना try करें मुंडे\nEnjoy ਕਰੇ ਮੁੰਡੇ\nEnjoy ਕਰੇ ਮੁੰਡੇ\nਹਾਂ fly ਕਰੇ ਮੁੰਡੇ\nEnjoy ਕਰੇ ਮੁੰਡੇ\nਸਬਤੋ ਉੱਚੀ ਆਪਣੀ ਮਾਮਾ\nਸਬਤੋ ਉੱਚੀ ਆਪਣੀ ਮਾਮਾ\nਸਾਰੇ ਸੰਸਾਰ ਦਾ ਪਿਆਰ ਬੇਬੇ ਜੀ ਦਾ ਸੀ\nMy raja boys not listening\nAa, my raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, raja\nMy raja boys not listening\nMy raja boys not listening\nMy raja boys not listening\nMy raja, raja, raja, raja",
"Jaane kyon\nHar lamha hai tham gaya\nJaane kyon\nKhoon zara jam gaya\nJaane kyon\nAankhen nam si huyi\nJaane kyon\nManzile kho gayi aur so gayi\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon\nJaane kyon\nHar lamha hai tham gaya\nJaane kyon\nKhoon zara jam gaya\nJaane kyon\nAankhen nam si huyi\nJaane kyon\nManzile kho gayi aur so gayi\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon\nDil jo kuch hai keh raha\nKyun sunta hai koi na\nJahan chode the pal kuch haseen\nVahi ab main dekhu toh hai koi bhi nahi\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon\nTujh bin tanha hai yeh raatien\nBin alfazon ki yeh baatein\nBin baarish ki hai barsaatein\nAb main jaanu kyon\nTujh bin jaane kyon"
]
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 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': 400, '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})
)
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("meet5568/bhash_finetune_phaseB")
# Run inference
sentences = [
'Le Chal Mujhe, Le Chal Mujhe\nKahin Door Yahan Se Door\nYahan Se Door\nKho Jaayenge Phir Kahin\nRou Aayenge Phir Wahin\nAakhein Tujhe Dhoondhe Kahin\nAb Aaja Sata Na, Tu Aaja Sata Na\nTeri Chaahaton Mein Phiroon Baawri\nAye Humnava Tu Khoya Kahan\nAankhein Tujhe Dhoondhe Kahin\nKho Jaayenge Phir Kahin Ro Aayenge Phir Wahin\nLo Chal Pade, Lo Hum Chal Pade\nTere Sang, Tere Sang, Tere Sang\nBhaag Jaayenge Phir Kahin\nLaut Aayenge Phir Wahin.',
'Woh jab meri rahat ke\nKadam the maaz bhoot\nMere anda yeh samandar\nMeri dhukhoon ka mar hoon\nBarson guzare hai aap\nDil pe nahin aetbaar\nKal joothi meri jawani\nAaj hai kahani\nKya meri zindagi, ek khwaab hai\nKitni lambe, yeh raat hai\nBikhre sapne, bichre apne\nYaad chupke se rulati hai\nKya meri zindagi, ek khwaab hai\nKitni lambe, yeh raat hai\nBikhre sapne, bichre apne\nYaad chupke se rulati hai\nAise pighal jaate hai\nMere dil mein samaate hai\nSapne saja jaate hai\nAur jakar paate hai\nZindagi ka yeh safar\nKoi samjhe to nahin\nYehi rasta hai mera\nKoi aata hi nahin\nKya meri zindagi, ek khwaab hai\nKitni lambe, yeh raat hai\nBikhre sapne, bichre apne\nYaad chupke se rulati hai\nKya meri zindagi, ek khwaab hai\nKitni lambe, yeh raat hai\nBikhre sapne, bichre apne\nYaad chupke se rulati hai\nEnglish tanslation\nThere was a season when my steps were unwavering\nWithin me was this ocean\nThat would repair and cure me of all my pains\nBut at the passing of time\nI am no longer certain of my hearts integrity\nThe days of my youth\nNow only an abstract memory\nIs my essence just a delusion?\nHow long do I submit to such a night\nWhere dreams are shattered\nAnd mine forsake me\nMy silent cries reveal the stains of my memory\nEverything is fragmented its falling apart\nYet perfectly connected, attached, aligned in my heart\nA collage of hopes I had commissioned from within\nWere denied me and blotted out\nThey cannot understand my lifes journey\nSo I alone must complete it',
"ਤੇਰੇ ਰੰਗ ਵਿਚ ਰੰਗ ਜਾਵਾਂ मैं अब अभी\nਤੇਰੇ ਸੰਗ ਸੰਗ ਬਹਿ ਜਾਵਾਂ में अब अभी\nसुनूं मैं तू जो फ़रमाए जैसी तेरी मर्ज़ी\nਜਿਸ ਪਾਸੇ ਲੈ ਜਾਏ जैसी तेरी मर्ज़ी\nसपने वही दिखाए जैसी तेरी मर्ज़ी\nमन से जो तू चाहे जैसी तेरी मर्ज़ी\nइश्क वाली अर्जियां मंज़ूर कर ਦੀਆਂ\nਕਰ ਲੇ ਗ਼ੁਸਤਾਖ਼ੀਆਂ, ਕਰ ਲੇ ਮਨਮਰਜ਼ੀਆਂ, ਹਾਏ ਮਨਮਰਜ਼ੀਆਂ\nओहो हाय, मेरे ध्यान में, मेरे ध्यान में\nਹਰ ਵੇਲੇ मेरे ध्यान मे\nਅਹਿਸਾਨ ਵੇ, ਅਹਿਸਾਨ ਵੇ, कैसे भूलूँ एहसान\nक़ुरबान ਵੇ, क़ुरबान ਵੇ, तेरी हस्ती पे क़ुरबान ਵੇ\nअरमान ਵੇ, अरमान ਵੇ, तुझसे ही जुड़े अरमान\nतुझसे ही जुड़े अरमान\nतुझसे ही जुड़े अरमान\nनाज़ तेरे मैं ਉਠਾਵਾਂ जैसी तेरी मर्ज़ी\nਜਦ ਕੇਹ ਦੇ ਮੁਸਕਾਵਾਂ जैसी तेरी मर्ज़ी\nਇਸ਼ਕ 'ਚ ਮੈਂ ਇਤਰਾਵਾਂ जैसी तेरी मर्ज़ी\nਸਜਦਾ ਕਰਦਾ ਜਾਵਾਂ जैसी तेरी मर्ज़ी\nइश्क वाली अर्जियां मंज़ूर कर ਦੀਆਂ\nਕਰ ਲੇ ਗ਼ੁਸਤਾਖ਼ੀਆਂ, ਕਰ ਲੇ ਮਨਮਰਜ਼ੀਆਂ\nਮਨਮਰਜ਼ੀਆਂ ਹਾਏ, ਮਨਮਰਜ਼ੀਆਂ\nਮਨਮਰਜ਼ੀਆਂ ਹਾਏ, ਮਨਮਰਜ਼ੀਆਂ ਹਾਏ, ਮਨਮਰਜ਼ੀਆਂ\nਮਨਮਰਜ਼ੀਆਂ ਹਾਏ, ਮਨਮਰਜ਼ੀਆਂ, ਮਨਮਰਜ਼ੀਆਂ",
]
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]
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
मेहँदी लगी थी, दुल्हन सजी थी |
हो उमड़-घुमड़ कर आई रे घटा |
आज हमने सबक़ वो पढ़ डाला |
Ye din kyun nikalataa hai? |
Jise zindagi dhoondh rahi hai |
तुम बिन मुझे मैं जीने ना दूँ |
तेरे होंठों से अच्छा लगता है मुझे कहलाना |
Chahat ki barish itni |
ख़ुद ही दिल का रोग लगाये |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 0.5
}
per_device_train_batch_size: 4per_device_eval_batch_size: 4num_train_epochs: 5fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 4per_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: 5max_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: Falseuse_ipex: Falsebf16: Falsefp16: Truefp16_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}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_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.625 | 500 | 0.4831 |
| 1.25 | 1000 | 0.4388 |
| 1.875 | 1500 | 0.372 |
| 2.5 | 2000 | 0.2571 |
| 3.125 | 2500 | 0.2126 |
| 3.75 | 3000 | 0.1386 |
| 4.375 | 3500 | 0.1184 |
| 5.0 | 4000 | 0.0845 |
@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}
}