Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation
Paper • 2004.09813 • Published • 1
How to use procesaur/Emo355 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("procesaur/Emo355")
sentences = [
"Pazi, sanse za pune stipendije su uvek male, prvo razmisli da li kod nas mozes da ulises master na stipendiju, pa onda tek kod njih. Realno neces se kajati ako probas cak i da te odbiju.",
"Ako radis samo ux/ui onda mislim da ne bi trebao da imas problema sa 7410. Ukoliko dodatno nesto petljas oko koda ili koristis neke CMS-ove onda 6201. Postavi ovo pitanje na dizajnzoni, moguce da je neko imao slicne nedoumice...",
"Polagao sam pre par meseci pa ovako: \\n\\n1. Od kada je korona polaže se isključivo na računaru, nema više papira, ali ne od kuće već u njihovim test centrima. Reading, writing i listening se rade uvek u test centru, dok se za speaking ide u prostorije kod kalemegdana gde pričaš. \\n\\n2. Cena je koliko se secam bila oko 20k \\n\\n3. Zavisi od tvog znanja, ja i par drugara smo polagali bez pripreme i svi smo imali 8, 8.5 ili 9 od 9, ali zato par ljudi nikako da položi. \\n\\n4. Ima dosta koji imaju istu težinu kao što su CAE, TOEFL itd. ali IELTS ti je najlakši.",
"Ključna reč je *classified as*. Pojam/klasifikacija \"naroda Han\" je u formulaciji iz 1911 - dovoljno govori to koliko jezika govore. Danas su u \"narodu Han\" i Mandžurijci, o kojima su kineski antropolozi pisali pre 100 godina kao o drugoj rasi i isticali koliko su Mandžurijci \"rasno inferiorni\". Čak i da to zanemarimo, obrati pažnju koliki procenat kineske teritorije ima drugačiju kulturu - i koliko takvih regiona danas ima separatističke pokrete.\\n\\nAli čak i to da zanemarimo sve i uzmemo da je situacija takva kakvom je predstavljaš - dakle oblasti naroda Han su ubedljivo najrazvijenije i oni nemaju problema sa time, dok ostale teritorije predstavljaju nešto više od izvoznika sirovina. Da li takva treba i Srbija da bude - hoće li u Srbiji svođenje vlaških oblasti na izvoznika sirovina dovesti do pojave separatizma?\\n\\nU stvari, kako je ova situacija u Kini drastično drugačija od srpske - Beograd i njegovi produžeci danas nemaju nikakve separatističke namere. Da li bi ti pristao na Srbiju u kojoj skoro sva industrija biva u Vojvodini, a ostatak Srbije za nju proizvodi sirovine i radnu snagu - da li je to model ravnomernog razvoja koji promovišeš?"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from jerteh/Jerteh-355. It maps sentences & paragraphs to a 16-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}) with Transformer model: RobertaModel
(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): Dense({'in_features': 1024, 'out_features': 16, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
)
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("sentence_transformers_model_id")
# Run inference
sentences = [
'Kako brat "Komita" zamišlja stručni i demokratski dijalog) Ali, dobro. Nije mu lako. Imali su težak dan😃 http',
'Obnovljena prva godina na fakultetu,Imam 21 godinu i studiram stomatologiju. Obnovila sam prvu godinu (sada bih trebala da sam druga), i osećam se mnogo loše povodom toga. Prošle godine u ovom periodu sam se osećala mnogo depresivno, anksiozno, i usamljeno (i sada se tako osećam samo malo manje), nisam tražila pomoć jer sam mislila da ću uspeti da se izborim sa sobom i na kraju položim ispite koji su mi potrebni za drugu godinu, ali nisam. Osećala sam ogromnu krivicu jer to nije smelo da mi se desi. Jedino mi majka radi, ona je medicinska sestra i ona izdržava nas četvoro. Znam koliko oni trpe i žrtvuju se samo da bih ja mogla da idem na fakultet i obezbedim sebi bolju budućnost.\\n\\nVeć neko vreme imam blokadu što se tiče učenja. Ostao mi je još jedan ispit da očistim godinu, i to najteži (anatomija). I imam problem da ne mogu da nateram sebe da sednem da učim, tj. kad god sednem i krenem da učim učim malo i već posle nekog vremena moje misli se razlete na sve strane i počinjem da se vraćam u prošlost i razmišljam o svojim neuspesima. Imam utisak da se uopšte nisam snašla, jer sam upisala fakultet u drugom prijemnom roku (na prvom mi je falio poen), odmah krenula na fakultet posle tolikog stresa, kasnije korona i online predavanja i vežbe, nisam dovoljno učila, više sam bila pod stresom, ne znam ni sama.\\n\\nProšle godine kada sam tek obnovila godinu, htela sam što pre da položim sve ispite koji su mi ostali i zaposlim se i uštedim novac za drugu godinu, ali nisam uspela, mnogo sam se razvukla sam ispitima, nisam mogla lepo da učim. Inače sam uvek bila odličan đak i nisam imala problema što se učenja tiče, uvek sam mogla da učim, ali poslednje dve godine ne znam šta mi se dešava. Samopouzdanje mi je mnogo opalo, i mislim da sam mnogo glupa i da ništa ne mogu da uradim kako treba. \\n\\nHtela bih da vas zamolim za neki savet kako bih mogla ovo da prebrodim jer stvarno nemam više ni motivacije ni volje, svakog dana sam tužna i plačem, ne znam šta više da radim sa sobom.',
'@user @user Ostaćeš upamćen u istoriji kao ostrašćeni vladar, a ne državnik. Kao onaj koji je naredio da se neistomišljenici batinaju. Živi sa tim teretom, sam si tako odlučio. Niko se neće sećati tvojih puteva i mostova, kao što se ne sećaju Tadićevih ... Sećaće se samo ovoga. http',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 16]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
eval_strategy: stepsnum_train_epochs: 1warmup_ratio: 0.1fp16: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_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: 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: 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: Falsebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss | loss |
|---|---|---|---|
| 0.2674 | 100 | 0.1507 | 0.1294 |
| 0.5348 | 200 | 0.1275 | 0.1217 |
| 0.8021 | 300 | 0.1205 | 0.1153 |
@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",
}
@inproceedings{reimers-2020-multilingual-sentence-bert,
title = "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2020",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/2004.09813",
}
Base model
jerteh/Jerteh-355