gte-base
thenlper
Similitud de oraciones
Un modelo de General Text Embeddings (GTE). Hacia General Text Embeddings con Aprendizaje Contrastivo Multietapa. Los modelos GTE son entrenados por la Academia DAMO de Alibaba. Se basan principalmente en el marco 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 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 downstream de embeddings de texto, incluyendo recuperación de información, similitud textual semántica, reordenamiento 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-base")
model = AutoModel.from_pretrained("thenlper/gte-base")
# 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())
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-base')
embeddings = model.encode(sentences)
print(cos_sim(embeddings[0], embeddings[1]))
Funcionalidades
- Basado en la estructura BERT
- Disponible en tres tamaños: GTE-large, GTE-base, GTE-small
- Entrenado en un corpus a gran escala de pares de textos relevantes
- Applicable a tareas de downstream como la recuperación de información, similitud textual semántica y reordenamiento de textos
- Ofrecido en varios tamaños y dimensiones
Casos de uso
- Recuperación de información
- Similitud textual semántica
- Reordenamiento de textos