KBLab/sentence-bert-swedish-cased

KBLab
Similitud de oraciones

Este es un modelo basado en sentence-transformers: mapea oraciones y párrafos en sueco a un espacio vectorial denso de 768 dimensiones y puede ser utilizado para tareas como agrupamiento o búsqueda semántica. Este modelo es un modelo bilingüe sueco-inglés entrenado según las instrucciones del artículo 'Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation' y la documentación que acompaña su paquete de Python. Utilizamos el Bi-Encoder en inglés preentrenado más fuerte disponible (all-mpnet-base-v2) como modelo maestro, y el KB-BERT sueco preentrenado como modelo estudiante.

Como usar

Uso (Sentence-Transformers)

pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer
sentences = ["Det här är en exempelmening", "Varje exempel blir konverterad"]

model = SentenceTransformer('KBLab/sentence-bert-swedish-cased')
embeddings = model.encode(sentences)
print(embeddings)

Carga de una versión anterior del modelo (Sentence-Transformers)

git clone --depth 1 --branch v1.0 https://huggingface.co/KBLab/sentence-bert-swedish-cased

from sentence_transformers import SentenceTransformer
model = SentenceTransformer("path_to_model_folder/sentence-bert-swedish-cased")

Uso (Transformers de HuggingFace)

from transformers import AutoTokenizer, AutoModel
import torch

def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # Primer elemento contiene todos los embeddings de los tokens
    input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

sentences = ['Det här är en exempelmening', 'Varje exempel blir konverterad']
tokenizer = AutoTokenizer.from_pretrained('KBLab/sentence-bert-swedish-cased')
model = AutoModel.from_pretrained('KBLab/sentence-bert-swedish-cased')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

with torch.no_grad():
    model_output = model(**encoded_input)

sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print('Embeddings de las oraciones:')
print(sentence_embeddings)

Carga de una versión anterior del modelo (Transformers de HuggingFace)

AutoTokenizer.from_pretrained('KBLab/sentence-bert-swedish-cased', revision="v1.0")
AutoModel.from_pretrained('KBLab/sentence-bert-swedish-cased', revision="v1.0")

Funcionalidades

Modelo bilingüe sueco-inglés
Espacio vectorial denso de 768 dimensiones
Tareas de agrupamiento y búsqueda semántica
Entrenado con Knowledge Distillation
Capacidad para analizar oraciones y párrafos suecos

Casos de uso

Agrupamiento de oraciones en sueco
Búsqueda semántica en textos suecos
Evaluación de similitud entre oraciones
Preguntas y respuestas en sueco