Problème de niveau : arrêtez de déployer les modèles vision-langage, utilisez-les avec des Skills — Merve Noyan, Hugging Face

AAI Engineer
컴퓨터/소프트웨어창업/스타트업

스크립트

00:00:00Bonjour et bienvenue à cette présentation intitulée "Skill issue". Ce n'est plus un problème de compétences. À la fin
00:00:22de cette présentation, vous serez capables de créer plein de choses avec les modèles de vision, si ce n'est pas déjà le cas.
00:00:27Brièvement sur moi, je m'appelle Merve. Je travaille en vision par ordinateur depuis la sortie de LLaVA, et dernièrement, je travaille sur les agents et l'embarqué. Je suis tellement passionnée par les modèles vision-langage que j'ai écrit un livre dessus. Mais je ne veux plus que les développeurs utilisent directement les VLM : je veux que chaque développeur crée
00:00:54des applications de vision de bout en bout. Cette présentation va vous donner une excellente base pour y parvenir. Le comportement typique que j'observe chez les développeurs, c'est qu'ils essaient d'utiliser les modèles vision-langage pour tout. Mais vous n'obtiendrez jamais du temps réel—et par temps réel, j'entends un grille-pain
00:01:18qui atteint 30 à 40 images par seconde, peu importe ce que vous développez, que ce soit de la classification d'images, de la segmentation d'instances ou autre.
00:01:28De plus, ils ne sont pas extrêmement robustes. Si vous entraîniez un modèle comme RF-DETR, dont Joseph a parlé lors de la première présentation,
00:01:39il surpassera toujours votre modèle vision-langage, et je vais vous le prouver aujourd'hui.
00:01:47Et sur la droite, vous pouvez me voir en train de faire des tests avec RF-DETR.
00:01:52Un autre problème, c'est qu'ils ne lisent pas les licences. Dès que je publie quelque chose sur la détection d'objets, on me parle toujours de YOLO. YOLO est un bon modèle, mais il est sous licence GPL 3.0, il me semble.
00:02:07Et je mettrais ma main au feu que certains développeurs le déploient sans savoir
00:02:12qu'ils doivent payer pour cela. Donc voilà, je veux vous inciter à passer à des modèles sous licence Apache 2.0 dès aujourd'hui.
00:02:23Pour cela, j'ai créé un outil appelé Vibe Vision, qui s'inspire en partie de ce post de Maziar.
00:02:30En gros, ce qu'il fait, c'est qu'il fournit le modèle SAM 3.1 à Gemma 4 comme un outil à appeler, et je trouve ça très
00:02:39impressionnant. Aujourd'hui, j'ai conçu une boîte à outils qui permet de faire cela avec encore plus d'éléments.
00:02:49Je vous partage donc mon savoir-faire. Pour commencer, cette boîte à outils contient mes modèles préférés intégrés sous forme d'outils,
00:02:57afin que vous puissiez les fournir à votre agent, car votre agent de codage est un ingénieur en vision par ordinateur
00:03:03un peu désorienté. En gros, quand je choisis un modèle, je vérifie toujours
00:03:09les points suivants. Tout d'abord, la licence est ma priorité absolue : elle doit être Apache 2.0, MIT ou
00:03:16une licence non commerciale. Deuxièmement, les performances doivent être équivalentes, selon la taille du modèle ou
00:03:24les choix d'architecture. Je consulte donc les benchmarks dès qu'un modèle est publié dans une conférence de vision par ordinateur.
00:03:31Et troisièmement, le feeling, évidemment. Cette boîte à outils comporte une seconde partie, un peu comme un module d'entraînement au feeling,
00:03:41qui est la partie la plus passionnante. Je vais donc commencer par là. Je me suis mise à la place
00:03:47des développeurs pour créer une application de vision. Si j'ai des images annotées, c'est simple : je peux juste entraîner un modèle.
00:03:55Ou alors, je peux donner des tutoriels à mon agent de vision par ordinateur pour le faire, car toutes les ressources
00:04:02sont disponibles, comme les Transformers que nous avons développés. Mais si je n'ai que des images, je dois les annoter, évaluer
00:04:11les annotations, puis entraîner un modèle. Mais comment faire cela à grande échelle ? Vous pouvez utiliser un modèle
00:04:17vision-langage comme annotateur, et d'autres VLM comme juges, puis entraîner le modèle souhaité. Mais à quoi
00:04:24ressemble ce pipeline ? En gros, j'ai développé ceci, qui intègre un VLM pour l'annotation, un VLM en tant que
00:04:35juge, puis la phase d'entraînement. C'est une tâche à long terme pour des agents de codage, et cela prend en charge
00:04:42de nombreuses infrastructures. Vous pouvez exécuter cela en local ou à distance. Tout repose sur l'infrastructure de Hugging
00:04:48Face : nous disposons de jobs permettant d'effectuer des traitements par lots ponctuels ou des entraînements.
00:04:54Nous avons aussi un système de routage serverless appelé Inference Providers, où vous pouvez utiliser plusieurs
00:05:00fournisseurs, ainsi que des buckets pour stocker des données intermédiaires en plus des dépôts de jeux de données,
00:05:07des dépôts de modèles, etc. Mais qu'est-ce qui permet ce travail ? D'abord, mon modèle préféré, RF-DETR. La version RF-DETR
00:05:17segmentation : je travaille actuellement sur la segmentation en ce moment. Nous disposons de meilleurs agents pour les tâches
00:05:24à long terme, où il faut superviser le processus d'annotation, le processus d'entraînement, etc.
00:05:32Des modèles de vision plus petits mais plus performants permettent d'annoter à très bas coût, et grâce à
00:05:40Transformers, nous avons effectué la refonte v5. Les performances pour les modèles de vision sont donc meilleures actuellement.
00:05:47Voici à quoi ressemble concrètement le pipeline. Pour commencer, j'annote le jeu de données : je prends un jeu
00:05:54d'images, n'importe lequel, et je l'annote avec Qwen 3.5 9B. Ensuite, je transmets
00:06:02le jeu de données annoté à deux juges : le premier est Gemma 4 E4B, qui est un juge d'environ 8B, et le second est
00:06:10LFM 2.5 VL, qui fait près de 2B, donc plus petit. En consultant la recherche, j'ai vu qu'il vaut mieux
00:06:18avoir un ensemble de juges plus petits. Ensuite, je fusionne les évaluations. J'ai aussi étudié
00:06:26les travaux publiés sur le sujet : la plupart des gens demandent au VLM ou LLM d'attribuer un score, mais ces scores
00:06:34ne fonctionnent pas du tout, surtout si vos juges sont de tailles différentes. Ensuite, je passe
00:06:40à l'entraînement de RF-DETR Medium ou Large. J'ai discuté avec l'équipe de Roboflow qui m'a encouragée à utiliser
00:06:47cela, et je peux vous dire que ça fonctionne très bien, je vais vous le montrer sous peu. Mais comment cela fonctionne-t-il ? Vous
00:06:55prenez le dépôt, puis vous lui demandez simplement : "Peux-tu lancer l'entraînement sur ce jeu
00:07:04de données sur le Hub ?" Et il va démarrer. Si le jeu de données a déjà des annotations, vous pouvez
00:07:11directement lancer l'entraînement. S'il n'en a pas, vous commencez par annoter. L'astuce est la suivante :
00:07:19je transmets au juge les boîtes englobantes superposées sur les images. En gros, Qwen génère
00:07:27des boîtes englobantes sous forme de tokens. Je ne les passe pas brutes : je superpose les boîtes englobantes et j'envoie cette image
00:07:33avec les étiquettes et leurs descriptions. Je demande alors : "Si cette description correspond à la boîte englobante
00:07:40présente dessus, dis-moi si tu approuves ou non." Ensuite, pour le juge, je fusionne les verdicts
00:07:49selon un accord minimal et non un consensus absolu — je reviendrai sur les raisons de ce choix. De plus,
00:07:56ces descriptions d'étiquettes sont générées par des agents de codage, et vous avez juste à les valider en tant qu'humain.
00:08:03Tous les modèles utilisés dans ce pipeline sont sous licence Apache 2.0, à l'exception du
00:08:10modèle LFM, qui possède un type de licence où vous devez payer si vous dépassez un certain niveau de revenus,
00:08:19mais vous pouvez l'utiliser sans problème. Concernant les agents de codage qui
00:08:26supervisent ce pipeline, j'ai d'abord construit l'ensemble avec Opus 4.8, puis j'ai exécuté le flux de travail avec GLM 5.2,
00:08:35qui s'en sort très bien sur les tâches à long terme, pour être honnête. Pour l'infrastructure, travaillant chez Hugging
00:08:42Face, j'ai beaucoup de crédits de calcul et je suis très impatiente dans la vie : j'utilise donc une bonne quantité
00:08:50de matériel pour mes expérimentations. Mais j'ai mesuré les coûts, et au total, cela revient à environ trois ou quatre dollars
00:08:58pour exécuter l'ensemble de ce pipeline et entraîner des modèles, ce qui est incroyable selon moi. Au début, pour Qwen 3.5, j'ai utilisé
00:09:05du serverless parce que c'était pratique et très bon marché. J'ai donc utilisé DeepInfra, qui est
00:09:12extrêmement économique. Si vous utilisez Together, il vaut mieux traiter par lots via des jobs. Ensuite,
00:09:19pour l'évaluation par le juge, j'ai utilisé les jobs Hugging Face qui coûtent moins cher. Et pour l'entraînement, j'ai pris une L4,
00:09:27mais le modèle est très petit. RF-DETR est si léger que vous pouvez utiliser autre chose, ou même le faire
00:09:33en local si vous le souhaitez. Je suis simplement impatiente et je voulais une grande taille de batch. J'ai testé cela sur deux problèmes :
00:09:42d'abord la détection des panneaux routiers, puis l'analyse de documents. Pour les panneaux routiers, j'avais
00:09:48déjà les annotations réelles, ce qui m'a permis de comparer les résultats de mon pipeline pour vérifier
00:09:54s'il fonctionnait ou non. Pour l'analyse de documents, ce n'était pas possible car j'ai utilisé un jeu de données
00:10:02de type DocVQA, et le but était d'extraire les images, les tableaux, les signatures, etc.
00:10:08C'est donc une tâche inédite, et je voulais voir si RF-DETR pouvait l'apprendre. Premier résultat : ça fonctionne !
00:10:19Nous obtenons une bonne précision moyenne supérieure à 50. Pour comparer, j'ai utilisé un jeu de test
00:10:29que j'ai passé dans Qwen, puis j'ai comparé les pseudo-annotations
00:10:35aux annotations réelles de ce jeu de test. Il y a un léger écart, mais c'est prévisible
00:10:42puisque l'apprentissage vient de Qwen. La valeur ROC-AUC est également très satisfaisante pour un tel
00:10:50cas d'usage. Et pour l'analyse de documents, le modèle généralise vraiment, ce que je trouve incroyable.
00:10:58Ici, sur le résultat du modèle entraîné, vous voyez qu'il a détecté la signature, alors que l'annotation Qwen
00:11:06sur ce jeu de test l'avait manquée. On peut donc dire que le modèle généralise très bien.
00:11:12Mais nous devons cela à l'efficacité de RF-DETR en tant qu'architecture de base. Ici, vous pouvez aussi voir
00:11:21comment il capture parfaitement les images. En développant tout cela, je me suis
00:11:30rendue compte que je manquais de recul sur la création d'agents de vision. J'ai donc tiré plusieurs enseignements.
00:11:37Tout d'abord, il y a un fort déséquilibre d'évaluation : selon le problème, LFM a tendance à rejeter
00:11:44énormément d'éléments. C'est pourquoi je n'ai pas pu appliquer de consensus stricts : si j'avais éliminé tout ce que
00:11:50LFM et Gemma s'accordaient à retirer, il m'aurait resté très peu d'exemples, ce qui aurait conduit à
00:11:58une très mauvaise généralisation. J'ai donc décidé que si au moins l'un d'eux valide, je conserve
00:12:04l'exemple. Cela a très bien fonctionné. Mais si vous avez un grand jeu de données et que le rappel
00:12:09est primordial pour vous, je vous conseille de chercher le consensus ou d'analyser les données. Pour l'analyse de documents, l'écart
00:12:17est moins important. Deuxièmement, la création de prompts est délicate. C'est la seule étape où,
00:12:28en tant qu'humain, vous devez valider. Le modèle génère les prompts de jugement pour vous, et vous devez
00:12:35confirmer en disant : "D'accord, je valide." Vous devez conserver un œil sur le processus et jeter un coup d'œil
00:12:42à votre jeu de données. On ne peut pas y couper. Troisièmement, un point très intéressant : votre
00:12:52agent de codage, aussi performant soit-il — même en utilisant Opus 4.8 qui est un excellent
00:12:59agent de codage —, manque de repères en tant qu'ingénieur en vision par ordinateur, et manque parfois de bon sens.
00:13:06Par exemple, il appliquait un retournement horizontal sur des panneaux de signalisation ou ajoutait du bruit
00:13:14sur des feux de circulation, ce qui corrompt et détruit vos jeux de données. J'ai corrigé cela par la suite : vous
00:13:21pouvez désormais spécifier si vous souhaitez ou non augmenter les données, et votre agent de codage adaptera le code.
00:13:30Et enfin, la deuxième partie de ce kit d'outils concerne mes modèles préférés comme outils.
00:13:35Ce dépôt couvre donc mes modèles favoris, de l'estimation de la profondeur à la segmentation zero-shot.
00:13:42Et c'est en partie alimenté par les benchmarks de Hugging Face qu'on a déployés il y a quelques mois.
00:13:48En gros, on a un classement des benchmarks où se trouvent
00:13:55les modèles ouverts ainsi que leurs résultats d'évaluation, et on peut comparer des modèles de différentes
00:14:02tailles. Je le tiens à jour, mais c'est aussi alimenté par moi qui aime lire les
00:14:13articles de conférences sur la vision par ordinateur. Je voudrais saluer ce modèle parce que
00:14:20peu de gens le connaissent. En gros, certains ne peuvent pas faire de segmentation de référence ouverte,
00:14:26du style « segmente cette voiture rouge » et il le fera. Mais si vous dites « la voiture rouge à côté »
00:14:33« de la voiture orange qui est à côté de la voiture bleue », il ne le fera pas. Mais Falcon Perception,
00:14:39qui est un modèle de TII, peut le faire, et il ne fait que 600 millions de paramètres sous licence Apache 2.0.
00:14:47Donc celui-ci fait la segmentation zero-shot pour moi.
00:14:51Et c'est une liste non exhaustive. Pour la pose, on a la famille Sapiens
00:14:58pour les tâches centrées sur l'humain où l'on doit faire de la détection de points clés humains,
00:15:04de l'estimation de profondeur, etc. Pour la détection zero-shot, j'ai Moondream 3 et MM-Grounding-DINO,
00:15:13qui est un modèle sous licence Apache 2.0. Il est très bon et très petit comparé à Moondream. Je vous donne
00:15:20plusieurs modèles de différentes tailles selon votre matériel, pour que vous puissiez choisir. Si vous voulez
00:15:25aller vite, choisissez l'alternative Tiny. Pour l'OCR, je les ai pris du benchmark awesome-ocr
00:15:34en différentes tailles. Et pour l'estimation de profondeur, j'ai découvert que le grand modèle n'a pas
00:15:40de licence non commerciale, alors que les autres en ont une. Vous pouvez donc l'utiliser. Il est sous
00:15:45licence Apache 2.0 et vient aussi avec le support de Supervision et Tracker. Ce sont deux
00:15:51bibliothèques de Roboflow qui permettent de faire du suivi d'instances, de boîtes englobantes, etc.
00:16:00Concernant les projets futurs : je vous entends déjà dire que ça ne marchera pas pour des cas
00:16:06d'usage industriels, car ils ont des spécificités, avec des pièces qu'on ne peut pas décrire,
00:16:13où le langage naturel n'est pas adapté. En ce sens, je pense que la détection guidée par l'image
00:16:21pourrait aider. Si vous ne connaissez pas, vous avez un exemple d'image,
00:16:27comme un Huggy ici, et vous demandez au modèle de détecter cet objet dans cette image
00:16:36à travers toutes les images. Ça pourrait vraiment aider dans les cas industriels où l'on
00:16:41ne peut pas décrire par le langage naturel. Je veux aussi essayer une sorte de fusion par
00:16:52intersection sur l'union. En gros, vous avez des boîtes annotées et les boîtes du juge : vous demandez au juge
00:17:00de générer une boîte, puis vous prenez l'intersection sur l'union au lieu de lui demander d'accepter ou de rejeter.
00:17:06Je travaille actuellement sur le support de la segmentation. Merci de m'avoir écoutée ! Si
00:17:14vous voulez en savoir plus, j'ai un petit dépôt sur la vision. Il contient tout sur
00:17:20le fine-tuning, la quantification, les modèles multimodaux, tout autour de la vision. Et aussi
00:17:27les guides de tâches Transformers qu'on tient à jour avec beaucoup de tutoriels. On a aussi les compétences Hugging Face
00:17:36qui ont des compétences spécifiques à la vision par ordinateur et à l'infra, pour faire de l'entraînement
00:17:43en un seul prompt. Voici mon profil Twitter, et le dépôt se trouve sur GitHub :
00:17:51mervenoyan/vision-intern. Je crois que j'ai le temps pour une question. Merci beaucoup.
00:18:04Oui, il demande si j'ai l'intention d'entraîner les VLM eux-mêmes, dans une démarche d'auto-amélioration.
00:18:16Ce serait super passionnant, mais je veux d'abord résoudre ce problème où les développeurs entraînent
00:18:22des modèles spécifiques à une tâche puis les déploient sur l'edge, et ensuite on verra. Peut-être une autre question ?
00:18:34Pas vraiment, je ne pense pas. J'utilise simplement... parce que je voulais, comme l'agent de code a
00:18:44le contexte, qu'il génère le prompt. Peut-être encore une ? D'accord, merci beaucoup.
00:19:04Voilà.

설명

Merve Noyan wrote a book on vision language models and now wants developers to stop calling them directly. Put one in front of a camera and you will never get real time; a small detector trained for the task runs at forty frames per second on a toaster and beats the VLM anyway. Her other complaint is licensing: people deploy a popular detector without noticing its copyleft license. So she built a toolkit that hands her favorite Apache 2.0 models to a coding agent, which she calls a clueless computer vision engineer, plus what she calls vibe training. Give it a dataset with no labels and it labels images with a nine billion parameter open VLM, passes the overlaid bounding boxes to two smaller VLM judges, merges their verdicts on minimum agreement rather than consensus, and trains RF-DETR. The whole run costs three or four dollars on Hugging Face jobs and inference providers. On road signs the trained detector lands a good mean average precision against ground truth, and on document parsing it generalizes, catching a signature the labeling model itself missed. The findings matter more: one judge rejects far more than the other, so consensus would have left too few examples; the judge prompts still need a human to approve them; and even the best coding agent flips traffic signs horizontally and jitters the color of traffic lights until told not to. She closes with the models as tools half of the toolkit, from a 600 million parameter model that segments the red car next to the orange car to pose, depth, and OCR picks, and plans for image guided detection where words cannot describe the part. Speaker info: - https://x.com/mervenoyann - https://www.linkedin.com/in/merve-noyan-28b1a113a - https://hf.co/merve Timestamps: 0:00 - Why developers should stop reaching for a VLM at runtime 1:51 - Read the license: move to Apache 2.0 models 2:46 - A toolkit for coding agents, the clueless computer vision engineer 3:41 - Vibe training: VLM as labeler, VLMs as judges, then train 5:40 - The pipeline: overlaid boxes, minimum agreement, RF-DETR 8:29 - What it costs: a few dollars end to end 9:40 - Results on road signs and document parsing 11:18 - Findings: judge imbalance, prompt approval, augmentation blunders 13:20 - Favorite models as tools, from segmentation to depth 15:52 - Future plans: image guided detection and IoU merging 17:57 - Q&A

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기