CAiRE/UniVaR-lambda-1
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