This is a sentence-transformers model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.
This model is trained on a dataset containing questions for specialists in three areas:
neurology, psychiatry, psychotherapy (psychology).
It quite well determines which of these specialties the question (described problem) belongs to.
The model "understands" the text in Russian, Ukrainian and English languages best of all,
but is not limited only by it.
If you want to experiment with this model, use the dictionary:
1from sentence_transformers import SentenceTransformer
2sentences =["This is an example sentence","Each sentence is converted"]34model = SentenceTransformer('{MODEL_NAME}')5embeddings = model.encode(sentences)6print(embeddings)
Usage (HuggingFace Transformers)
Without sentence-transformers, you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
python
1from transformers import AutoTokenizer, AutoModel
2import torch
345#Mean Pooling - Take attention mask into account for correct averaging6defmean_pooling(model_output, attention_mask):7 token_embeddings = model_output[0]#First element of model_output contains all token embeddings8 input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()9return torch.sum(token_embeddings * input_mask_expanded,1)/ torch.clamp(input_mask_expanded.sum(1),min=1e-9)101112# Sentences we want sentence embeddings for13sentences =['This is an example sentence','Each sentence is converted']1415# Load model from HuggingFace Hub16tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')17model = AutoModel.from_pretrained('{MODEL_NAME}')1819# Tokenize sentences20encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')2122# Compute token embeddings23with torch.no_grad():24 model_output = model(**encoded_input)2526# Perform pooling. In this case, mean pooling.27sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])2829print("Sentence embeddings:")30print(sentence_embeddings)
Evaluation Results
For an automated evaluation of this model, see the Sentence Embeddings Benchmark: https://seb.sbert.net
Training
The model was trained with the parameters:
DataLoader:
torch.utils.data.dataloader.DataLoader of length 120 with parameters:
@misc{Uaritm,
title={SetFit: Classification of medical texts},
author={Vitaliy Ostashko},
year={2022},
url={https://esemi.org}
}
<!--- Describe where people can find more information -->