Instructions to use midwestcyr/labse-ruskaromani with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use midwestcyr/labse-ruskaromani with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("midwestcyr/labse-ruskaromani") sentences = [ "- Н-да!", "Акана — хохавава.", "А о-отэнчя тихэс устя тэ и гыя дрэ фэлда ни прэ конэстэ на дыкхи.", "— Аи!" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
SentenceTransformer based on sentence-transformers/LaBSE
This is a sentence-transformers model finetuned from sentence-transformers/LaBSE. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for retrieval.
Model was fine-tuned Ruska Romani on Russian language pairs. Ruska Romani is the dialect of Romani language attributed to Ruska Roma, the largest subgroup of Romani people in Russia.
Model was trained and evaluated on parallel pairs data data from the Russian National Corpus.
The data curation process is described in the article The Parallel Corpus of Russian and Ruska Romani Languages. Please refer to that paper in any publications where the model was used.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: sentence-transformers/LaBSE
- Maximum Sequence Length: 256 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
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': 768, 'pooling_mode': 'cls', 'include_prompt': True})
(2): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh', 'module_input_name': 'sentence_embedding', 'module_output_name': 'sentence_embedding'})
(3): Normalize({})
)
Usage
Direct Usage (Sentence Transformers)
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("midwestcyr/labse-ruskaromani")
# Run inference
sentences = [
'Владимир разорвал их, не читая.',
'Владимиро розрискирдя лэн на гины.',
'Мандэ кэ ёв сыс баро уважэниё и ёв ман дрэван камья.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8380, 0.0814],
# [0.8380, 1.0000, 0.1824],
# [0.0814, 0.1824, 1.0000]])
Evaluation
Metrics
Translation
- Dataset:
ruska-roma-validation - Evaluated with
TranslationEvaluator
| Metric | Value |
|---|---|
| src2trg_accuracy | 0.9023 |
| trg2src_accuracy | 0.8925 |
| mean_accuracy | 0.8974 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 7,278 training samples
- Columns:
sentence_0,sentence_1, andlabel - Approximate statistics based on the first 100 samples:
sentence_0 sentence_1 label type string string float modality text text details - min: 5 tokens
- mean: 23.74 tokens
- max: 96 tokens
- min: 6 tokens
- mean: 33.36 tokens
- max: 135 tokens
- min: 1.0
- mean: 1.0
- max: 1.0
- Samples:
sentence_0 sentence_1 label Не бойтесь, государь милостив, я буду просить его. Он нас не обидит. Мы все его дети. А как ему за вас будет заступиться, если вы станете бунтовать и разбойничать».На дарэнте, тагари куч, мэ лава тэ мангав лэс — ёв амэн на помэкэла — амэ сарэ лэскирэ чявэ — а сыр лэскэ пал тумэндэ тэ затэрдёл, коли тумэ лэна тэ газдэн бунто и разбоё.1.0Можно было видеть, что мужчина высок и стоит у весла, широко расставив ноги, вполоборота к кругленькой, маленькой женщине, прислонившейся грудью к другому веслу, саженях в полутора от первого.Могискирдо сыс тэ роздыкхэс, со гаджё учё и тэрдо пашо вёсло, буґлэс росчеви ґэра, дро паш обрисибэ кэ крэнглинько джювлы, сави припасия колынэса кэ вавир вёсло, надур екх екхэстыр.1.0Мазурка кончилась, хозяева просили гостей к ужину, но полковник Б. отказался, сказав, что ему надо завтра рано вставать, и простился с хозяевами.Мазурка кончисалыя, хулая мангнэ гостен ко хабэ, нэ полковнико Б. отпхэндяпэ и пхэндя, со лэскэ трэбинэ атася злокоса тэ уштэс и простиндяпэ хуланца.1.0 - Loss:
MultipleNegativesRankingLosswith 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 }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 16fp16: Trueper_device_eval_batch_size: 16multi_dataset_batch_sampler: round_robin
All Hyperparameters
Click to expand
per_device_train_batch_size: 16num_train_epochs: 3max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: 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: 1label_smoothing_factor: 0.0bf16: Falsefp16: Truebf16_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: 16prediction_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: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | Training Loss | ruska-roma-validation_mean_accuracy |
|---|---|---|---|
| 1.0 | 455 | - | 0.8535 |
| 1.0989 | 500 | 0.1608 | 0.8684 |
| 2.0 | 910 | - | 0.8875 |
| 2.1978 | 1000 | 0.0325 | 0.8956 |
| 3.0 | 1365 | - | 0.8974 |
Training Time
- Training: 11.7 minutes
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.6.0
- Transformers: 5.12.1
- PyTorch: 2.11.0+cu128
- Accelerate: 1.14.0
- Datasets: 4.0.0
- Tokenizers: 0.22.2
Citation
BibTeX
Ruska Romani and Russian Parallel Corpus
@inproceedings{koncha-etal-2024-parallel,
title = "The Parallel Corpus of {R}ussian and Ruska {R}omani Languages",
author = "Koncha, Kirill and
Kukanova, Abina and
Tatiana, Kazakova and
Rozovskaya, Gloria",
editor = "Serikov, Oleg and
Voloshina, Ekaterina and
Postnikova, Anna and
Muradoglu, Saliha and
Le Ferrand, Eric and
Klyachko, Elena and
Vylomova, Ekaterina and
Shavrina, Tatiana and
Tyers, Francis",
booktitle = "Proceedings of the Third Workshop on NLP Applications to Field Linguistics",
month = aug,
year = "2024",
address = "Bangkok, Thailand",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2024.fieldmatters-1.1/",
doi = "10.18653/v1/2024.fieldmatters-1.1",
pages = "1--5"
}
Sentence Transformers
@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",
}
MultipleNegativesRankingLoss
@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},
}
- Downloads last month
- 55
Model tree for midwestcyr/labse-ruskaromani
Base model
sentence-transformers/LaBSEPapers for midwestcyr/labse-ruskaromani
Representation Learning with Contrastive Predictive Coding
Evaluation results
- Src2Trg Accuracy on ruska roma validationself-reported0.902
- Trg2Src Accuracy on ruska roma validationself-reported0.892
- Mean Accuracy on ruska roma validationself-reported0.897