nomic-embed-text-v1.5

nomic-ai
Similitud de oraciones

¡Actualización emocionante!: nomic-embed-text-v1.5 ahora es multimodal. Nomic-embed-vision-v1 está alineado con el espacio de incrustación de nomic-embed-text-v1.5, lo que significa que cualquier incrustación de texto es multimodal. El modelo nativamente soporta el escalado de la longitud de la secuencia más allá de 2048 tokens. Utiliza el Aprendizaje de Representación Matryoshka que ofrece a los desarrolladores la flexibilidad de intercambiar el tamaño de la incrustación por una reducción insignificante en el rendimiento.

Como usar

Ejemplos de usos

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("nomic-ai/nomic-embed-text-v1", trust_remote_code=True)
sentences = ['search_document: TSNE es un algoritmo de reducción de dimensionalidad creado por Laurens van Der Maaten']
embeddings = model.encode(sentences)
print(embeddings)
from transformers import AutoTokenizer, AutoModel
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.layer_norm(embeddings, normalized_shape=(embeddings.shape[1],))
    embeddings = embeddings[:, :matryoshka_dim]
    embeddings = F.normalize(embeddings, p=2, dim=1)
    print(embeddings)
import { pipeline, layer_norm } from '@xenova/transformers';

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

const texts = ['search_query: ¿Qué es TSNE?', 'search_query: ¿Quién es Laurens van der Maaten?'];

let embeddings = await extractor(texts, { pooling: 'mean' });
console.log(embeddings);

const matryoshka_dim = 512;
embeddings = layer_norm(embeddings, [embeddings.dims[1]]).slice(null, [0, matryoshka_dim]).normalize(2, -1);
console.log(embeddings.tolist());

Funcionalidades

Similitud de oración
Transformadores de oraciones
ONNX
Safetensors
Transformers.js
Extracción de características
Incrustaciones de texto robustas

Casos de uso

Embeddings de texto para documentos en un índice RAG
Embeddings de preguntas para ser resueltas por aplicaciones RAG
Agrupación de textos en clústeres temáticos
Clasificación de textos usando los embeddings como características