Falcon Perception: Transformer early-fusion para visión | Keryc
Falcon Perception presenta una apuesta clara: un solo Transformer de fusión temprana que procesa imagen y texto en la misma pila para hacer grounding y segmentación de vocabulario abierto. ¿Suena a simplificación arriesgada? Sí, pero los resultados y el diseño muestran por qué esa simplicidad puede ganar en velocidad, claridad y escalabilidad.
Diseño central
La idea es directa y elegante. En lugar de la receta clásica vision encoder + fusion decoder, Falcon Perception usa un Transformer autoregresivo que consume una secuencia unificada de parches de imagen, tokens de texto y tokens de tarea desde la primera capa.
Imagen y texto comparten el mismo espacio de parámetros.
Uso de una máscara de atención híbrida para respetar la estructura distinta de ambos dominios.
La máscara híbrida es clave: los tokens de imagen se atienden bidireccionalmente entre sí para construir contexto visual global. Los tokens de texto y de tarea siguen atención causal respecto a todo lo anterior —incluida la visualidad— para permitir generación autoregresiva de respuestas y listas de instancias.
Interfaz de salida: Chain-of-Perception
¿Cómo representar un número variable de objetos sin explotar en latencia? Falcon Perception usa una interfaz compacta y estructurada en tres pasos por instancia: <coord> → <size> → <seg>.
<coord> predice el centro del objeto y resuelve a qué instancia se refiere el modelo.
<size> estima la extensión espacial.
<seg> es un embedding que, mediante producto punto con características upsampleadas, genera una máscara en alta resolución.
Este orden reduce ambigüedad y convierte la etapa de máscara en una refinación condicionada por geometría ya resuelta. No hace falta decodificar polígonos token a token, lo que mantiene costos razonables.
Heads y codificación de coordenadas
Coordenadas y tamaños se decodifican con una cabeza que usa Fourier features: proyección gaussiana aleatoria seguida de senos y cosenos para superar el sesgo espectral y permitir localización continua precisa.
Las coordenadas decodificadas se reinyectan en la secuencia como condicionamiento para pasos posteriores.
La cabeza de segmentación realiza un producto punto entre el estado oculto de <seg> y las características upsampleadas dependientes del contenido.
Datos, preprocesos y curriculum de entrenamiento
Construyeron un pipeline de múltiples etapas para obtener cobertura y dificultad balanceada:
Clustering jerárquico con embeddings DINOv3 para cobertura uniforme de conceptos.
Listing denso impulsado por VLMs para generar descripciones por imagen, etiquetadas según dificultad de PBench.
Minería negativa para contrarrestar alucinaciones.
Consenso de ensamblado entre SAM 3, Qwen3-VL-30B y Moondream3 para aceptación automática; discrepancias van a anotadores humanos.
Ratio estricto 1:1 entre positivos y negativos para priorizar la calibración de presencia.
Fases de entrenamiento principales:
In-Context Listing (450 GT): aprende a listar inventarios de escena con atención causal completa entre queries. Esto construye comprensión global de la escena.
Task Alignment (225 GT): queries no se ven entre sí, simulando consultas independientes; el entrenamiento se centra en clasificación de presencia y localización.
Long-Context Finetuning (10 GT): expande contexto para manejar escenas densas sin perder capacidades anteriores.
También usan multi-teacher distillation para la inicialización visual: DINOv3 (ViT-H) para características locales y SigLIP2 para alineación con lenguaje. La distilación trae 74.25% zero-shot en ImageNet-1k y 85.11% linear-probe mIoU en Pascal VOC.
PBench: benchmark diagnóstico
PBench segmenta la evaluación por capacidades dominantes, evitando un único puntaje opaco. Niveles y ejemplos:
Nivel
Capacidad
Ejemplo de prompt
L0
Objetos simples
car
L1
Atributos y subtipos
red car
L2
OCR-guided
Diet Coke bottle
L3
Comprensión espacial
car on the left
L4
Relaciones e interacciones
person holding umbrella
Dense
Escenas muy concurridas
cientos de instancias
Cada muestra apunta a una capacidad dominante, lo que permite un perfil de fortalezas y debilidades y ayuda a decidir si invertir en datos, curriculum o componentes adicionales.
Ablaciones y elecciones de diseño
Resultados prácticos de decisiones puntuales:
Optimizer Muon para heads especializados vs AdamW: +4.8 puntos en detección SA-Co.
Orden rasterizado de instancias vs aleatorio: +10 puntos en SA-Co.
Regularización por características Gram para evitar deriva de distilación: +1.5 puntos en segmentación.
Normalización global de pérdida para corregir sesgos al empacar secuencias variables en FSDP.
Estas elecciones muestran que pequeños ajustes en entrenamiento y ordenamiento son tan importantes como la arquitectura central.
Resultados y comparación con SAM 3
En el benchmark SA-Co open-vocabulary segmentation, Falcon Perception (0.6B parámetros) alcanza Macro-F1 68.0 frente a 62.3 de SAM 3. La mayor brecha aparece en prompts composicionales: OCR, espacialidad y relaciones.
Metricamente:
Macro-F1: 68.0 vs 62.3 (SAM 3)
Presencia / calibración (MCC): 0.64 vs 0.82 (SAM 3) — aquí Falcon tiene la principal área de mejora.
Desglose por capacidad (ganancias sobre SAM 3):
Capacidad
SAM 3
Falcon Perception
Gap
L0 simple
64.3
65.1
+0.8
L1 atributos
54.4
63.6
+9.2
L2 OCR-guided
24.6
38.0
+13.4
L3 espacial
31.6
53.5
+21.9
L4 relaciones
33.3
49.1
+15.8
Dense
58.4
72.6
+14.2
Falcon brilla especialmente cuando la tarea exige composicionalidad: leer texto en objetos, resolver relaciones espaciales o escalar a cientos de instancias.
Falcon OCR: OCR compacto y rápido
Además liberan Falcon OCR, modelo de 0.3B parámetros diseñado desde cero para OCR con la misma idea de early-fusion y máscara híbrida. Entrenado en mezcla curada para parsing de documentos, fórmulas y tablas.
Resultados principales:
olmOCR: 80.3% (líder en Multi-Column 87.1% y Tables 90.3%).
OmniDocBench: 88.64, por delante de varios modelos más grandes y/o propietarios.
La ventaja práctica es el throughput: a 0.3B parámetros es 3x más pequeño que otras soluciones de ~0.9B, lo que permite mayor rendimiento en despliegue. En su medición con vLLM y A100-80GB alcanzan 5,825 tok/s y 2.9 img/s en modo Layout + OCR.
Infraestructura de inferencia
Para servir estos patrones y el caching necesario, implementaron una pila sobre PyTorch FlexAttention con características clave:
Paged KV cache con tablas de páginas virtuales para evitar memoria desperdiciada por padding.
Continuous batching para insertar nuevas secuencias en medio de la generación.
CUDA graph capture para bucle de decodificación.
Background tokenization y un HR feature cache para saltar el upsampling costoso cuando se reusa una imagen.
En H100, latencias típicas: ~100 ms prefill, ~200 ms upsampling (0 ms si está en cache), ~50 ms decode para unos pocos objetos. Valores dependientes de resolución y longitud de secuencia.
Limitaciones y próximos pasos
Falcon Perception demuestra que un solo backbone early-fusion puede competir y superar a pipelines más complejos en muchas capacidades, pero no es perfecto:
Calibración de presencia sigue siendo el punto débil principal (MCC 0.64).
Algunas ventajas dependen de un pipeline de datos y curriculum muy cuidadoso.
Escalar contexto y mezclar más datos textuales y visuales son caminos naturales para mejorar.
¿Y si necesitas más queries paralelas o latencias ultrabajas en producción? El diseño no bloquea vías de escalado: se puede aumentar contexto, datos y parámetros manteniendo la simplicidad del stack.
Falcon Perception es una invitación a repensar la arquitectura clásica de percepción multimodal. En lugar de ensamblar más módulos, la lección es que con la máscara de atención correcta, una interfaz compacta y un curriculum de datos pensado, un solo Transformer puede resolver grounding, OCR y segmentación de forma competitiva.