Problema de habilidades: deja de desplegar modelos de visión y lenguaje, úsalos con Skills — Merve Noyan, Hugging Face

AAI Engineer
Computing/SoftwareSmall Business/Startups

Transcript

00:00:00Hola y bienvenidos a esta charla sobre el problema de habilidades («skill issue»). La verdad es que ya no es un problema de habilidades. Para cuando termine
00:00:22esta charla, podréis construir muchísimas cosas con modelos de visión si es que no lo estáis haciendo ya.
00:00:27Brevemente sobre mí: soy Merve. Llevo trabajando en visión por computador desde la época de LLaVA y últimamente me dedico más a agentes y temas integrados en dispositivos porque me fascina, y me encantan tanto los modelos de lenguaje y visión (VLM) que incluso escribí un libro sobre ello. Pero ya no quiero que los desarrolladores usen directamente los modelos de visión y lenguaje, sino que quiero que cada desarrollador empiece a
00:00:54crear aplicaciones de visión de principio a fin, y esta charla os dará una buena base para lograrlo. El comportamiento habitual que observo en los desarrolladores es que intentan usar modelos de lenguaje y visión para todo, pero nunca vais a conseguir tiempo real, y cuando digo tiempo real me refiero a que tengáis una tostadora
00:01:18y obtengáis como 30-40 fps en ella, ya sea para clasificación de imágenes, segmentación de instancias o lo que sea,
00:01:28y no son súper robustos en comparación con si entrenaseis, por ejemplo, un RF-DETR, del que Joseph habló en la primera charla.
00:01:39Siempre superará a vuestro modelo de lenguaje y visión, y hoy os lo voy a demostrar.
00:01:47A la derecha podéis verme a mí haciendo cosas con RF-DETR.
00:01:52Otra cosa es que no se leen las licencias. Cada vez que publico algo sobre detección de objetos, siempre me preguntan por YOLO. YOLO es un buen modelo, pero creo que tiene una licencia GPL 3.0,
00:02:07y juraría por mi vida que hay desarrolladores que lo despliegan sin saber
00:02:12que tienen que pagar por ello. Así que sí, quiero que hoy os migréis a modelos con licencia Apache 2.0.
00:02:23Y para esto he creado algo llamado Vibe Vision, que está inspirado en una publicación de Maziar.
00:02:30Básicamente, lo que hace es darle el modelo SAM 3.1 como herramienta a Gemma 4 para que la llame, y me parece súper
00:02:39impresionante. Hoy he creado un conjunto de herramientas con el que podéis hacer esto mismo con incluso más cosas.
00:02:49Así que estoy destilando un poco mi propio criterio. En primer lugar, este conjunto de herramientas tiene mis modelos favoritos como herramientas,
00:02:57para que se los podáis dar a vuestro agente, porque vuestro agente de código es básicamente un ingeniero de visión por computador despistado.
00:03:03Cuando aplico mi criterio para elegir un modelo, siempre compruebo
00:03:09lo siguiente: primero, la licencia es la máxima prioridad para mí, tiene que ser Apache 2.0, MIT o
00:03:16algo no comercial; en segundo lugar, el rendimiento tiene que estar a la altura según su tamaño o
00:03:24sus elecciones arquitectónicas, por lo que reviso las evaluaciones comparativas cada vez que sale un modelo de una conferencia de visión por computador;
00:03:31y en tercer lugar, por intuición («vibes»), obviamente. Este conjunto de herramientas tiene una segunda parte, que es como una parte de entrenamiento por intuición,
00:03:41que es la más emocionante, así que la explicaré primero. Me puse en el lugar
00:03:47de los desarrolladores para construir una aplicación de visión: si tengo imágenes etiquetadas, fácil, solo tengo que entrenar un modelo
00:03:55o puedo darle a mi agente de visión por computador algunos tutoriales para hacerlo, porque todo está disponible,
00:04:02ya que creamos transformers para ello. Pero si solo tengo imágenes, tengo que anotarlas, evaluar
00:04:11las anotaciones y luego entrenar el modelo. Pero ¿cómo hacerlo a escala? Se puede usar un modelo
00:04:17de lenguaje y visión como etiquetador, y otros modelos de lenguaje y visión como juez, y luego entrenar lo que quieras. ¿Pero
00:04:24cómo es este proceso? Básicamente he construido esto, que tiene un VLM para etiquetar, VLM como
00:04:35juez y luego el entrenamiento. Es una tarea a largo plazo para agentes de código y cuenta con amplio soporte
00:04:42de infraestructura: podéis hacerlo de forma local o remota. Funciona sobre la infraestructura de Hugging
00:04:48Face; tenemos tareas que os permiten hacer procesamiento en lotes puntual o entrenamiento.
00:04:54También tenemos un sistema de enrutamiento sin servidor llamado proveedores de inferencia, donde podéis usar múltiples
00:05:00proveedores, y disponemos de almacenamiento («buckets») para volcar datos intermedios además de los repositorios de conjuntos
00:05:07de datos, repositorios de modelos, etc. Pero ¿qué hace posible este trabajo? En primer lugar, mi modelo favorito, RF-DETR; RF-DETR
00:05:17para segmentación; actualmente estoy trabajando en la segmentación. Tenemos mejores agentes para tareas de largo alcance
00:05:24donde sabéis que hay que supervisar el proceso de etiquetado, el de entrenamiento, etc.,
00:05:32y los modelos de visión más pequeños pero más capaces permiten etiquetar contenido de forma muy barata. Además,
00:05:40con Transformers hicimos la reestructuración v5, por lo que actualmente rinde mejor para los modelos de visión.
00:05:47Así es como se ve la secuencia de trabajo en realidad: en primer lugar, etiqueto el conjunto de datos; tomo un conjunto
00:05:54de imágenes cualquiera y lo etiqueto con Qwen 3.5 9B. Luego paso el conjunto
00:06:02de datos etiquetado a dos jueces: el primero es Gemma 4 E4B, que es un juez de unos 8B, y el segundo es
00:06:10LFM 2.5 VL, que tiene casi 2B y es relativamente más pequeño. Tras revisar la investigación, vi que es mejor
00:06:18usar un conjunto de jueces más pequeños y combinar sus juicios. También revisé las investigaciones
00:06:26al respecto y la mayoría de la gente pide al VLM o LLM que le asigne una puntuación, pero esas puntuaciones
00:06:34no funcionan en absoluto, especialmente si los modelos utilizados como juez son de diferente tamaño.
00:06:40Luego lo paso a entrenar en RF-DETR mediano o grande. Hablé un poco con la gente de Roboflow y me animaron a usar
00:06:47eso, y realmente funciona, os lo mostraré muy pronto. ¿Pero cómo funciona? Tomas
00:06:55el repositorio y simplemente le pides: «Vale, ¿puedes realizar el entrenamiento en este conjunto de datos
00:07:04en el Hub?». Y comenzará. Si el conjunto de datos ya tiene etiquetas, podéis pasar
00:07:11directamente al entrenamiento; si no las tiene, podéis empezar a anotar. El truco
00:07:19está en que le paso al juez los cuadros delimitadores superpuestos en las imágenes. Qwen técnicamente genera
00:07:27los cuadros delimitadores como tokens, pero no le paso eso, sino que superpongo los cuadros delimitadores y le paso esa imagen
00:07:33junto con algunas etiquetas y descripciones de etiquetas, y le digo: «Si esta descripción tiene un cuadro delimitador
00:07:40encima, dime si apruebas o no». Luego combino los veredictos de los jueces
00:07:49basándome en un acuerdo mínimo y no en un consenso, y más adelante explicaré por qué lo hice así.
00:07:56Estas descripciones de etiquetas también las generan agentes de código y tú solo las apruebas como humano.
00:08:03Todos los modelos que usé en este proceso tienen licencias Apache 2.0, excepto el
00:08:10modelo LFM, que tiene un tipo de licencia en la que si superas cierta cantidad de ingresos
00:08:19tienes que pagar, pero se puede usar cómodamente, es amplio. En cuanto a los agentes de código que
00:08:26supervisan este flujo, inicialmente lo construí con Opus 4.8 y luego ejecuté el proceso con GLM 5.2,
00:08:35que hace un buen trabajo en tareas de largo alcance, para ser franca. Respecto a la infraestructura, trabajo en Hugging
00:08:42Face, así que tengo muchos créditos de cómputo y soy súper impaciente en la vida, por lo que usé una buena cantidad de
00:08:50hardware para las pruebas. Sin embargo, al medir los costes, ejecutar todo este proceso para entrenar los modelos cuesta entre tres y cuatro dólares,
00:08:58lo cual me parece increíble. Inicialmente usé un servicio sin servidor para Qwen 3.5 porque me pareció práctico y súper barato;
00:09:05recurrí a DeepInfra, que es extremadamente económico. Si usáis varias herramientas a la vez, es mejor procesar en lotes mediante tareas.
00:09:12Para la fase de evaluación usé tareas de Hugging Face, que cuestan menos, y para el entrenamiento usé una GPU L4.
00:09:19Pero el modelo es muy pequeño, RF-DETR es súper pequeño, y podéis usar cualquier otra cosa o hacerlo
00:09:27en local si quisierais; yo simplemente soy impaciente y quería un tamaño de lote grande. Lo probé en dos problemas:
00:09:33primero, la detección de señales de tráfico; segundo, el procesamiento de documentos. Para la detección de señales de tráfico
00:09:42ya tenía las etiquetas, así que pude comparar con las anotaciones reales para comprobar si mi proceso
00:09:48funcionaba o no. En el caso del procesamiento de documentos no pude hacerlo así porque usé un conjunto
00:09:54de datos de respuesta a preguntas sobre documentos (DocVQA) y el problema es que quería extraer imágenes, tablas, firmas y demás.
00:10:02Así que era una tarea novedosa y quería ver si RF-DETR realmente podía aprenderla. Primer resultado: funciona, ¡bien!
00:10:08Tenemos una buena precisión media (mAP) por encima del 50 % al comparar con un conjunto de prueba:
00:10:19tomo ese conjunto de prueba, lo paso por Qwen y luego lo comparo con las seudoanotaciones
00:10:29y las anotaciones reales de dicho conjunto de prueba. Hay una pequeña diferencia, pero era de esperar
00:10:35porque aprendió de Qwen. Además, la curva ROC-AUC también da un buen valor para este tipo
00:10:42de caso de uso. Y en cuanto al procesamiento de documentos, la verdad es que generaliza, lo cual me parece una locura.
00:10:50Aquí, en la salida del modelo entrenado, podéis ver que detectó la firma, mientras que la anotación de Qwen
00:10:58en ese conjunto de prueba la pasó por alto. Así que me gustaría decir que también generaliza muy bien.
00:11:06Le debemos esto a lo bueno que es RF-DETR como modelo base, en cierto modo. Aquí también podéis ver cómo
00:11:12captura las imágenes de forma técnica y es una coincidencia exacta. Mientras construía esto, me di cuenta
00:11:21de que no tenía ni idea sobre cómo construir con agentes de visión, así que tengo varios hallazgos al respecto.
00:11:30En primer lugar, hay un gran desequilibrio en la evaluación. Según el problema, LFM tiende a rechazar
00:11:37mucho; por eso no pude exigir un consenso, porque si eliminase todo aquello en lo que
00:11:44tanto LFM como Gemma coincidían en descartar, me quedaría con muy pocos ejemplos, lo que
00:11:50llevaría a una generalización muy pobre. Así que lo que hice fue establecer que si uno de ellos dice que sí, me quedo
00:11:58con ese ejemplo, y aun así funcionó bien. Pero si tenéis un conjunto de datos grande y os importa
00:12:04la exhaustividad, sugiero que busquéis el consenso o que simplemente observéis. En el procesamiento de documentos la diferencia
00:12:09no es tan grande. En segundo lugar, la generación de instrucciones es un poco difícil, siendo la única parte en la que
00:12:17un humano tiene que dar su aprobación: el modelo genera las instrucciones por ti para la evaluación y tú
00:12:28confirmas si lo apruebas o no. Es necesario revisar un poco el conjunto de datos,
00:12:35de eso no hay escapatoria. En tercer lugar —y esto es superinteresante—, tu agente
00:12:42de programación, por muy bueno que sea (por ejemplo, usando Opus 4.8, que es un agente de código excelente),
00:12:52no tiene ni idea como ingeniero de visión por computador y carece de sentido común. Por
00:12:59ejemplo, aplicaba un volteo horizontal a señales de tráfico o metía ruido («jitter»)
00:13:06en semáforos, lo cual corrompe y estropea los conjuntos de datos. Corregí esto más tarde, así que
00:13:14puedes indicar si quieres o no aplicar aumentación de datos, y tu agente de código te ayudará con ello.
00:13:21Por último, la segunda parte de este conjunto de herramientas abarca mis modelos preferidos utilizados como herramientas.
00:13:30Y por último, la segunda parte de este kit de herramientas son mis modelos preferidos como herramientas.
00:13:35Así que este repositorio cubre mis modelos favoritos, desde estimación de profundidad hasta segmentación zero-shot,
00:13:42y esto se apoya en parte por los benchmarks de Hugging Face que lanzamos hace un par de meses.
00:13:48Básicamente, tenemos una tabla de clasificación de benchmarks y allí
00:13:55tienes los modelos abiertos con sus resultados de evaluación, y puedes comparar modelos de diferentes
00:14:02tamaños. Lo mantengo actualizado, pero también se debe en parte a que me gusta leer los
00:14:13artículos de conferencias de visión por computadora. Quisiera mencionar especialmente este modelo porque
00:14:20mucha gente no lo conoce. Básicamente, algunos no pueden hacer segmentación de referencia abierta;
00:14:26puedes decir "segmenta este auto rojo" y lo hará, pero si dices "el auto rojo al lado
00:14:33del auto naranja que está al lado del auto azul", no lo hará. Falcon Perception, que es un
00:14:39modelo de TII, sí puede hacerlo, y solo tiene 600 millones de parámetros con licencia Apache 2.0.
00:14:47Así que este hace la segmentación zero-shot por mí.
00:14:51Y esta es una lista no exhaustiva: para estimación de pose tenemos la familia Sapiens,
00:14:58para tareas centradas en humanos donde necesitas detección de puntos clave,
00:15:04estimación de profundidad humana y demás. Para detección zero-shot tengo Moondream 3 y MM Grounding DINO,
00:15:13que es un modelo con licencia Apache 2.0, muy bueno y pequeño en comparación con Moondream. Les doy
00:15:20múltiples modelos en varios tamaños para que elijan según su hardware; por ejemplo, si quieren
00:15:25rapidez, elijan la alternativa más pequeña. Para OCR los tomé del benchmark All-OCR
00:15:34en diferentes tamaños. Y para estimación de profundidad descubrí que el modelo grande no
00:15:40tiene una licencia no comercial y el resto sí, así que pueden usarlos. Ese tiene
00:15:45licencia Apache 2.0 y viene con soporte para Supervision y rastreo; ambas son
00:15:51librerías de Roboflow que les permiten rastrear instancias, cajas delimitadoras y demás.
00:16:00Planes futuros: primero, me imagino que dirán "esto definitivamente no funcionará para
00:16:06casos de uso industriales", porque la industria tiene distintas piezas, como piezas difíciles de describir
00:16:13donde el lenguaje natural no es una buena vía de acceso. En ese sentido, creo que la detección guiada por imágenes
00:16:21podría ayudar. Si no la conocen, básicamente se le da una instancia de una
00:16:27imagen, como este peluche de Huggy, y le pides al modelo "detecta este objeto en esta imagen
00:16:36en todas las demás imágenes". Siento que esto podría ayudar en casos de uso industriales donde
00:16:41no es posible describirlo mediante lenguaje natural. También quiero probar una especie de combinación
00:16:52por intersección sobre unión; básicamente tienes cajas etiquetadas y cajas del juez, y le pides al juez que
00:17:00genere una caja para calcular la intersección sobre unión, en lugar de pedirle que acepte o rechace.
00:17:06Actualmente estoy trabajando en el soporte para segmentación. Muchas gracias por escuchar. Si
00:17:14quieren aprender más, tengo un pequeño repositorio sobre visión con todo acerca de
00:17:20ajuste fino de modelos, cuantización, modelos multimodales y todo lo relacionado con visión, así como
00:17:27guías de tareas de transformers que mantenemos actualizadas con bastantes tutoriales. También tenemos habilidades de Hugging Face
00:17:36específicas de visión por computadora, además de habilidades de infraestructura para hacer entrenamiento
00:17:43con un solo prompt. Este es mi perfil de Twitter y este repositorio está en GitHub,
00:17:51mervenoyan/vision-intern. Creo que tengo tiempo para una pregunta, muchas gracias.
00:18:04Sí, me pregunta si tengo planes de entrenar VLM por mí misma, como un tipo de automejora.
00:18:16Eso sería genial, pero primero quiero resolver esto de que los desarrolladores entrenen
00:18:22modelos para tareas específicas y luego los desplieguen en Edge, y luego podríamos pasar a eso. ¿Tal vez una pregunta más? Sí.
00:18:34La verdad no, no lo creo. Solo usé la... porque quería que el agente de código tuviera el
00:18:44contexto para generar el prompt. ¿Una más? De acuerdo, ¡muchísimas gracias!
00:19:04Así que...

Key Takeaway

La sustitución del despliegue directo de modelos de visión y lenguaje por flujos donde estos actúan como etiquetadores y jueces permite entrenar detectores pequeños y eficientes como RF-DETR por menos de 4 dólares, logrando rendimiento en tiempo real y licencias Apache 2.0.

Highlights

  • Los modelos de visión especializados como RF-DETR superan a los modelos de visión y lenguaje (VLM) en tareas en tiempo real, alcanzando entre 30 y 40 fps en hardware básico.

  • El uso comercial de modelos populares como YOLO exige el pago de licencias por ser GPL 3.0, por lo que se recomienda migrar a alternativas Apache 2.0.

  • Ejecutar un flujo completo de anotación, evaluación con VLM y entrenamiento de un detector especializado cuesta entre 3 y 4 dólares en infraestructura en la nube.

  • Un conjunto de jueces VLM de menor tamaño evaluando cuadros delimitadores superpuestos logra mejores resultados que solicitar puntuaciones numéricas directamente a los modelos.

  • Modelos pequeños como Falcon Perception (600M de parámetros) permiten realizar segmentación de referencia abierta zero-shot con licencias Apache 2.0.

Timeline

Limitaciones de los VLM y licencias en visión por computador

  • El uso de modelos de visión y lenguaje para todas las tareas impide alcanzar velocidades de ejecución en tiempo real.
  • Modelos especializados como RF-DETR ofrecen mayor robustez y precisión que los VLM generales.
  • Muchos desarrolladores despliegan modelos como YOLO sin considerar los costes legales derivados de su licencia GPL 3.0.

Los modelos de lenguaje y visión carecen de la velocidad necesaria para aplicaciones que requieren procesamiento a 30-40 fps en dispositivos con recursos limitados. Además, la falta de revisión de licencias lleva al despliegue inadvertido de software bajo GPL 3.0. La adopción de arquitecturas con licencias permisivas como Apache 2.0 o MIT evita responsabilidades financieras e imprevistos legales.

Arquitectura del flujo de autodestilación y etiquetado sintético

  • El kit Vibe Vision utiliza VLM como etiquetadores y jueces para automatizar la creación de datos de entrenamiento.
  • El procesamiento se apoya en infraestructura sin servidor y tareas en lotes sobre la plataforma de Hugging Face.
  • La reestructuración v5 de la librería Transformers optimiza el rendimiento para modelos de visión.

Ante la ausencia de anotaciones en un conjunto de imágenes, un VLM asume el rol de etiquetador inicial mientras otros VLM actúan como jueces de la calidad de las cajas delimitadoras. Esta canalización aprovecha buckets de almacenamiento, enrutamiento de inferencia sin servidor y la versión 5 de Transformers para procesar volúmenes masivos de datos de forma remota o local.

Ejecución del pipeline y costes de entrenamiento

  • Qwen 3.5 9B genera las anotaciones iniciales sobre las imágenes de entrenamiento.
  • Gemma 4 E4B (8B) y LFM 2.5 VL (2B) evalúan visualmente los cuadros delimitadores superpuestos.
  • El coste total para etiquetar, evaluar y entrenar un modelo RF-DETR en una GPU L4 se sitúa entre 3 y 4 dólares.

El proceso superpone los cuadros delimitadores generados por Qwen 3.5 sobre las imágenes antes de pasarlas a los jueces, evitando pedirles puntuaciones numéricas puras que resultan inestables. En lugar de buscar consenso absoluto, se aplica una regla de acuerdo mínimo donde el visto bueno de un solo juez conserva la muestra. Utilizando servicios económicos como DeepInfra y GPUs L4 en Hugging Face, todo el proceso de ajuste fino concluye con un gasto mínimo.

Resultados de precisión, generalización y fallos de agentes de código

  • RF-DETR alcanza una precisión media (mAP) superior al 50 % en pruebas de detección de señales de tráfico.
  • El modelo entrenado demuestra capacidad de generalización al detectar elementos no etiquetados originalmente por el VLM en DocVQA.
  • Los agentes de código convencionales aplican aumentaciones de datos erróneas sin supervisión humana.

En pruebas con documentos (DocVQA), RF-DETR logró identificar firmas y tablas que el modelo etiquetador Qwen había pasado por alto en la fase inicial. No obstante, el desarrollo reveló que agentes de programación avanzados como Opus 4.8 carecen de criterio en visión por computador, llegando a aplicar rotaciones horizontales a señales de tráfico o añadir ruido a semáforos, lo que invalida el dataset a menos que un humano apruebe las instrucciones.

Catálogo de modelos especializados con licencia abierta

  • Falcon Perception ejecuta segmentación de referencia abierta con solo 600 millones de parámetros bajo licencia Apache 2.0.
  • La familia Sapiens cubre la estimación de pose y profundidad para figuras humanas.
  • MM Grounding DINO y Moondream 3 ofrecen alternativas ligeras para detección zero-shot.

Frente a las limitaciones de los grandes modelos, existe una selección de herramientas con licencias libres para tareas específicas. Falcon Perception resuelve casos complejos de segmentación mediante descripciones detalladas, mientras que Sapiens abarca el análisis corporal humano. Para tareas de reconocimiento de texto y estimación de profundidad, se integran modelos evaluados en benchmarks abiertos junto con librerías como Supervision para el rastreo de objetos.

Líneas de desarrollo futuro y respuestas a la comunidad

  • La detección guiada por imágenes abordará casos industriales difíciles de describir mediante lenguaje natural.
  • El filtrado de anotaciones evolucionará hacia el cálculo de Intersección sobre Unión (IoU) entre cajas delimitadoras.
  • El objetivo inmediato prioritario es facilitar el despliegue de modelos especializados en dispositivos Edge.

Para entornos industriales donde las piezas no se pueden definir fácilmente con texto, la detección basada en imágenes de referencia servirá para localizar objetos idénticos en conjuntos masivos. Asimismo, se perfeccionará la evaluación de los jueces sustituyendo el veredicto binario por un cálculo de IoU. La prioridad del proyecto radica en capacitar a los desarrolladores para crear y desplegar modelos específicos en edge computing antes de explorar técnicas de auto-mejora en VLM.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video