from transformers import AutoTokenizer, AutoModelimport torch
def cls_pooling(model_output, attention_mask): return model_output[0][:,0]
# Sentences we want sentence embeddings forsentences = ['This is an example sentence', 'Each sentence is converted']
# Load model from HuggingFace Hubtokenizer = AutoTokenizer.from_pretrained('sentence-transformers/allenai-specter')model = AutoModel.from_pretrained('sentence-transformers/allenai-specter')
# Tokenize sentencesencoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Compute token embeddingswith torch.no_grad(): model_output = model(**encoded_input)
# Perform pooling. In this case, max pooling.sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")print(sentence_embeddings)