deepvk/USER-bge-m3
El Universal Sentence Encoder para Ruso (USER) es un modelo sentence-transformer para extraer embeddings exclusivamente para el idioma ruso. Mapea oraciones y párrafos a un espacio vectorial denso de 1024 dimensiones y puede usarse para tareas como la agrupación o búsqueda semántica. Este modelo se inicializa desde TatonkaHF/bge-m3_en_ru, que es una versión reducida del modelo baai/bge-m3 y está entrenado principalmente para trabajar con el idioma ruso. No se evaluó su calidad en otros idiomas.
Como usar
Usar este modelo es fácil cuando tienes sentence-transformers instalado:
pip install -U sentence-transformers
Luego puedes usar el modelo así:
from sentence_transformers import SentenceTransformer
input_texts = [
"Когда был спущен на воду первый миноносец «Спокойный»?",
"Есть ли нефть в Удмуртии?",
"Спокойный (эсминец)
Зачислен в списки ВМФ СССР 19 августа 1952 года.",
"Нефтепоисковые работы в Удмуртии были начаты сразу после Второй мировой войны в 1945 году и продолжаются по сей день. Добыча нефти началась в 1967 году."
]
model = SentenceTransformer("deepvk/USER-bge-m3")
embeddings = model.encode(input_texts, normalize_embeddings=True)
Sin embargo, puedes usar el modelo directamente con transformers:
import torch.nn.functional as F
from torch import Tensor, inference_mode
from transformers import AutoTokenizer, AutoModel
input_texts = [
"Когда был спущен на воду первый миноносец «Спокойный»?",
"Есть ли нефть в Удмуртии?",
"Спокойный (эсминец)
Зачислен в списки ВМФ СССР 19 августа 1952 года.",
"Нефтепоисковые работы в Удмуртии были начаты сразу после Второй мировой войны в 1945 году и продолжаются по сей день. Добыча нефти началась в 1967 году."
]
tokenizer = AutoTokenizer.from_pretrained("deepvk/USER-bge-m3")
model = AutoModel.from_pretrained("deepvk/USER-bge-m3")
model.eval()
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
# Realizar pooling. En este caso, cls pooling.
sentence_embeddings = model_output[0][:, 0]
# Normalizar embeddings
sentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1)
# [[0.5567, 0.3014],
# [0.1701, 0.7122]]
scores = (sentence_embeddings[:2] @ sentence_embeddings[2:].T)
Además, puedes usar la biblioteca nativa FlagEmbedding para la evaluación. El uso se describe en la tarjeta de modelo bge-m3.
Funcionalidades
- Modelo sentence-transformer
- Extrae embeddings para el idioma ruso
- Espacio vectorial denso de 1024 dimensiones
- Entrenado a partir de TatonkaHF/bge-m3_en_ru
- Compatible con AutoTrain
- Compatible con Inference Endpoints
Casos de uso
- Clustering de oraciones y párrafos
- Búsqueda semántica
- Extracción de características de texto