Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use peggyes/abena-simcse-twi with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("peggyes/abena-simcse-twi")
sentences = [
"Mɛsɔre afei na makɔ kyinkyini kuropɔn no mu, ne mmɔntene so ne nʼadwabirem; na mahwehwɛ deɛ mʼakoma da no so. Enti mehwehwɛɛ no nanso manhunu no.",
"Mɛsɔre afei na makɔ kyinkyini kuropɔn no mu, ne mmɔntene so ne nʼadwabirem; na mahwehwɛ deɛ mʼakoma da no so. Enti mehwehwɛɛ no nanso manhunu no.",
"Obiara nni ho ɛkwan sɛ ɔtɔ anaa ɔtɔn, gye sɛ wɔde aboa no din anaa nsɛnkyerɛnneɛ a ɛgyina hɔ ma edin no hyɛ ne ho agyiraeɛ.",
"“Wogye di sɛ yei fata? Woka sɛ, ‘Onyankopɔn bɛtwitwa agye me.’"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from Ghana-NLP/abena-base-asante-twi-uncased. It maps sentences & paragraphs to a 768-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': 768, 'pooling_mode': 'mean', '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("sentence_transformers_model_id")
# Run inference
sentences = [
'Ɛnka sɛ, “Adɛn enti na tete nna no yɛ sene ɛnnɛ mmerɛ yi?” Onyansafoɔ mmisa nsɛm sei.',
'Ɛnka sɛ, “Adɛn enti na tete nna no yɛ sene ɛnnɛ mmerɛ yi?” Onyansafoɔ mmisa nsɛm sei.',
'Nanso, ɔsomfoɔ biara a wɔtee sika tɔɔ no no, sɛ wɔatwa no twetia deɛ a, ɔtumi we bi.',
]
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, 1.0000, 0.1095],
# [1.0000, 1.0000, 0.1095],
# [0.1095, 0.1095, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| modality | text | text |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Wɔde dwetɛ ne sikakɔkɔɔ hyehyɛ no; wɔde nnadewa ne asaeɛ bobɔ si hɔ sɛdeɛ ɛrenhwe fam. |
Wɔde dwetɛ ne sikakɔkɔɔ hyehyɛ no; wɔde nnadewa ne asaeɛ bobɔ si hɔ sɛdeɛ ɛrenhwe fam. |
na wɔbɛtwa amumuyɛfoɔ afiri asase no so, na wɔatɔre atorofoɔ ase. |
na wɔbɛtwa amumuyɛfoɔ afiri asase no so, na wɔatɔre atorofoɔ ase. |
Ɔsoro asraafoɔ a wɔhyehyɛ nwera fitaa a ani te a wɔtete apɔnkɔ fitafitaa so dii nʼakyi. |
Ɔsoro asraafoɔ a wɔhyehyɛ nwera fitaa a ani te a wɔtete apɔnkɔ fitafitaa so dii nʼakyi. |
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: 16num_train_epochs: 1per_device_eval_batch_size: 16multi_dataset_batch_sampler: round_robinper_device_train_batch_size: 16num_train_epochs: 1max_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: 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: 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: {}@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
Ghana-NLP/abena-base-asante-twi-uncased