Voicelab/sbert-large-cased-pl
SentenceBERT es una modificación de la red BERT preentrenada que utiliza estructuras de redes siamesas y tripletas para derivar incrustaciones de oraciones semánticamente significativas que se pueden comparar utilizando la similitud del coseno. El entrenamiento se basó en el documento original 'Siamese BERT models for the task of semantic textual similarity (STS)' con una ligera modificación en la forma en que se utilizaron los datos de entrenamiento. El objetivo del modelo es generar diferentes incrustaciones basadas en la similitud semántica y temática del texto dado. El análisis de la similitud textual semántica examina cuán similares son dos fragmentos de texto. El modelo base entrenado es un HerBERT polaco. HerBERT es un modelo de lenguaje basado en BERT. Para más detalles, consulte 'HerBERT: Efficiently Pretrained Transformer-based Language Model for Polish'.
Como usar
from transformers import AutoTokenizer, AutoModel
from sklearn.metrics import pairwise
sbert = AutoModel.from_pretrained("Voicelab/sbert-large-cased-pl")
tokenizer = AutoTokenizer.from_pretrained("Voicelab/sbert-large-cased-pl")
s0 = "Uczenie maszynowe jest konsekwencją rozwoju idei sztucznej inteligencji i metod jej wdrażania praktycznego."
s1 = "Głębokie uczenie maszynowe jest sktukiem wdrażania praktycznego metod sztucznej inteligencji oraz jej rozwoju."
s2 = "Kasparow zarzucił firmie IBM oszustwo, kiedy odmówiła mu dostępu do historii wcześniejszych gier Deep Blue. "
tokens = tokenizer([s0, s1, s2],
padding=True,
truncation=True,
return_tensors='pt')
x = sbert(tokens["input_ids"],
tokens["attention_mask"]).pooler_output
# similitud entre las oraciones s0 y s1
print(pairwise.cosine_similarity(x[0], x[1])) # Resultado: 0.8011128
# similitud entre las oraciones s0 y s2
print(pairwise.cosine_similarity(x[0], x[2])) # Resultado: 0.58822715
Funcionalidades
- Modificación de BERT preentrenada utilizando redes siamesas y tripletas
- Comparación de incrustaciones de oraciones utilizando la similitud del coseno
- Entrenado en datos de Wikipedia
- Tokenización en subpalabras utilizando codificación de pares de bytes a nivel de carácter (CharBPETokenizer)
- Tamaño de vocabulario de 50k tokens
Casos de uso
- Comparar la similitud semántica de dos fragmentos de texto
- Generar incrustaciones de oraciones basadas en la similitud temática
- Análisis de similitud textual en aplicaciones de Procesamiento del Lenguaje Natural (NLP)