CAiRE/UniVaR-lambda-1

CAiRE
Similitud de oraciones

CAiRE/UniVaR-lambda-1 es un modelo para la similitud de oraciones y extracción de características. Utiliza Safetensors, Transformers, y Transformers.js, y está optimizado para generar incrustaciones de texto con un contexto largo (hasta 8192 tokens). Supera el rendimiento de OpenAI text-embedding-ada-002 y text-embedding-3-small en tareas de contexto corto y largo. El modelo ofrece codificación eficiente y precisa de textos, ideal para aplicaciones de búsqueda de documentos y otras aplicaciones de procesamiento de lenguaje natural.

Como usar

Uso del modelo

El modelo se puede utilizar de diversas maneras, incluyendo las siguientes:

API de Inferencia Alojada

La forma más fácil de comenzar con Nomic Embed es a través de la API de incrustaciones de Nomic.

from nomic import embed

output = embed.text(
    texts=['Nomic Embedding API', '#keepAIOpen'],
    model='nomic-embed-text-v1',
    task_type='search_document'
)

print(output)

Visualización de Datos

Haga clic en el mapa de Nomic Atlas a continuación para visualizar una muestra de 5 millones de datos de preentrenamiento contrastivo.

Detalles del Entrenamiento

Entrenamos nuestro codificador usando una tubería de entrenamiento multi-etapas. Comenzando con un modelo BERT de contexto largo, la primera etapa contrastiva no supervisada entrena en un conjunto de datos generado a partir de pares de texto débilmente relacionados. En la segunda etapa de ajuste fino, se utilizan conjuntos de datos etiquetados de mayor calidad.

Ejemplo de Uso en Transformers

from transformers import AutoTokenizer, AutoModel

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

tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased', model_max_length=8192)
model = AutoModel.from_pretrained('nomic-ai/nomic-embed-text-v1', trust_remote_code=True, rotary_scaling_factor=2)
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)

Ejemplo de Uso en Transformers.js

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

const extractor = await pipeline('feature-extraction', 'nomic-ai/nomic-embed-text-v1', { quantized: false });

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

Similitud de oraciones
Extracción de características
Soporte para contexto largo (hasta 8192 tokens)
Rendimiento superior en tareas de contexto corto y largo
Generación de incrustaciones de texto con alta calidad

Casos de uso

Búsqueda de documentos
Clasificación de texto
Agrupación de textos similares
Extrapolación de contexto en textos largos
Aplicaciones de búsqueda y respuestas basadas en lenguaje natural