DEV Community

Cover image for Baidu publica Unlimited-OCR, sucesor de DeepSeek-OCR para documentos largos
lu1tr0n
lu1tr0n

Posted on • Originally published at elsolitario.org

Baidu publica Unlimited-OCR, sucesor de DeepSeek-OCR para documentos largos

Baidu publicó Unlimited-OCR, un modelo de reconocimiento óptico de caracteres que promete leer documentos enteros —decenas de páginas— de una sola pasada. El proyecto, liberado el 22 de junio de 2026 y acompañado de un paper en arXiv un día después, parte del trabajo de DeepSeek-OCR y lo lleva un paso más allá.

En menos de una semana ya acumulaba más de 2.000 estrellas en GitHub. Para quienes procesan PDFs, facturas o archivos escaneados en LATAM, esto puede cambiar cómo se construyen los pipelines de extracción de datos.

TL;DR

  • Baidu liberó Unlimited-OCR el 22 de junio de 2026, un modelo OCR enfocado en parsear documentos largos en una sola pasada (one-shot long-horizon).- Está construido sobre DeepSeek-OCR y busca llevar su idea de compresión óptica de contexto un paso más allá.- Tiene 3.000 millones de parámetros, usa precisión BF16 y maneja un contexto de 32.768 tokens.- Ofrece dos modos para imagen única: gundam (image_size=640, recorte activado) y base (image_size=1024).- Soporta inferencia con Transformers, SGLang, vLLM y Docker; procesa imágenes sueltas y PDFs multipágina.- Se distribuye con licencia MIT y está disponible en Hugging Face y ModelScope.- En menos de una semana superó las 2.000 estrellas en GitHub; el paper salió en arXiv el 23 de junio de 2026.

Qué pasó: Baidu presenta Unlimited-OCR

El 22 de junio de 2026, el equipo de Baidu publicó en GitHub Unlimited-OCR, un modelo de reconocimiento óptico de caracteres (OCR) cuyo lema resume su ambición: "Welcome the Era of One-shot Long-horizon Parsing", es decir, parsear documentos largos en una sola pasada. Un día después, el 23 de junio, los autores liberaron el paper correspondiente en arXiv y publicaron los pesos del modelo tanto en Hugging Face como en la comunidad china ModelScope.

La descripción del propio repositorio no deja dudas sobre su linaje: el objetivo declarado es "push DeepSeek-OCR one step further" (llevar a DeepSeek-OCR un paso más allá). En otras palabras, Unlimited-OCR no nace de cero, sino que toma una arquitectura que ya había hecho ruido a finales de 2025 y la especializa para un problema concreto: documentos muy largos —informes, contratos, libros escaneados— que hasta ahora obligaban a trocear y procesar página por página.

La recepción fue rápida. En menos de una semana el repositorio superó las 2.000 estrellas y acumulaba más de 120 forks, una señal clara de que la comunidad de desarrolladores está prestando atención a esta familia de modelos. No es para menos: el OCR de documentos es uno de esos problemas que parecen resueltos hasta que uno intenta procesar un PDF de 80 páginas con tablas, columnas y notas al pie.
El reto que ataca Unlimited-OCR: documentos largos, completos, de un tirón.

Contexto e historia: de DeepSeek-OCR a la compresión óptica

Para entender por qué Unlimited-OCR importa hay que mirar a su predecesor. DeepSeek-OCR, publicado por DeepSeek AI, no es un OCR tradicional. Su propuesta central es lo que llaman compresión óptica de contexto (context optical compression): en lugar de convertir una página en miles de tokens de texto, la imagen de la página se comprime mediante un encoder visual en un conjunto mucho más pequeño de tokens visuales que el modelo de lenguaje luego "lee".

La idea es contraintuitiva pero poderosa. Un párrafo denso puede ocupar 1.000 tokens de texto, pero la imagen de ese mismo párrafo —procesada por un buen encoder— puede representarse con una fracción de esos tokens. Para documentos largos, donde el cuello de botella es la ventana de contexto del modelo de lenguaje, esta compresión es la diferencia entre procesar tres páginas o treinta sin reventar la memoria.

DeepSeek-OCR acumula más de 23.000 estrellas en GitHub y soporta tareas como conversión de documento a Markdown, descripción de imágenes, parsing de figuras y localización espacial de elementos, con resoluciones que van de 512×512 hasta 1280×1280 píxeles. Unlimited-OCR hereda ese andamiaje y lo afina para el escenario long-horizon, donde el desafío no es leer una página bonita, sino mantener la coherencia a lo largo de un documento entero.

📌 Nota: Unlimited-OCR y DeepSeek-OCR no compiten: el primero es una extensión del segundo. Si ya conocés DeepSeek-OCR, la curva de aprendizaje es mínima porque comparten gran parte de la API.

Cómo funciona Unlimited-OCR por dentro

Unlimited-OCR es un modelo visión-lenguaje de 3.000 millones de parámetros que corre en precisión bfloat16 y maneja un contexto de hasta 32.768 tokens. Para imagen única ofrece dos configuraciones que vale la pena entender bien antes de elegir:

  • gundambase_size=1024, image_size=640 y crop_mode=True. Recorta la imagen en fragmentos; ideal para páginas con mucho detalle o letra pequeña.- basebase_size=1024, image_size=1024 y crop_mode=False. Procesa la página completa sin recortes; es el modo obligatorio para PDFs multipágina.

El truco para el procesamiento largo está en un detalle de muestreo: un logit processor personalizado llamado DeepseekOCRNoRepeatNGramLogitProcessor. Cuando un decoder parsea decenas de páginas seguidas, el riesgo más común es que entre en bucle y repita el mismo fragmento una y otra vez. Este procesador prohíbe repetir n-gramas (con no_repeat_ngram_size=35 dentro de una ventana deslizante), lo que mantiene la salida coherente a lo largo de documentos enteros. Es un detalle pequeño en el código, pero es exactamente lo que separa "funciona en una página" de "funciona en ochenta".

graph LR
  A["PDF / imagenes"] --> B["Encoder visual"]
  B --> C["Tokens comprimidos"]
  C --> D["Decoder LLM"]
  D --> E["Markdown / texto"]
Enter fullscreen mode Exit fullscreen mode

De la imagen a Markdown: la compresión óptica reduce los tokens necesarios.

Cómo instalarlo y correrlo (Windows, macOS y Linux)

El flujo recomendado usa Transformers de Hugging Face sobre GPUs NVIDIA. Primero, el entorno virtual y las dependencias. En Linux y macOS:

python3 -m venv .venv
source .venv/bin/activate
pip install torch torchvision transformers pillow pymupdf einops addict easydict
Enter fullscreen mode Exit fullscreen mode

En Windows (PowerShell):

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install torch torchvision transformers pillow pymupdf einops addict easydict
Enter fullscreen mode Exit fullscreen mode

Una vez instalado, parsear una imagen única es directo. Acá usamos el modo gundam para una factura escaneada:

import torch
from transformers import AutoModel, AutoTokenizer

model_name = "baidu/Unlimited-OCR"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
    model_name,
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
).eval().cuda()

model.infer(
    tokenizer,
    prompt="document parsing.",
    image_file="factura.jpg",
    output_path="salida/",
    base_size=1024, image_size=640, crop_mode=True,
    max_length=32768,
    no_repeat_ngram_size=35, ngram_window=128,
    save_results=True,
)
Enter fullscreen mode Exit fullscreen mode

Para PDFs, el patrón es convertir cada página a imagen con PyMuPDF y pasar la lista a infer_multi en modo base:

import os, tempfile
import fitz  # PyMuPDF

def pdf_a_imagenes(pdf_path, dpi=300):
    doc = fitz.open(pdf_path)
    tmp = tempfile.mkdtemp(prefix="ocr_")
    mat = fitz.Matrix(dpi / 72, dpi / 72)
    paths = []
    for i, page in enumerate(doc):
        out = os.path.join(tmp, f"page_{i+1:04d}.png")
        page.get_pixmap(matrix=mat).save(out)
        paths.append(out)
    doc.close()
    return paths

model.infer_multi(
    tokenizer,
    prompt="Multi page parsing.",
    image_files=pdf_a_imagenes("contrato.pdf"),
    output_path="salida/",
    image_size=1024,
    max_length=32768,
    no_repeat_ngram_size=35, ngram_window=1024,
    save_results=True,
)
Enter fullscreen mode Exit fullscreen mode

Si necesitás servir el modelo como API, el repositorio incluye instrucciones para SGLang con un endpoint compatible con OpenAI y streaming, además de soporte para vLLM y Docker. Eso lo vuelve fácil de integrar en un backend existente sin reescribir la lógica de cliente.

💡 Tip: Usá gundam (640px, con recorte) para páginas individuales con letra chica o tablas densas, y base (1024px) cuando proceses PDFs multipágina. El modo base es obligatorio para infer_multi.

Datos y cifras de Unlimited-OCR

  • 3B parámetros, precisión BF16, licencia MIT.- Contexto de 32.768 tokens.- Dos modos de imagen: gundam (640px) y base (1024px).- 2.000+ estrellas y 120+ forks en GitHub en menos de una semana.- DeepSeek-OCR, su base, supera las 23.000 estrellas.- Disponible en Hugging Face y ModelScope; inferencia vía Transformers, SGLang, vLLM y Docker.- Probado con Python 3.12, CUDA 12.9, torch 2.10 y transformers 4.57.

Impacto y análisis para desarrolladores en LATAM

El OCR de documentos largos no es un capricho académico: es un problema cotidiano y caro. Pensá en una pyme salvadoreña que digitaliza facturas, un estudio jurídico en Bogotá que procesa contratos de cientos de páginas, o un banco que debe extraer datos de estados de cuenta escaneados. Hoy, la práctica común es trocear el documento, llamar a un servicio en la nube página por página y luego coser los resultados —un proceso frágil, lento y, sobre todo, costoso cuando se factura por página o por token.

Un modelo como Unlimited-OCR, con licencia MIT y pesos abiertos, cambia esa ecuación. Al ser abierto, puede correr on-premise o en una GPU propia, lo que importa mucho en sectores donde sacar documentos sensibles fuera de la organización es un problema legal o de cumplimiento. Y al estar pensado para procesar el documento de una sola pasada, reduce la complejidad de orquestación: menos llamadas, menos pegado manual de fragmentos, menos puntos donde algo se rompe.

Hay que mantener las expectativas realistas, eso sí. Hablamos de un modelo de 3.000 millones de parámetros que necesita una GPU con memoria suficiente para cargar pesos en BF16 y procesar imágenes a 1024px. No es algo que corra cómodamente en una laptop sin aceleración. Para equipos sin infraestructura propia, la ruta práctica sigue siendo rentar una instancia con GPU o usar el endpoint SGLang en un servidor. Aun así, la economía de un modelo abierto frente a una API por uso suele inclinar la balanza cuando el volumen es alto.

Qué sigue

El lanzamiento llega con paper en arXiv, lo que sugiere que el equipo quiere que la comunidad valide y reproduzca sus resultados, no solo que use el modelo. En el corto plazo es esperable ver benchmarks independientes que comparen Unlimited-OCR con DeepSeek-OCR y con alternativas comerciales en tareas concretas: tablas complejas, manuscritos, idiomas no latinos y, ojalá, documentos en español con tildes y caracteres especiales.

La presencia en ModelScope, además de Hugging Face, deja claro que la apuesta de Baidu mira al ecosistema chino tanto como al global. Para los desarrolladores hispanohablantes, lo interesante será comprobar qué tan bien generaliza fuera de los idiomas en los que probablemente se entrenó. Si la calidad en español resulta sólida, Unlimited-OCR tiene todo para convertirse en una pieza estándar de los pipelines de digitalización en la región.

📖 Resumen en Telegram: Ver resumen

Preguntas frecuentes

¿Qué es Unlimited-OCR?

Es un modelo de OCR de código abierto publicado por Baidu el 22 de junio de 2026, diseñado para parsear documentos largos en una sola pasada. Tiene 3.000 millones de parámetros y está construido sobre DeepSeek-OCR.

¿En qué se diferencia de DeepSeek-OCR?

Unlimited-OCR es una extensión de DeepSeek-OCR. Hereda su técnica de compresión óptica de contexto, pero la especializa para documentos muy largos, sumando un procesamiento multipágina robusto y un control de repeticiones que evita que el modelo entre en bucle al leer decenas de páginas.

¿Necesito una GPU para usarlo?

Sí, en la práctica. El flujo recomendado usa Transformers sobre GPUs NVIDIA con precisión BF16. Necesitás una tarjeta con memoria suficiente para cargar un modelo de 3B y procesar imágenes a 1024px. También podés servirlo con SGLang o vLLM en un servidor con GPU.

¿Tiene licencia libre para uso comercial?

Sí. Según su ficha en Hugging Face, se distribuye bajo licencia MIT, una de las más permisivas, lo que permite uso comercial siempre que se respeten los términos de atribución de la licencia.

¿Puede procesar PDFs directamente?

No directamente como PDF, pero el repositorio muestra el patrón estándar: convertir cada página del PDF a imagen con PyMuPDF y pasar la lista al método infer_multi en modo base (image_size=1024).

¿Funciona bien con texto en español?

Aún no hay benchmarks independientes específicos para español. Como hereda de DeepSeek-OCR, debería manejar texto latino, pero conviene probarlo con tus propios documentos —especialmente con tildes, ñ y tablas— antes de llevarlo a producción.

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Top comments (0)