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)