gte-large-en-v1.5

Alibaba-NLP
Similitud de oraciones

Presentamos la serie gte-v1.5, mejoras en las incrustaciones gte que admiten una longitud de contexto de hasta 8192, mientras se mejora aún más el rendimiento del modelo. Los modelos están construidos sobre la columna vertebral del codificador transformer++ (BERT + RoPE + GLU). La serie gte-v1.5 alcanza puntuaciones de vanguardia en el punto de referencia MTEB dentro de la misma categoría de tamaño de modelo y ofrece rendimientos competitivos en las pruebas de recuperación de contexto largo de LoCo (consulte Evaluación). También presentamos el gte-Qwen1.5-7B-instruct, un modelo de incrustación multilingüe ajustado por instrucciones de vanguardia que se clasificó en segundo lugar en MTEB y primero en C-MTEB.

Como usar

Cómo comenzar con el modelo

# Requires transformers>=4.36.0

import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

input_texts = [
"what is the capital of China?",
"how to implement quick sort in python?",
"Beijing",
"sorting algorithms"
]

model_path = 'Alibaba-NLP/gte-large-en-v1.5'
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True)

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=8192, padding=True, truncation=True, return_tensors='pt')

outputs = model(**batch_dict)
embeddings = outputs.last_hidden_state[:, 0]

# (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:

# Requires sentence_transformers>=2.7.0

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('Alibaba-NLP/gte-large-en-v1.5', trust_remote_code=True)
embeddings = model.encode(sentences)
print(cos_sim(embeddings[0], embeddings[1]))

Uso con transformers.js:

// npm i @xenova/transformers
import { pipeline, dot } from '@xenova/transformers';

// Create feature extraction pipeline
const extractor = await pipeline('feature-extraction', 'Alibaba-NLP/gte-large-en-v1.5', {
quantized: false, // Comment out this line to use the quantized version
});

// Generate sentence embeddings
const sentences = [
"what is the capital of China?",
"how to implement quick sort in python?",
"Beijing",
"sorting algorithms"
]
const output = await extractor(sentences, { normalize: true, pooling: 'cls' });

// Compute similarity scores
const [source_embeddings, ...document_embeddings ] = output.tolist();
const similarities = document_embeddings.map(x => 100 * dot(source_embeddings, x));
console.log(similarities); // [41.86354093370361, 77.07076371259589, 37.02981979677899]

Funcionalidades

Soporte para longitud de contexto de hasta 8192
Construido sobre la columna vertebral del codificador transformer++
Puntuaciones de vanguardia en el punto de referencia MTEB
Rendimiento competitivo en las pruebas de recuperación de contexto largo de LoCo
Modelo de incrustación multilingüe ajustado por instrucciones

Casos de uso

Representación y reordenación de textos de largo contexto
Recuperación de texto multilingüe
Clasificación de documentos
Agrupación de textos
Sistemas de recomendación
Análisis de sentimientos