gte-small

thenlper
Similitud de oraciones

Modelo General de Embeddings de Texto (GTE). Hacia Embeddings de Textos Generales con Aprendizaje Contrastivo Multiescenario. Los modelos GTE son entrenados por la Academia DAMO de Alibaba. Están principalmente basados en el marco de BERT y actualmente ofrecen tres tamaños diferentes de modelos, incluyendo GTE-large, GTE-base y GTE-small. Los modelos GTE están entrenados en un gran corpus de pares de texto relevantes, cubriendo una amplia gama de dominios y escenarios. Esto permite que los modelos GTE se apliquen a diversas tareas de texto embedido, incluyendo la recuperación de información, similitud textual semántica, clasificación de texto, ranking de texto, etc.

Como usar

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-small")
model = AutoModel.from_pretrained("thenlper/gte-small")

# Tokenize the input texts
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'])

# (Optionally) normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100
print(scores.tolist())

Usando 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 el marco BERT
Tres tamaños de modelos: GTE-large, GTE-base, GTE-small
Entrenado en un gran corpus de pares de texto relevantes
Aplicable a diversas tareas de texto embedido

Casos de uso

Recuperación de información
Similitud textual semántica
Clasificación de texto
Ranking de texto