gte-large-en-v1.5
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