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