Halong Embedding
Halong Embedding es una incrustación de texto en vietnamita centrada en la eficiencia de producción y RAG (Recuperación de Información Asistida por Generación). Está entrenado en un conjunto de datos propio que consta de aproximadamente 100,000 ejemplos de preguntas y documentos relacionados. Se ha entrenado con una pérdida Matryoshka, permitiendo truncar incrustaciones con pérdida mínima de rendimiento: las incrustaciones más pequeñas son más rápidas de comparar. Este es un modelo de sentence-transformers ajustado con intfloat/multilingual-e5-base. Mapea oraciones y párrafos a un espacio vectorial denso con dimensiones de 768 y puede usarse para similitud textual semántica, búsqueda semántica, minería de paráfrasis, clasificación de texto, agrupamiento, y más.
Como usar
Uso Directo (Sentence Transformers)
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer
import torch
# Descargar desde el Hub de 🤗
model = SentenceTransformer("hiieu/halong_embedding")
# Definir consulta y documentos
query = "Bóng đá có lợi ích gì cho sức khỏe?"
docs = [
"Bóng đá giúp cải thiện sức khỏe tim mạch y aumentar la resistencia.",
"Bóng đá es el deporte más popular del mundo.",
"Jugar al fútbol reduce el estrés y mejora el estado psicológico.",
"El fútbol puede ayudarte a conectarte con más personas.",
"El fútbol no solo es un deporte, también es una forma de entretenimiento."
]
# Codificar consulta y documentos
query_embedding = model.encode([query])
doc_embeddings = model.encode(docs)
similarities = model.similarity(query_embedding, doc_embeddings).flatten()
# Ordenar documentos por similitud del coseno
sorted_indices = torch.argsort(similarities, descending=True)
sorted_docs = [docs[idx] for idx in sorted_indices]
sorted_scores = [similarities[idx].item() for idx in sorted_indices]
# Imprimir documentos ordenados con sus puntuaciones de similitud del coseno
for doc, score in zip(sorted_docs, sorted_scores):
print(f"Documento: {doc} - Similitud de Coseno: {score:.4f}")
Inferencia de Incrustaciones Matryoshka
from sentence_transformers import SentenceTransformer
import torch.nn.functional as F
import torch
matryoshka_dim = 64
model = SentenceTransformer(
"hiieu/halong_embedding",
truncate_dim=matryoshka_dim,
)
# Definir consulta y documentos
query = "Bóng đá có lợi ích gì cho sức khỏe?"
docs = [
"Bóng đá giúp cải thiện sức khỏe tim mạch y aumentar la resistencia.",
"Bóng đá es el deporte más popular del mundo.",
"Jugar al fútbol reduce el estrés y mejora el estado psicológico.",
"El fútbol puede ayudarte a conectarte con más personas.",
"El fútbol no solo es un deporte, también es una forma de entretenimiento."
]
# Codificar consulta y documentos
query_embedding = model.encode([query])
doc_embeddings = model.encode(docs)
similarities = model.similarity(query_embedding, doc_embeddings).flatten()
# Ordenar documentos por similitud del coseno
sorted_indices = torch.argsort(similarities, descending=True)
sorted_docs = [docs[idx] for idx in sorted_indices]
sorted_scores = [similarities[idx].item() for idx in sorted_indices]
# Imprimir documentos ordenados con sus puntuaciones de similitud del coseno
for doc, score in zip(sorted_docs, sorted_scores):
print(f"Documento: {doc} - Similitud de Coseno: {score:.4f}")
Funcionalidades
- Modelo sentence-transformers
- Modelo base: intfloat/multilingual-e5-base
- Longitud máxima de secuencia: 512 tokens
- Dimensionalidad de salida: 768 tokens
- Función de similitud: Similitud del coseno
- Idioma: centrado en vietnamita, multilingüe
- Licencia: apache-2.0
Casos de uso
- Similitud textual semántica
- Búsqueda semántica
- Minería de paráfrasis
- Clasificación de texto
- Agrupamiento