st-polish-kartonberta-base-alpha-v1

OrlikB
Similitud de oraciones

Este modelo transformador de oraciones está diseñado para convertir contenido de texto en un espacio vectorial de 768 flotantes, asegurando una representación efectiva. Apuesta por ser competente en tareas que involucren similitud de oraciones/documentos. El modelo ha sido lanzado en su versión alfa. Podrían considerarse numerosas mejoras potenciales para aumentar su rendimiento, tales como ajustar los hiperparámetros de entrenamiento o prolongar la duración del entrenamiento (actualmente limitado a solo una época). La razón principal es la limitada disponibilidad de GPU.

Como usar

Cómo empezar con el modelo

pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('OrlikB/st-polish-kartonberta-base-alpha-v1')

text_1 = 'Jestem wielkim fanem opakowań tekturowych'
text_2 = 'Bardzo podobają mi się kartony'

embeddings_1 = model.encode(text_1, normalize_embeddings=True)
embeddings_2 = model.encode(text_2, normalize_embeddings=True)

similarity = embeddings_1 @ embeddings_2.T
print(similarity)

Usando Hugging Face Transformers

from transformers import AutoTokenizer, AutoModel
import torch
import numpy as np

def encode_text(text):
    encoded_input = tokenizer(text, padding=True, truncation=True, return_tensors='pt', max_length=512)
    with torch.no_grad():
        model_output = model(**encoded_input)
        sentence_embeddings = model_output[0][:, 0]
        sentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1)
    return sentence_embeddings.squeeze().numpy()

cosine_similarity = lambda a, b: np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))


tokenizer = AutoTokenizer.from_pretrained('OrlikB/st-polish-kartonberta-base-alpha-v1')
model = AutoModel.from_pretrained('OrlikB/st-polish-kartonberta-base-alpha-v1')
model.eval()

text_1 = 'Jestem wielkim fanem opakowań tekturowych'
text_2 = 'Bardzo podobają mi się kartony'

embeddings_1 = encode_text(text_1)
embeddings_2 = encode_text(text_2)

print(cosine_similarity(embeddings_1, embeddings_2))

Nota: Puedes usar la función encode_text para fines de demostración. Para una mejor experiencia, se recomienda procesar el texto en lotes.

Funcionalidades

Conversión de texto en espacio vectorial de 768 flotantes
Competente en tareas de similitud de oraciones/documentos
Basado en el modelo RoBERTa

Casos de uso

Similitud de documentos
Clustering
Clasificación de textos
Búsqueda de información (retrieval)