Skip to content
BotServBotServ
OllamaEmbeddingsnomicmxbaisnowflake

Comparar modelos Embedding de Ollama

Compara modelos embedding para Ollama y RAG. nomic, mxbai, snowflake y MiniLM. Dimensiones, rendimiento y aplicaciones.

S

schutzgeist

3 min read
Comparar modelos Embedding de Ollama

Comparación de modelos de embedding en Ollama

Qué cubre este artículo sobre modelos de embedding

  • Qué son los embeddings.
  • Qué modelos de embedding ofrece Ollama.
  • Diferencias en dimensiones y calidad.
  • Cómo usarlos para RAG y búsqueda semántica.
  • Recomendaciones según el caso de uso.

Introducción: comparación de modelos de embedding en Ollama

Los embeddings convierten texto en vectores. Estos vectores permiten búsqueda semántica, clasificación y RAG. Ollama ofrece varios modelos de embedding que varían en tamaño, calidad y dimensiones del vector. El modelo correcto depende de la aplicación, el hardware disponible y la precisión deseada.

Este artículo compara los modelos de embedding más comunes en Ollama y ofrece recomendaciones prácticas.

Conceptos clave

  • Embedding: Representación vectorial de un texto.
  • Dimensión: Longitud del vector.
  • RAG: Retrieval Augmented Generation.
  • Cosine Similarity: Medida de similitud entre vectores.
  • Semantic Search: Búsqueda por significado, no solo por palabras clave.
  • Token: Unidad en que se divide el texto.
  • Quantization: Reducción de la precisión del modelo.

Modelos de embedding disponibles

ModeloDimensiónTamañoNota
nomic-embed-text768137MPopular, buen equilibrio
nomic-embed-text-v1.5768137MVersión mejorada
mxbai-embed-large1024335MAlta calidad
snowflake-arctic-embed768335MOptimizado para retrieval
all-minilm38422MMuy pequeño, rápido
bge-m31024567MMultilingüe

nomic-embed-text

  • Buena calidad general.
  • 768 dimensiones.
  • Relativamente rápido.
  • Muy usado en ejemplos de Ollama.

mxbai-embed-large

  • 1024 dimensiones.
  • Resultados a menudo mejores en RAG.
  • Más grande y más lento.
  • Útil para sistemas RAG profesionales.

snowflake-arctic-embed

  • Optimizado para retrieval de documentos.
  • Buen rendimiento en conjuntos de datos amplios.
  • 768 o 1024 dimensiones según la variante.

all-minilm

  • Muy pequeño y rápido.
  • 384 dimensiones.
  • Para tareas simples y hardware limitado.
  • Menos preciso que modelos más grandes.

bge-m3

  • Fortaleza multilingüe.
  • Soporta entradas largas.
  • Más grande, pero flexible.

Seleccionar el modelo correcto

Caso de usoRecomendación
Búsqueda simpleall-minilm
RAG estándarnomic-embed-text
Alta calidadmxbai-embed-large
Retrieval de documentossnowflake-arctic-embed
Multilingüebge-m3

Descargar en Ollama

ollama pull nomic-embed-text
ollama pull mxbai-embed-large

Generar embeddings

curl http://localhost:11434/api/embeddings -d '{
  "model": "nomic-embed-text",
  "prompt": "Docker es una herramienta de contenedores."
}'

Ejemplo en Python

import requests

url = "http://localhost:11434/api/embeddings"
payload = {
    "model": "nomic-embed-text",
    "prompt": "¿Qué es Ollama?"
}
response = requests.post(url, json=payload)
print(len(response.json()["embedding"]))

Considerar el chunking

Los modelos de embedding tienen limitaciones:

  • nomic-embed-text: 2048 tokens.
  • mxbai-embed-large: 512 tokens.
  • bge-m3: 8192 tokens.

Los textos más largos deben dividirse en chunks.

Comparar la calidad

La calidad se puede probar así:

  1. Generar embeddings del mismo texto con diferentes modelos.
  2. Verificar la similitud con documentos relevantes.
  3. Evaluar la relevancia de los resultados principales.
import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

Memoria y velocidad

ModeloVelocidadRAM/VRAM
all-minilmmuy rápidamuy poca
nomic-embed-textrápidapoca
mxbai-embed-largemediamedia
bge-m3más lentamás

Consejos prácticos

  • Para RAG con Ollama: nomic-embed-text o mxbai-embed-large.
  • Ajusta el tamaño del chunk al límite del modelo.
  • Usa el mismo modelo para queries y documentos.
  • Ejecuta benchmarks en tus propios datos.
  • El tamaño de la dimensión afecta el uso de memoria en la base de datos vectorial.

Enlaces y referencias

FAQ: Modelos de embedding en Ollama

¿Cuál es el mejor modelo de embedding? Para muchos casos, nomic-embed-text. Para máxima calidad, mxbai-embed-large.

¿Necesito un modelo especial para RAG? Sí, el modelo de embedding y el LLM son separados.

¿Cuántas dimensiones tienen sentido? 384-1024 funcionan para la mayoría de aplicaciones.

¿Puedo combinar embeddings? No directamente, solo modelos con la misma dimensión y espacio similar.

¿Qué tamaño de chunk? Depende del límite de tokens del modelo, típicamente 256-1024 tokens.

Fuentes y lecturas adicionales

Resumen: comparación de modelos de embedding en Ollama

Ollama ofrece varios modelos de embedding para requisitos distintos. nomic-embed-text es un buen modelo versátil, mxbai-embed-large proporciona mayor calidad, all-minilm es extremadamente rápido y pequeño. La elección depende de la calidad de RAG, el hardware y la velocidad. Lo importante es ajustar el tamaño del chunk, la dimensión del vector y usar consistentemente el mismo modelo para documentos y consultas. Probar un par de modelos con tus propios datos te llevará a la mejor solución.

Volver al blog
Share:

Entradas relacionadas