это a truncated version of sentence-transformers/LaBSE, which is, in turn, a port of LaBSE by Google.
Выполняю код, как написано в карточке модели:
import torch
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("cointegrated/LaBSE-en-ru")
model = AutoModel.from_pretrained("cointegrated/LaBSE-en-ru")
sentences = ["Hello World", "Привет Мир"]
encoded_input = tokenizer(sentences, padding=True, truncation=True, max_length=64, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
embeddings = model_output.pooler_output
embeddings = torch.nn.functional.normalize(embeddings)
Далее, пользуясь библиотекой sbert, делаю:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('cointegrated/LaBSE-en-ru')
sbert_embeddings = model.encode(sentences)
Далее, сравниваю получившиеся вложения:
torch.allclose(embeddings[0], torch.tensor(sbert_embeddings[0]))
Выдает False. Можете, пожалуйста, подсказать, с чем это может быть связано?
Длина сиквенса?
спасибо! Попробую
Обсуждают сегодня