Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use guipa01/telos-demo-model with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("guipa01/telos-demo-model")
sentences = [
"A contraceção de longa duração (LARC – long-acting reversible contraception) que envolve implantes subcutâneos, DIU de cobre e SIU com levonorgestrel, são ultimamente recomendados pela OMS para mulheres mais jovens, devido maior falha dos métodos tradicionais, como ocorre com os contracetivos hormonais orais quando usados nessa faixa etária, levando assim ao risco de gravidez indesejada. Sobre os LARC, qual a alternativa correta dentre as abaixo relacionadas?",
"O teste consiste em aferir a oximetria de pulso na mão direita (MSD) e num dos pés (MI) do recém-nascido, e considera-se como normal a SpO2 maior ou igual a 95% e uma diferença de SpO2 entre o membro superior direito e um dos membros inferiores menor ou igual a 3%.",
"Trata-se de iminência de eclâmpsia, sendo necessário administração de sulfato de magnésio, hipotensor de ação rápida e avaliação do quadro materno e fetal com análises laboratoriais e de vitalidade fetal após estabilização, para definir melhor conduta.",
"O DIU de cobre e o SIU com levonorgestrel podem ser utilizados em mulheres nulíparas que desejam contraceção."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/multi-qa-MiniLM-L6-cos-v1. It maps sentences & paragraphs to a 384-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': 128, 'do_lower_case': False, 'architecture': 'BertModel'})
(1): Pooling({'word_embedding_dimension': 384, '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): 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("sentence_transformers_model_id")
# Run inference
sentences = [
'Os indicadores de saúde são parâmetros utilizados com a finalidade de avaliar, sob o ponto de vista sanitário, a higidez de agregados humanos, bem como de fornecer subsídios aos planeamentos de saúde. A respeito desses indicadores, é correto afirmar que:',
'A taxa de mortalidade infantil estima o risco de um nado-vivo morrer durante o seu primeiro ano de vida e reflete o nível de saúde e as condições de vida da população.',
'A suplementação recomendada para a prevenção da anemia materna é de 30mg de ferro elementar por dia, para doentes sem anemia e geralmente iniciando no segundo trimestre.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, 0.3131, -0.0188],
# [ 0.3131, 1.0000, 0.1022],
# [-0.0188, 0.1022, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Mulher, 54 anos, faz acompanhamento na Unidade de Saúde Familiar há seis anos por hipertensão arterial, em uso de losartan 100mg/dia. O seu peso é normal, não fuma e pratica caminhada de 40 minutos durante cinco dias da semana. Os exames de laboratório solicitados, de acordo com as Diretrizes Brasileiras de Hipertensão Arterial, estão normais. Porém, nos últimos três meses, os níveis tensionais estão em elevação. As duas últimas medidas chegaram a 160x100mmHg. O médico optou então por acrescentar um segundo fármaco ao esquema terapêutico. Dos grupos farmacológicos listados e disponíveis na Unidade de Saúde, qual o mais apropriado? |
Diuréticos tiazídicos (hidroclorotiazida) |
Menino, 5 anos, residente na zona urbana do centro-oeste paulista, compareceu ao Centro de Saúde apresentando quadro de febre não medida há 1 mês. Há 15 dias, a mãe também observou perda do apetite e emagrecimento, além de episódios de diarreia. Exame físico: regular estado geral, sinais vitais preservados, mucosas descoradas 2+/4+ e hepatoesplenomegalia. O hemograma revelou anemia, leucopenia e trombocitopenia. Considerando que o doente nunca se ausentou da cidade, nunca recebeu transfusão sanguínea, mora em casa de alvenaria, e os aspetos clínicos e epidemiológicos, a conduta é: |
Realização de teste rápido para leishmaniose e pesquisa de leishmania em esfregaço de aspirado de medula óssea. |
Na avaliação diagnóstica da endometriose, está correto afirmar que: |
Valores de CA 125 guardam baixa correlação com o diagnóstico. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
fp16: Truemulti_dataset_batch_sampler: round_robindo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8gradient_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: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Nonegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Truepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 2.0661 | 500 | 1.3616 |
@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{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}