Duplicar la dimensionalidad (1536 → 3072) duplica la RAM, el almacenamiento y la latencia, pero solo proporciona un aumento del ~3-5% en la puntuación de recuperación MTEB en los modelos de OpenAI.
En documentos financieros, BM25 supera a text-embedding-3-large en Precision@5. La búsqueda léxica sigue siendo importante.
La recuperación híbrida + reranker proporciona Recall@5 = 0.816 frente a 0.587 para la recuperación densa pura, un aumento del +39% sin cambiar la dimensionalidad del embedding.
En 2026, text-embedding-3-large ya no será el líder: Qwen3-Embedding-8B (MTEB 75.22) y Gemini Embedding 2 (67.71 MTEB Retrieval) lo superan.
Para la mayoría de los escenarios RAG: primero, recuperación híbrida + reranker, luego medir, y solo entonces pensar en cambiar el modelo.
Parámetro
1536 (text-embedding-3-small)
3072 (text-embedding-3-large)
Tamaño del vector
~6 KB
~12 KB
RAM por 1M de fragmentos
~6.1 GB
~12.2 GB
Velocidad de búsqueda ANN
Más rápido
~1.5–2× más lento
Costo API de embedding
$0.02 / 1M tokens
$0.13 / 1M tokens (6.5×)
Recuperación MTEB (nDCG@10)
0.5108
0.5544 (+8.5%)
Índice HNSW de pgvector
✅ Soportado
⚠️ No soportado en GCP
Adecuado para la mayoría de RAG
✅ Sí
⚠️ No siempre justificado
Cuando un equipo construye un pipeline RAG y la recuperación devuelve resultados irrelevantes, la reacción típica es: "necesitamos un modelo de embedding más grande". La lógica es clara: más dimensiones → más información → mejor búsqueda. Pero los datos dicen lo contrario.
Este artículo es un análisis técnico para desarrolladores que diseñan RAG bajo restricciones específicas de RAM, costo y calidad. Analizamos cifras: benchmarks MTEB, costos de almacenamiento, latencia, y comparamos alternativas, en particular el reranking, que en la mayoría de los escenarios proporciona un mayor aumento en la calidad de recuperación por un menor costo que cambiar a un modelo de 3072 dimensiones.
¿Qué es un vector de embedding y qué significa su dimensionalidad?
Un modelo de embedding convierte texto en un vector numérico, una lista de números de longitud fija. Este vector es la "coordenada" del texto en un espacio semántico n-dimensional. Los textos con significado similar tienen vectores cercanos (alta similitud coseno); los textos con significado diferente están lejos.
La dimensionalidad del vector es la cantidad de números en esta lista. text-embedding-3-small devuelve 1536 números por texto de entrada. text-embedding-3-large, 3072.
¿Qué mide la dimensionalidad?
Dimensionalidad
Qué da teóricamente
Qué significa en la práctica
Más alta (3072+)
Un "alfabeto" más grande para codificar diferencias semánticas
Potencialmente una mejor separación entre conceptos similares pero diferentes
Más baja (768–1536)
Un espacio menos detallado
Suficiente para la mayoría de las consultas prácticas; el doble de barato de almacenar y buscar
Muy baja (256–512)
Representación comprimida
Rápido y barato; la calidad disminuye en tareas semánticas complejas
Importante: la dimensionalidad es una propiedad de la arquitectura del modelo y su entrenamiento, no simplemente "más es mejor". Estudios de sistemas RAG en producción muestran que reducir de 1536 a 384 dimensiones en algunos escenarios no produce una caída medible en la precisión de recuperación, al tiempo que reduce la latencia a la mitad y el almacenamiento en un 75%.
El precio de elegir la dimensionalidad: números concretos
100.000 fragmentos
1536 dimensiones → ~600 MB de RAM
3072 dimensiones → ~1.2 GB de RAM (+2×)
1.000.000 fragmentos
1536 dimensiones → ~6.1 GB de RAM
3072 dimensiones → ~12.2 GB de RAM (+2×)
10.000.000 fragmentos
1536 dimensiones → ~61 GB de RAM
3072 dimensiones → ~122 GB de RAM — otro nivel de servidor, otro presupuesto
El crecimiento es lineal: duplicas la dimensionalidad, duplicas todos los costos de almacenamiento y búsqueda.
La fórmula es simple: N fragmentos × dimensionalidad × 4 bytes (float32)
Matryoshka Representation Learning (MRL): usa large, almacena menos
text-embedding-3-large y text-embedding-3-small soportan MRL, un enfoque
donde las primeras dimensiones del vector llevan la señal semántica más general,
y cada una adicional agrega detalle. Esto permite "recortar" el vector después
de la generación sin un reentrenamiento completo del modelo.
En la práctica: generas un vector de 3072 dimensiones a través de la API, pero almacenas solo las primeras
256, 512, 1024 o 1536 dimensiones a través del parámetro dimensions.
La calidad no cae proporcionalmente, sino de forma no lineal:
Dimensionalidad almacenada
Recuperación MTEB (nDCG@10)
Relativo a 3072 completo
RAM por 1M de fragmentos
3072 (completo)
0.5544
100%
~12.2 GB
1536
0.5453
98.4%
~6.1 GB (−50%)
1024
0.5390
97.2%
~4.1 GB (−66%)
512
0.5233
94.4%
~2.0 GB (−83%)
256
0.4969
89.6%
~1.0 GB (−92%)
Reducir de 3072 a 1536 dimensiones proporciona un −50% de RAM con una pérdida de solo el 1.6% de calidad.
Hasta 1024, un −66% de RAM con un −2.8% de calidad. Este es el compromiso más práctico para la mayoría de los escenarios.
Importante: MRL solo funciona con modelos entrenados explícitamente con esta técnica
(text-embedding-3-* de OpenAI, algunos modelos de Cohere y Nomic).
El simple "recorte" de un vector de un modelo arbitrario dará lugar a una degradación sin garantías.
Cómo la dimensionalidad afecta la calidad de la búsqueda semántica
La ventaja teórica de una mayor dimensionalidad no siempre se realiza y no de manera uniforme. El impacto depende de tres factores: la naturaleza de los documentos, el tipo de consultas y la presencia de otros componentes del pipeline.
Dónde la dimensionalidad es realmente importante
Escenario
Por qué una mayor dimensionalidad ayuda
Efecto práctico
Diferencias semánticas sutiles
"Rescindir un contrato" vs "terminar un contrato" — palabras similares, significado legal diferente
Menos falsos positivos en la recuperación de documentos legales
Contenido multilingüe
Mayor espacio para codificar relaciones semánticas interlingüísticas
Mejor recuperación cross-lingual
Documentación técnica con terminología específica
Los términos técnicos a menudo son OOV o raros; un espacio mayor proporciona una mejor posición
Mejora menor en corpus especializados
Dónde la dimensionalidad es casi irrelevante
Escenario
Por qué la dimensionalidad no resuelve el problema
Preguntas frecuentes y respuestas cortas
Las consultas y los documentos son semánticamente directos; 768 dimensiones son más que suficientes
Textos contaminados con artefactos OCR
El ruido en el texto desplaza el vector independientemente de la dimensionalidad; el problema está en los datos de entrada
Consultas numéricas exactas
"Suma de 47.500 UAH" — la recuperación densa es inferior a BM25; la dimensionalidad no ayuda aquí
Colecciones muy pequeñas (< 10.000 fragmentos)
Con una colección pequeña, la diferencia entre modelos se nivela; cualquiera encontrará el fragmento correcto
text-embedding-3-small (1536) vs text-embedding-3-large (3072): diferencias reales
Benchmark MTEB: cifras
MTEB (Massive Text Embedding Benchmark) es un benchmark estándar para comparar modelos de embedding. Para RAG, la métrica más relevante es MTEB Retrieval (nDCG@10).
Un aumento del 8.5% en nDCG@10 es una diferencia real, pero es importante entender el contexto: es un benchmark en un conjunto general de tareas. En su corpus específico, la diferencia puede ser mayor o menor. Y por un costo de embedding 6.5 veces mayor, más un costo de almacenamiento 2 veces mayor.
Qwen3-Embedding-0.6B con 1024 dimensiones (70.70 MTEB) supera a text-embedding-3-large con 3072 dimensiones (66.43 MTEB), con una dimensionalidad menor y total disponibilidad autoalojada. Esto recuerda el mensaje principal del artículo: la dimensionalidad no es igual a la calidad.
Diferencia práctica en tareas reales
Tarea
small (1536)
large (3072)
Diferencia en la práctica
Consultas directas a FAQ ("¿cuál es el precio de X?")
Bien
Bien
Menor
Consultas semánticas en textos legales
Satisfactorio
Mejor
Notable, pero inferior a BM25 en términos precisos
Documentación técnica, terminología específica
Satisfactorio
Notablemente mejor
Diferencia real en recuperación técnica profunda
Consultas numéricas exactas
Malo
Malo
Ambos son inferiores a BM25; la dimensionalidad no resuelve el problema
Contenido multilingüe (mezcla uk/en)
Satisfactorio
Mejor
Notable para consultas cross-lingual
Impact on RAM, disk space, and search speed
The cost of storing vectors is linear with dimensionality. Each float32 takes 4 bytes. 1536 dimensions × 4 = 6,144 bytes (~6 KB) per vector. 3072 dimensions is exactly twice as much.
According to the Vector DB Costs 2026 analysis, one embedding call to text-embedding-3-large generates a 3072-dimensional vector — 10M documents yield 120 GB of raw vector data before indexing. Management costs for Pinecone for 10M vectors with 3072 dimensions are ~$70–120+/month versus $35–65 for 1536 dimensions.
Dot product of 3072 float32s is twice as expensive
HNSW index build time
Baseline
~1.5–2× longer
Larger graph; more memory during build
Query latency (p95, 1M vectors)
~5–15 ms
~10–30 ms
Approximate estimates; depends on hardware and index params
Embedding generation (API call)
Baseline
~1.2–1.5× longer
Larger API response; larger payload
Practical advice: pgvector and 3072 dimensions
If you are using pgvector, pay attention to an important limitation: GCP PostgreSQL does not allow creating HNSW indexes for vectors with >2000 dimensions. text-embedding-3-large with 3072 dimensions on pgvector in GCP means brute-force search without an index — a catastrophic degradation of latency on collections of 100,000+ chunks. Either reduce to 1536 using the API's dimensions parameter, or switch to Qdrant/Weaviate.
Comparison on typical RAG scenarios: legal documents, technical documentation, FAQ
Scenario 1: Legal documents
Legal texts are a complex case for dense retrieval. They contain both precise numerical values (sums, dates, articles) and subtle semantic differences (responsibility vs. obligation).
"What are the consequences of breaching contract terms?"
Dense (1536 or 3072) + reranker
Semantic query; dense better understands synonyms and paraphrasing
"Customer's liability in a construction contract"
Hybrid (BM25 + dense) + reranker
Combination of precise terms and semantics; hybrid provides the best Recall
Key takeaway for legal documents: the difference between 1536 and 3072 in the dense component is minimal compared to the effect of adding BM25 in a hybrid pipeline. Research on T2-RAGBench financial documents (2026) shows that hybrid + reranker yields Recall@5 = 0.816 versus 0.587 for pure dense retrieval with text-embedding-3-large — a +39% increase without changing the embedding model.
Scenario 2: Technical documentation
Technical documentation (API guides, specifications, RFCs) contains highly specialized terminology. Here, a 3072-dimensional model provides a more noticeable effect — narrow terms are encoded more precisely in a larger space.
However, there's a nuance here too: if the documentation contains exact names (functions, parameters, versions), BM25 or hybrid remains the better option for precise queries. The dense component helps with "how to do X" queries.
For FAQs, the optimal strategy is to start with text-embedding-3-small or even BGE-small (384 dimensions), measure Recall@5 on a test set of questions, and only if there's a measurable deficit, move to a larger model.
Overall table by scenario
Scenario
Recommended model
Reranker needed?
Is BM25 important?
FAQ / helpdesk (< 50K chunks)
text-embedding-3-small or BGE-small (384)
Optional
No
General corporate documents
text-embedding-3-small (1536)
Yes, recommended
Yes, hybrid
Legal documents
text-embedding-3-small + hybrid + reranker
Mandatory
Yes, mandatory
Technical documentation (narrow terminology)
text-embedding-3-large (3072) or Qwen3-8B
Yes
Yes for precise queries
Multilingual archive (uk + en)
text-embedding-3-large or Qwen3-Embedding (multilingual)
Why model quality is more important than dimensionality
Comparing text-embedding-3-small (1536) and text-embedding-3-large (3072) is a comparison of two products from the same vendor. But the real picture is broader: there are models with lower dimensionality and higher quality.
The already mentioned Qwen3-Embedding-0.6B (1024 dimensions, MTEB 70.70) outperforms text-embedding-3-large (3072 dimensions, MTEB 66.43) on the overall MTEB benchmark with lower dimensionality. Apache 2.0, fully self-hostable.
Critical — determines where vectors "live" in space
Check if the model was trained on domain-specific data (legal, medical, etc.)
Quality of input text
Critical — OCR artifacts shift the vector regardless of dimensionality
Text post-processing before embedding — higher priority than model selection
Chunk length and chunking strategy
Significant — too large a chunk dilutes the signal; too small loses context
Test 256, 512, 1024 tokens with overlap on your data
Presence of hybrid retrieval (BM25 + dense)
Significant — hybrid + reranker gives >30% Recall increase compared to pure dense
Implement hybrid before switching to a larger model
Reranker
Significant — cross-encoder is much more accurate than bi-encoder at the same scale
Add a reranker before changing the embedding model
The "FAISS Hybrid Paradox": when a larger model is worse
The study "Rethinking Hybrid Retrieval" (2025) revealed a counterintuitive result: MiniLM-v6 (a compact model) consistently outperforms BGE-Large when integrated with LLM-based reranking in tri-modal hybrid retrieval. The difference: up to 23.1% better nDCG@10 and 36.5% better nDCG@1 in the financial domain — with 93% fewer parameters and 63% smaller embeddings.
The reason is the "FAISS Hybrid Paradox": the embedding space of large models may not align with the relevance criteria of an LLM reranker. A larger model creates a more "stretched" space that the LLM reranker re-ranks less effectively than a compact one.
Conclusion: if your pipeline includes a reranker, it's not guaranteed that a larger embedding model will improve results. Test on your data.
Reranking as an alternative to increasing dimensionality
Reranker (or cross-encoder) is the second stage of retrieval. In the first stage, the embedding model finds top-k candidates by cosine similarity (fast, but not precise). In the second stage, the reranker re-ranks these candidates, evaluating each pair (query, document) together (slow, but much more precise).
Why a reranker is more accurate than an embedding
A bi-encoder (embedding model) encodes the query and document *independently*. This allows for fast ANN search, but means the model doesn't "see" the query and document simultaneously during encoding.
A cross-encoder (reranker) encodes the pair (query + document) *together*. Self-attention "sees" both texts simultaneously and can evaluate subtle semantic interactions. This is computationally much more expensive — but also much more precise.
Hybrid + reranker yields Recall@5 = 0.816 versus 0.587 for pure dense — a +39% increase without changing the embedding model. For comparison, switching from text-embedding-3-small to large provides ~8.5% improvement on MTEB Retrieval.
Strong cross-encoder; integrates with LangChain, LlamaIndex
Self-hosted, GDPR
Qwen3-Reranker-4B
Open-source, self-hosted
+2.6% recall compared to the 0.6B version; Apache 2.0
Self-hosted with GPU
Voyage AI Rerank
Cloud API
Competitive with Cohere; various options by cost
Cloud-based systems
When a reranker is not enough
A reranker only re-ranks what made it into the top-k from the first stage. If a relevant chunk didn't even make it into the top 50 candidates, the reranker won't help. In this case, a better embedding model or hybrid retrieval with a larger k is needed.
Also important: a reranker adds latency (~100–500 ms for 50 candidates). For real-time systems with requirements of <500 ms end-to-end, this can be a limitation.
Lógica de selección matricial: tamaño de la colección × precisión × presupuesto
Tamaño de la colección
Requisitos de precisión
Presupuesto
Recomendación
< 50K fragmentos
Básico
Cualquiera
text-embedding-3-small (1536) o BGE-small (384). Con una colección pequeña, la diferencia entre modelos es mínima.
< 50K fragmentos
Alto
Cualquiera
text-embedding-3-small + Cohere Rerank o bge-reranker-large. Reranker dará más que pasar a 3072.
50K – 1M fragmentos
Básico
Limitado
text-embedding-3-small (1536) + híbrido (BM25 + denso). Más barato y eficiente que large.
50K – 1M fragmentos
Alto, dominio técnico
Medio
text-embedding-3-large (3072) o Qwen3-Embedding-4B (autoalojado) + reranker + híbrido.
> 1M fragmentos
Cualquiera
Limitado
Autoalojado: Qwen3-Embedding-0.6B (1024) o BGE-M3 (1024). El coste de almacenamiento para 3072 dimensiones a esta escala es crítico.
> 1M fragmentos
Máximo, GDPR
Suficiente (GPU)
Qwen3-Embedding-8B (4096, Apache 2.0, autoalojado) + bge-reranker-large + híbrido. Mejor MTEB con autoalojamiento completo.
Cualquier tamaño
Alto, contenido multilingüe (uk+en)
Cualquiera
text-embedding-3-large o Qwen3-Embedding (fuertes en multilingüe). Para multilingüismo, la dimensionalidad es menos importante que el entrenamiento multilingüe.
Algoritmo de toma de decisiones
Pregunta
Sí → acción
No → siguiente pregunta
¿Hay un déficit medible de Recall (por debajo del objetivo)?
Continuar
No cambiar nada; el modelo actual es suficiente
¿Está implementada la recuperación híbrida (BM25 + denso)?
Siguiente pregunta
Primero añadir BM25; medir el efecto
¿Está implementado el reranker?
Siguiente pregunta
Añadir reranker; normalmente da más que pasar a 3072
¿Persiste el déficit después de híbrido + reranker?
Siguiente pregunta
El problema no está en el modelo de embedding; comprobar la calidad del texto y el chunking
¿La colección es > 1M fragmentos?
Considerar Qwen3-Embedding autoalojado (mejor MTEB, menor coste)
Pasar a text-embedding-3-large o Qwen3-Embedding; probar en datos reales
¿Es obligatorio GDPR / autoalojamiento?
Qwen3-Embedding-0.6B / 4B / 8B (Apache 2.0)
text-embedding-3-large o Gemini Embedding 2
Preguntas frecuentes: preguntas comunes sobre la dimensionalidad de los embeddings
¿Vale la pena pasar de 1536 a 3072?
Desde mi experiencia, en la mayoría de los casos no, al menos no como primer paso.
Pasar de small a large da un aumento de ~8.5% en MTEB Retrieval, pero cuesta 6.5 veces
más por API y el doble en almacenamiento. Antes de cambiar el modelo,
siempre compruebo primero: si está implementada la recuperación híbrida (BM25 + denso),
si hay un reranker. Estos dos componentes juntos dan un +39% en Recall@5, sin cambiar
la dimensionalidad en absoluto. Si después de esto persiste el déficit de calidad,
entonces sí, pasar a 3072 o a un mejor modelo está justificado.
¿Cuánto aumenta el consumo de RAM?
Exactamente el doble, la dependencia es lineal. 1M de fragmentos con 1536 dimensiones ocupan
~6.1 GB de RAM, con 3072 son ~12.2 GB. Con 10M de fragmentos, ya es la diferencia entre
61 GB y 122 GB, básicamente un nivel de servidor diferente y un presupuesto de infraestructura diferente.
Para colecciones pequeñas (hasta 100K fragmentos), la diferencia no es crítica: 600 MB frente a 1.2 GB
caben en cualquier instancia moderna. Pero al escalar,
se convierte en la primera limitación.
¿Afecta la dimensionalidad a la velocidad de pgvector?
Afecta, y hay una trampa práctica importante. En primer lugar, dimensiones más altas significan
más operaciones al calcular la similitud del coseno: la latencia de la consulta aumenta.
En segundo lugar, y esto es crítico: GCP PostgreSQL no admite la creación de índices HNSW
para vectores de más de 2000 dimensiones. Si usas text-embedding-3-large
(3072) con pgvector en GCP, obtienes búsqueda por fuerza bruta sin índice,
lo que en colecciones de 100K+ fragmentos provoca una degradación catastrófica de la latencia.
Solución: o reduce a 1536 a través del parámetro dimensions en la API,
o pasa a Qdrant o Weaviate.
¿Son necesarias 3072 dimensiones para un RAG pequeño?
No. Con una colección de hasta 50K fragmentos, la diferencia entre 1536 y 3072 es prácticamente imperceptible;
cualquier modelo encontrará el fragmento correcto en un índice pequeño.
Recomiendo empezar con text-embedding-3-small o incluso BGE-small (384 dimensiones),
medir el Recall@5 en un conjunto de preguntas de prueba y solo entonces tomar una decisión.
La mayoría de los equipos con los que he trabajado han descubierto que el problema no es la dimensionalidad,
sino la calidad del texto de entrada o la ausencia de un reranker.
¿Qué es más importante: el modelo o la dimensionalidad?
El modelo es siempre más importante. El mejor ejemplo: Qwen3-Embedding-0.6B
con 1024 dimensiones obtiene 70.70 MTEB, mientras que text-embedding-3-large
con 3072 dimensiones obtiene 66.43. Menor dimensionalidad, mejor resultado.
Desde mi experiencia, el orden de prioridad de optimización de RAG es el siguiente:
primero la calidad del texto de entrada, luego la estrategia de chunking,
luego la recuperación híbrida y el reranker, y solo después de eso
la elección o el cambio del modelo de embedding. La dimensionalidad es la última variable
que vale la pena ajustar.
Conclusiones
La elección entre 1536 y 3072 dimensiones no es la decisión principal al diseñar un pipeline RAG. Está mucho más abajo en la prioridad que la calidad de los datos de entrada, la estrategia de chunking y la presencia de recuperación híbrida con reranker.
Conclusiones clave
Tesis
Detalle
Mayor dimensionalidad ≠ mejor recuperación
Qwen3-Embedding-0.6B (1024 dimensiones, MTEB 70.70) supera a text-embedding-3-large (3072 dimensiones, MTEB 66.43). La calidad de la arquitectura y el entrenamiento importan más que el número de dimensiones.
Híbrido + reranker > cambio de modelo
Híbrido RRF + Cohere Rerank: Recall@5 = 0.816 vs 0.587 para denso puro (+39%). Este es un efecto mayor que el paso de small a large (~8.5% MTEB).
3072 dimensiones cuestan 2 veces más en almacenamiento y latencia
1M fragmentos: 6 GB RAM (1536) vs 12 GB (3072). Base de datos vectorial gestionada: ~2 veces un nivel superior. A escala > 1M fragmentos, este es un factor decisivo.
text-embedding-3-large ya no es el líder en 2026
El modelo no se ha actualizado desde enero de 2024. Gemini Embedding 2 (67.71 MTEB Retrieval), Qwen3-Embedding (Apache 2.0, autoalojado) son mejores alternativas.
Orden de prioridad de optimización de RAG
1. Calidad del texto de entrada → 2. Chunking → 3. Recuperación híbrida → 4. Reranker → 5. Selección/cambio del modelo de embedding.
Cómo se implementan estos principios en el producto
En AskYourDocs aplicamos un enfoque híbrido: recuperación híbrida (BM25 + denso), postprocesamiento de texto OCR antes de la indexación y enrutamiento de documentos complejos a Vision OCR. La elección del modelo de embedding y la dimensionalidad se seleccionan para el tipo específico de archivo, no como una constante fija, sino como un parámetro medido en los datos reales del cliente.