CAiRE/UniVaR-lambda-20

CAiRE
Similitud de oraciones

El modelo CAiRE/UniVaR-lambda-20 es un transformador de oraciones capaz de calcular la similitud entre frases. Utiliza Safetensors y es compatible con tecnologías como Transformers y Transformers.js, y está diseñado para soportar inferencias de texto y puntos finales de evaluación. Es un modelo alojado en Hugging Face que tiene una licencia apache-2.0.

Como usar

El modelo se puede utilizar de las siguientes maneras:

Usando Transformers

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

def mean_pooling(model_output, attention_mask):
   token_embeddings = model_output[0]
   input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
   return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

sentences = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?']

tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1', trust_remote_code=True)
model.eval()

encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

with torch.no_grad():
   model_output = model(**encoded_input)

embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
print(embeddings)

Usando Transformers.js

import { pipeline } from '@xenova/transformers';

// Crea un pipeline de extracción de características
const extractor = await pipeline('feature-extraction', 'nomic-ai/nomic-embed-text-v1', {
   quantized: false, // Comentar esta línea para usar la versión cuantizada
});

// Calcula las incrustaciones de oraciones
const texts = ['search_query: What is TSNE?', 'search_query: Who is Laurens van der Maaten?'];
const embeddings = await extractor(texts, { pooling: 'mean', normalize: true });
console.log(embeddings);

Funcionalidades

Transformadores
Transformers.js
Extracción de características (nomic_bert)
Evaluación de resultados (mteb)
Puntos finales de inferencia de texto

Casos de uso

Evaluar la similitud de oraciones
Clasificación de texto
Clustering de documentos
Búsqueda de documentos