Naktor
BENCHMARK · JUL 2026

10 sistemas de extracción de documentos, medidos de verdad

Calidad con el harness oficial de OmniDocBench y doble juez LLM, coste real (no precio de lista) y latencia, sobre las mismas 100 páginas. Cuatro resultados que el marketing del sector no cuenta.

Por Hektor Jacynycz, CTO y cofundador de Naktor23 de julio de 2026

/1000 págs — calidad de podio al mejor precio
$0.99
TEDS en tablas — la mejor calidad del cuadro
90.9
más barato que el OCR cloud, con mejor calidad
on-prem — el documento nunca sale de tu infra
100%

Naktor · 100 páginas de OmniDocBench · reproducible

RESUMEN EJECUTIVO

Cuatro cosas que los números dicen y el marketing no

Medimos calidad, coste y latencia sobre la misma muestra pública. Esto es lo que sobrevivió a la verificación adversarial.

01

más caro, peor en tablas

La prima de Mistral OCR 4 no compra calidad

A $4/1000 (4× naktor-extractor) empata en texto, pero pierde 15 puntos de TEDS en tablas (75.8 vs 90.9) y dobla la distancia en fórmulas. Subir de OCR 3 a OCR 4 no compra mejora medible en este corpus.

02

0 / 3

métricas core ganadas a naktor

El hype de Unlimited-OCR no sobrevive al harness

Presentado por Baidu como estado del arte, pierde o empata con naktor-extractor en texto, tablas y fórmulas. Solo gana con claridad en manuscrito (0.22 vs 0.34): mérito real, lejos de «mejor en todo».

03

0.0 → 84.7

TEDS, mismo modelo

El modo de servir importa más que el modelo

El mismo PaddleOCR-VL pasa de inservible (TEDS 0.0, servido «a pelo») a segundo en tablas (84.7, pipeline oficial). Cualquier comparativa que no documente el serving es sospechosa.

04

on-prem

lidera la frontera

La mejor calidad-por-euro no sale de tu infra

naktor-extractor da calidad de cabeza a $0.99/1000, en tu propia infraestructura. Ningún API cloud se acerca a esa relación —y todos exigen sacar el documento fuera.

COSTE × CALIDAD

Más calidad. Menos coste.

Cada punto es un sistema sobre las 100 páginas. Cuanto más arriba, más calidad; cuanto más a la izquierda, menos coste. La esquina de arriba a la izquierda es la buena — y naktor-extractor está prácticamente solo en ella.

Más calidad. Menos coste. — Calidad de texto (100 − 100·dist. edición)7883889398$0.5$1$2$4$8$/1000 páginas (escala log)Calidad de texto (100 − 100·dist. edición)naktor-extractor$0.99 · calidad de podioPaddleOCR-VLUnlimited-OCRMistral OCR 4Mistral OCR 3DeepSeek-OCRolmOCR-2Docling
naktor-extractoron-prem — el documento no sale de tu infraAPI cloud

Para los API cloud y naktor-extractor el eje es el precio; para los sistemas open-source es el coste de autohospedarlos (exige tu propia infraestructura y operación). On-prem incluye el CPU (Docling).

RESULTADOS

Todos los sistemas, columna a columna

Ordena por cualquier columna. La fila de naktor-extractor va resaltada; ↓ = menor es mejor, ↑ = mayor es mejor.

sistemagobernanza
naktor-extractoron-prem0.0890.03690.90.10089.981.0$0.995.6
PaddleOCR-VL (pipeline oficial)on-prem0.0660.04684.70.09085.181.7$4.9910.9
Unlimited-OCR (Baidu)on-prem0.1020.06790.00.12087.082.2$0.747.7
Mistral OCR 4cloud0.0900.073*75.80.20889.183.6$4.002.2
Mistral OCR 3cloud0.0960.033*77.90.20385.178.1$2.001.4
DeepSeek-OCRon-prem0.1410.06673.50.27279.777.0$0.674.0
olmOCR-2 7Bon-prem0.1490.09167.20.21781.479.5$2.1532.1
DoclingCPU0.1890.10663.20.93675.470.2$1.453.1
(ablación) PaddleOCR-VL a peloon-prem0.1970.1840.00.7729.6

* Ver Hallazgo 3: una sola página distorsiona el texto EN de Mistral.

TEDS: similitud estructural de tablas, 0–100 (mayor, mejor). p50: mediana por página. Jueces A/B: dos LLM multimodales de familias distintas.

Las barras de la columna de coste usan escala logarítmica.

GUÍA DE DECISIÓN

Qué motor elegir según tu caso

No existe «el mejor OCR»: existe el mejor para tu KPI dominante y tus limitaciones. Esta guía sale directa de los números medidos.

KPI dominante · $/página con calidad de podio

Digitalización masiva de archivo, RAG corporativo, back-office

Elige

naktor-extractor

$0.99/1000, TEDS 90.9 (el mejor), texto 0.089; en tu propia infraestructura.

KPI dominante · El dato no sale de tu infra

Datos sensibles (banca, sanidad, legal, AAPP)

Elige

naktor-extractor (se despliega en tu infraestructura)

Todos los cloud quedan descartados por gobernanza antes de mirar precio.

KPI dominante · Coste en corpus mixto

Mezcla real de PDFs digitales + escaneados

Elige

naktor-extractor

Los documentos digitales salen mucho más baratos que los escaneados: solo pagas caro por lo difícil.

KPI dominante · Distancia de edición mínima

Fidelidad máxima de texto y fórmulas, coste secundario

Elige

PaddleOCR-VL (pipeline oficial)

Mejor texto (0.066) y fórmulas (0.090) — a $4.99/1000 (5× el precio de naktor) y throughput mono-hilo.

KPI dominante · Calidad en manuscrito

Volumen alto de manuscrito

Elige

Unlimited-OCR

0.22 vs 0.34 de naktor-extractor en manuscrito; barato de autohospedar ($0.74/1000).

KPI dominante · Latencia por página

Flujo interactivo de pocas páginas, usuario esperando

Elige

Mistral OCR 4 (u OCR 3 a mitad de precio)

2.2s/pág vía API sin gestionar infra; mejor juez de fidelidad (83.6). OCR 3 da calidad casi igual por $2.

KPI dominante · Simplicidad en CPU

Sin GPU, presupuesto mínimo, sin fórmulas

Elige

Docling

$1.45/1000 en CPU, texto 0.189 aceptable; inservible para fórmulas (0.936).

Nota post-benchmark: con el fix del Hallazgo 6, la fila de «fidelidad máxima» se estrecha — naktor-extractor mide ya 0.064 en texto (mejor que el 0.066 de PaddleOCR-VL); la ventaja de PaddleOCR-VL queda acotada a fórmulas.

EL PAPER COMPLETO

Método, hallazgos y limitaciones — sin recortes

El resumen de arriba sale de aquí. Esta es la parte que puedes citar, auditar y refutar.

Por qué este benchmark

Cada pocas semanas un lanzamiento («el OCR definitivo») reclama el estado del arte con números autoevaluados y sin coste real. naktor-extractor —nuestro servicio de extracción— se juega dinero real en saber la verdad. Este benchmark existe para responder con método lo que el hype responde con adjetivos: ¿qué calidad compra cada dólar, y bajo qué condiciones de gobernanza del dato?

Metodología

Corpus. 100 páginas muestreadas estratificadamente (seed fija, script publicado) de OmniDocBench (CVPR 2025), el benchmark estándar contra el que reportan Mistral, Baidu y DeepSeek —revisión fijada (aa1ee96, contenido v1.6, 1.651 páginas)—. Estratos: 12 manuscritas, 10 escaneos degradados, 20 tablas densas, 15 con fórmulas, 13 layout difícil, 15 con figuras, 15 texto denso; 57 páginas contienen inglés, 41 chino. La muestra sobrepondera a propósito los subsets *difíciles*: los absolutos aquí son más bajos que en el leaderboard público, lo que importa es la comparación bajo condiciones idénticas.

Sistemas y serving. Cloud: Mistral OCR 4 y 3 (API). Autohospedados en GPUs en la nube con la receta oficial de cada uno: Unlimited-OCR 3B, DeepSeek-OCR, PaddleOCR-VL 0.9B (pipeline oficial; el modo a pelo se reporta aparte como ablación), olmOCR-2 7B. CPU: Docling y Marker en un M-serie local (secuencial). naktor-extractor corrió en su configuración de producción.

Calidad. Dos capas independientes. (1) El harness oficial de OmniDocBench (quick_match, GT filtrado a las 100 páginas): distancia de edición de texto, TEDS de tablas, distancia de fórmulas y orden de lectura. (2) Doble juez LLM multimodal que ve la imagen y el markdown y puntúa completitud, fidelidad, estructura y alucinación, con dos jueces de familias distintas para no depender de un solo modelo. La capa (1) es estricta con la estructura; la (2) mide si la *información* sobrevive aunque el formato difiera. Las divergencias se investigan, no se promedian.

Coste. Medido, no de lista: los APIs por facturación real por página; los autohospedados por wall-clock de un lote de 100 páginas concurrente con el contenedor caliente × la tarifa por hora de GPU en la nube, a la concurrencia máxima que cada serving admite. El cold start se mide y reporta aparte. CPU local: tiempo × tarifa de un contenedor cloud equivalente. La cifra de naktor-extractor es su precio, no su coste.

Verificación adversarial. Toda anomalía se intentó refutar antes de publicarla, con las páginas y diffs delante. Los artefactos crudos existen localmente para auditoría; no se republican porque el copyright del corpus lo impide (ver Limitaciones).

Hallazgos verificados

1. La prima de precio de Mistral OCR 4 no se traduce en calidad. A $4/1000 (2× OCR 3, 4× naktor-extractor), OCR 4 empata en texto (0.090 vs 0.089), pierde 15 puntos de TEDS en tablas y dobla la distancia en fórmulas. Su fortaleza real es la latencia por página vía API (2.2s p50) y la fidelidad percibida por el segundo juez (83.6, la más alta) — para flujos interactivos de pocas páginas es un buen producto; para digitalización masiva su precio no se sostiene frente a la frontera on-prem.

2. El caso Unlimited-OCR: el hype no sobrevive al harness. El lanzamiento de Baidu presume de batir el estado del arte en OmniDocBench. En nuestra muestra dura, con su receta vLLM oficial, pierde o empata con naktor-extractor en texto, tablas y fórmulas, y solo gana con claridad en manuscrito (0.22 vs 0.34) — mérito real pero lejos de «mejor en todo». Su arquitectura (3B MoE, KV constante) sí lo hace barato de autohospedar ($0.74/1000).

3. Las métricas también mienten si no se auditan: un artefacto que casi publicamos. OCR 3 parecía mejor que OCR 4 en inglés (0.033 vs 0.073); el 93% de la brecha era UNA página —un índice de libro que OCR 4 renderizó como tabla y el GT anota como texto plano; la distancia de edición castiga el markup, no la lectura. Sin esa página, empate (0.034 vs 0.037). Lo publicamos porque un benchmark que no muestra sus falsos positivos no merece confianza.

4. El serving es parte del modelo. PaddleOCR-VL pasa de 0.197/TEDS 0.0 (VLM a pelo con prompt genérico) a 0.066/TEDS 84.7 (pipeline oficial con layout + prompts por elemento): el mismo checkpoint, 3× mejor texto y de inutilizable a segundo puesto en tablas. Los números de cualquier comparativa dependen de decisiones de serving que casi nunca se documentan.

5. La frontera calidad-precio es on-prem. Ningún API cloud domina a naktor-extractor en calidad-por-euro. Y hay un segundo eje que el precio no captura: gobernanza — todo lo enviado a Mistral sale de tu infraestructura, lo que para banca, sanidad o administración puede ser un descarte directo antes de mirar precio. naktor-extractor se despliega en tu infra, a $0.99/1000, con calidad de cabeza; y en documentos con capa de texto nativa (la mayoría reales) el coste baja mucho más — algo que este corpus, 100% escaneado, no ejercita.

6. (Post-benchmark) El benchmark nos auditó a nosotros. Al analizar página a página dónde perdíamos, la brecha entera de texto se concentraba en ~5 páginas cuyos títulos de tabla, pies de figura y sub-preguntas faltaban en nuestro markdown: se extraían bien, pero nuestro render los descartaba. Re-render A/B sin ruido (mismas salidas, solo cambia el render): texto 0.088 → 0.064 (chino −36%), orden de lectura 0.176 → 0.152. El mayor retorno de construir un benchmark reproducible fue poder auditar nuestro propio producto con él; el fix está commiteado con sus tests.

Limitaciones (léelas antes de citarnos)

  • 100 páginas. Suficiente para separaciones grandes (15 puntos de TEDS), frágil para diferencias finas: promedios sobre subconjuntos pequeños (14 páginas de fórmula) mueven ±0.05 con una sola página.
  • Corpus 100% escaneado (OmniDocBench entrega imágenes): en documentos con texto nativo (la mayoría reales) el coste baja mucho — algo que este corpus no mide —, y los CPU-clásicos compiten en su peor terreno.
  • Muestra sesgada a «difícil» a propósito: no comparar estos absolutos con el leaderboard oficial (sanity check: en las páginas inglesas da 0.036 vs 0.033 publicado — el harness está bien cableado).
  • Sin CDM de fórmulas (solo distancia de edición) y sin Azure ni AWS Textract (sin credenciales durante la ejecución; se añadirán en una revisión).
  • Marker se midió pero se excluye de la tabla principal: nuestro setup (CPU local secuencial) le da un coste 100× fuera de su rango representativo. Publicarlo como «Marker» sería engañoso; se reevaluará en modo GPU.
  • Jueces LLM no deterministas (±2 puntos entre runs) y con sesgos conocidos; por eso son la capa secundaria y hay dos de familias distintas.
  • Los autores comercializan naktor-extractor. El antídoto es la reproducibilidad: para los sistemas públicos, harness, page-IDs, seeds y configs están publicados; cualquiera puede re-derivar sus filas.

Reproducibilidad

Dataset: OmniDocBench revisión aa1ee96 (HuggingFace, descarga gratuita). Publicamos: script de muestreo con seed (corpus/sample.py, seed 20260703), los 100 page-IDs, los runners de los sistemas públicos con sus configs exactas, el driver del harness oficial, los prompts de jueces y este análisis. No republicamos las imágenes ni el markdown extraído (copyright del corpus) — se regeneran con los scripts en ~1h y ~$15.

Gasto total de este benchmark: ~$40 (APIs cloud, jueces LLM y cómputo). El benchmark que desmonta el marketing de un sector cuesta menos que una cena.

Extraemos documentos para sistemas que no pueden permitirse un dígito mal

¿Preguntas, réplicas, o un sistema que quieras ver añadido a la tabla? Hablamos.

Ver naktor-extractor