gte-large
thenlper
Similitud de oraciones
Modelo de Embeddings Generales de Texto (General Text Embeddings - GTE). Hacia Embeddings Generales de Texto con Aprendizaje Contrastivo Multi-etapa. Los modelos GTE son entrenados por la Academia DAMO de Alibaba. Están principalmente basados en el marco de trabajo BERT y actualmente ofrecen tres tamaños diferentes de modelos, incluyendo GTE-large, GTE-base y GTE-small. Los modelos GTE se entrenan en un corpus a gran escala de pares de textos relevantes, cubriendo una amplia gama de dominios y escenarios. Esto permite que los modelos GTE se apliquen a varias tareas de texto en downstream, incluyendo recuperación de información, similitud textual semántica, reordenación de textos, etc.
Como usar
Ejemplo de código
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
def average_pool(last_hidden_states: Tensor, attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
input_texts = [
'what is the capital of China?',
'how to implement quick sort in python?',
'Beijing',
'sorting algorithms'
]
tokenizer = AutoTokenizer.from_pretrained('thenlper/gte-large')
model = AutoModel.from_pretrained('thenlper/gte-large')
# Tokenizar los textos de entrada
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
# (Opcional) normalizar embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100
print(scores.tolist())
Uso con sentence-transformers
from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim
sentences = ['That is a happy person', 'That is a very happy person']
model = SentenceTransformer('thenlper/gte-large')
embeddings = model.encode(sentences)
print(cos_sim(embeddings[0], embeddings[1]))
Funcionalidades
- Basado en BERT
- Entrenado por Alibaba DAMO Academy
- Disponible en tamaños large, base y small
- Entrenado en un corpus a gran escala de pares de textos relevantes
- Aplicable a múltiples tareas de texto downstream
Casos de uso
- Recuperación de información
- Similitud textual semántica
- Reordenación de textos