Skill issue: stop deploying vision language models, use them with Skills — Merve Noyan, Hugging Face
AAI Engineer
Computing/SoftwareSmall Business/Startups
Transcript
00:00:00Hello and welcome to this talk on skill issue. It's actually no longer a skill issue. By the end
00:00:22of this talk you will be able to build a lot with the vision models if you are already not doing it.
00:00:27So shortly about me, I'm Merve. I've been working on computer vision since lava in the fixed times and lately I work on more agents and on-device stuff because I'm a bit fascinated and I love vision language models so much that I even wrote a book on it but I don't want developers to directly use vision language models anymore and I want every single developer to start
00:00:54building vision language vision applications end-to-end and this talk is going to give you like a good baseline to do so and the common behaviors I observe with the developers is the fact that they try to use vision language models for everything but they you will never get a real-time and when I mention real-time it's like you have a toaster
00:01:18and you get like 30-40 fps on it like whatever whether you are building like image classification instance segmentation or whatever
00:01:28and they are not super robust in terms of like if you were to train like an RFDTR which Joseph spoke in the spoke about in the first talk
00:01:39um it will always outperform your vision language model and I'm going to prove it today
00:01:47and on the right hand side you can actually see me uh doing stuff with RFDTR
00:01:52um and another thing is that they don't read the licenses everybody's like whenever I post something about object detection they always ask me about YOLO like YOLO is a good model uh but it's uh it has a GPL 3.0 license I think
00:02:07and I could swear on my life that there is like some developers that actually deploy it without knowing
00:02:12that they have to pay for it um so yeah like uh I want you to migrate to Apache 2.0 models today
00:02:23and for this I have built something called vibe vision and it's kind of inspired by this post by Maziar
00:02:30basically what he does is that he gives um Sam 3.1 model as a tool to Gemma 4 to call and I find it super
00:02:39impressive um and today I built like a toolkit where you can do this with like even more things
00:02:49so I'm kind of distilling myself um first off uh this toolkit has my favorite models as tools uh so
00:02:57that you can give it to your agent because your coding agent is a bit of a clueless computer vision
00:03:03engineer basically um and when I distill myself basically like whenever I pick a model I always check
00:03:09the following so first up the license is the biggest priority for me it has to be Apache 20 or MIT or
00:03:16something non-commercial uh secondly uh the performance has to be on par uh depending on its size or
00:03:24architectural choices so I check from the benchmarks whenever a model from a computer vision conference
00:03:31comes out and third vibes obviously and so this toolkit has a second part to it and it's a bit like a vibe
00:03:41training part which is uh the most exciting part so I will go through it first so I put myself in
00:03:47developers shoes to build like a vision application um if I have labeled images easy I can just train a model
00:03:55or like if I I can give my computer computer vision agent some tutorials uh to do that because it's all out
00:04:02there like we build transformers for it but if I have images only I have to annotate uh and then evaluate
00:04:11the annotations and then just train a model but how can you do it on scale you can actually use a vision
00:04:17language model as a labeler and the vision language models as judge and then train what you want but how
00:04:24how does this pipeline look like so basically I built this and it has like it has vlm for labeling vlm as a
00:04:35judge and then training uh it's a bit of a long horizon tasks for coding agents and it has infras many
00:04:42infrastructure support you can do this locally you can do this uh remotely so basically it runs on hugging
00:04:48face infrastructure we have jobs that allow you to do one-off batch processing or training
00:04:54we also have like a serverless routing system called inference providers where you can use multiple
00:05:00providers and you we also have like buckets to dump intermediate data on top of the data set
00:05:07repositories model repositories and so on um but what enables this work first off my favorite model rfdtr rfdtr
00:05:17segmentation i'm currently working on segmentation at the moment um we have better agents for long horizon
00:05:24tasks uh that you know you have to babysit the labeling process the training process etc
00:05:32and smaller yet more capable vision models enable you to label stuff very cheaply and also with
00:05:40transformers we went for v5 refactoring etc so like it performs better for vision models at the moment
00:05:47and this is how the pipeline actually looks like so first up i label the data set like i take an image
00:05:54data set like any image data set i labeled that image data set with q1 3.59b and then i passed the
00:06:02labeled data set to two judges first one is gemma4e4b which is like an 8b judge and then the second one is
00:06:10lfm 2.5 vl which is nearly 2b it's relatively smaller basically i checked the research and it's better to
00:06:18have like an ensemble smaller judges and on top of it i merged the judgments so i also checked the
00:06:26research around it and most of the people ask the vlm or llm to assign some score to it but those scores
00:06:34absolutely don't work especially if your models are of different size with judges um and then i pass it
00:06:40to train rfd tr medium or large so i i chatted a bit with robofull people and they encouraged to use
00:06:47that and i'm going to it it actually works i'm going to show you very shortly but how does it work so you
00:06:55take the repository and then you just ask it okay can you train it can you do the training on this data
00:07:04set on hub and then it will start like if the if the data set has labels like you can actually just
00:07:11get to training but if it doesn't have it you can just start annotating and i basically like with the
00:07:19trick is i i passed the overlaid bounding boxes on images to the judge so basically qn technically outputs
00:07:27bounding boxes as tokens i don't pass them i just overlay the bounding boxes and i pass that image
00:07:33on top of some labels and label descriptions and i say okay if this label description has bounding box
00:07:40on it then just um tell me if you approve or not and then the judge i'm i merged the judge verdicts
00:07:49over minimum agreement and not consensus which i will come to why i did that that way and these
00:07:56label descriptions are also generated by coding agents and you just approve it as a human being
00:08:03and the the models that i used in this pipeline all have apache two point of licenses except for
00:08:10lfm model which has type of license where you are kind of if you have like certain amount of revenue
00:08:19after that you pay for it but you can comfortably use it it's large and for the coding agents that are
00:08:26babysitting this pipeline i initially built with opus 4.8 and then ran the workflow with the glm 5.2
00:08:35which is doing a good job on long horizon tasks to be honest and for infra i actually work at hugging
00:08:42phase i have a lot of compute credits and i'm super impatient in life so like i use a good amount of
00:08:50hardware for experimentations but i benchmarked it and overall it takes like three four dollars if you
00:08:58want to run this entire pipeline to train models which to me is crazy initially for q1 3.5 i used
00:09:05serverless because i was like okay this is convenient and it's super cheap so i use deep infra which is
00:09:12super super cheap if you were to use together it's better if you do batch processing over jobs and then
00:09:19for the judging i used hugging face jobs which cost less and then for training again i use like an l4
00:09:27but the model is super small like rfdtr is super small and you can just use something else you can do
00:09:33it locally if you wanted to i'm just impatient i want a big batch size so yeah and i tested in two problems
00:09:42first off the road sign detection uh secondly document parsing for the road sign detection one i
00:09:48already have the labels so like i actually compared against the ground truth annotations if my pipeline
00:09:54works or not and for document parsing i actually couldn't do it because basically i use like a doc vqa
00:10:02data set and i the problem is like i want to extract the images tables i don't know signatures and stuff
00:10:08so it's like a novel task and i wanted to see if rfdtr can actually learn it so first result it works so yay
00:10:19we have like a good mean average precision over 50 and i compare it against basically i have a test set
00:10:29and i take that test set and pass through qn and then i compare against the pseudonotations
00:10:35and the ground truth annotations of that test set there is a bit of a gap but it's kind of expected
00:10:42because it's learned from qn and also rock oak is also like a good value to be frank for like such
00:10:50use case um and for the document parsing it actually generalizes which to me is crazy basically
00:10:58here the trained model output you can see that it detected the signature meanwhile the qn annotation
00:11:06of that test set missed it so i would like to say it actually generalizes very well as well
00:11:12but we owe this to like the how good rfdtr is as a backbone in a way and here you can also see how
00:11:21it captures the images technically and it's like one-on-one and while i was building this i actually
00:11:30noticed that i was clueless about building with vision agents so i have bunch of findings around it
00:11:37so first up there is a huge judging balance so for depending on the problem lfm tends to reject a
00:11:44lot that's why i couldn't take the consensus because if i were to if i were to eliminate everything that
00:11:50both lfm and gemma agreed to remove i would left with very very little number of examples which would
00:11:58leave me with very poor generalization so what i did was that okay if one of them says yes i'm going
00:12:04to take that example and nevertheless it worked well but if you have a large data set and if you care
00:12:09about the recall i suggest that you take the consensus or like just observe for document parsing the gap
00:12:17isn't as big and secondly uh the prompt generation is a bit hard so like this is the only part where as a
00:12:28human you have to approve okay the model generates the prompts for you for the judge uh and then you
00:12:35will say okay this i approve this because you need to take it still take a look at it uh take a look at
00:12:42your data set a little there's no escaping that um and thirdly and this is super interesting because your
00:12:52your coding agent despite no matter how uh good it is like you take opus 4.8 which is like a very good
00:12:59coding agent um it's clueless as a computer vision engineer as well as it misses common sense for
00:13:06instance like it was doing like horizontal flip over the traffic signs or it was doing like jitter over
00:13:14the traffic lights which will definitely corrupt your data sets and break it so i patch this later so you
00:13:21can just say okay i don't want to augment or i can augment so and your coding agent will help you with that
00:13:30and lastly the second part of this toolkit is my preferred models as tools
00:13:35so this repository covers my favorite models from depth estimation to zero shot segmentation
00:13:42and this is partially powered by first of hugging face benchmarks which we recently rolled out maybe a
00:13:48few months ago basically every single basically we have like a benchmark leaderboard and over there you
00:13:55have the open models as well as their evaluation results and you can compare different models of different
00:14:02sizes so um i keep it up to date as well but like also it's partially powered by me who likes to read the
00:14:13computer vision conference papers um so i would like to give a shout out to this model because
00:14:20not a lot of people know about this so basically some cannot do open-ended reference segmentation
00:14:26like you can do like okay segment this red car and it will do it but if you say okay the red car next
00:14:33to the orange car that is next to the blue car it will not do that and falcon perception which is a
00:14:39model by tia can actually do it and it's only like 600 million parameters with apache 2.0 license
00:14:47so this one does the zero shot segmentation for me
00:14:51and this is like a non-exhaustive list so for posing we have the sapiens family
00:14:58for the human centric tasks where you need to do human keypoint detection human
00:15:04depth estimation and so on and for zero shot detection i have moon dream 3 and mm grounding dino which
00:15:13is like a model with apache 2.0 license it's also very good it's very small compared to moon dream i give you
00:15:20the multiple models in multiple sizes depending on your hardware that you can pick like if you want
00:15:25to go fast just to pick pick the tiny alternative for ocr i actually took them from the almost cr benchmark
00:15:34in different sizes and for depth estimation i actually discovered that the large model doesn't
00:15:40have a non-commercial license and the rest of them have it so you can actually use it that one has like
00:15:45an apache 2.0 license and it also comes with supervision and tracker support they are both
00:15:51libraries from roboflow that allow you to do tracking of instances bounding boxes and so on
00:16:00and future plans so first of i i could hear you say okay this will definitely not work for the
00:16:06industry use cases because industry use cases have different parts it has like non-describable
00:16:13parts like natural language is not a good gateway to it so i think in that sense image guided detection
00:16:21could help like if you don't know about image guided detection you basically have like instance of an
00:16:27image like a huggy here as an example and then you ask the model okay detect this object in this image
00:16:36across all of the images i feel like it could actually somewhat help in the industry use cases where you
00:16:41you cannot describe it by like natural language um as well as i want to try um intersection over
00:16:52union merger sort of basically you have like labeled boxes and then judges boxes like you ask the judge to
00:17:00actually generate a box and then you take the intersection over union instead of asking judge to reject or
00:17:06accept and i'm working currently working on the segmentation support and thanks for listening if
00:17:14you want to actually learn more so basically i have a small vision repo story it has everything about
00:17:20like fine-tuning models quantizing models multi-model models everything around vision as well as
00:17:27transformers task guides we keep them up to date has many um tutorials um we also have hugging face skills
00:17:36that actually have computer vision specific skills as well as the infra skills that you can just do like
00:17:43like a one prompt training again um and this is my twitter profile and this repo is actually at github
00:17:51mervenoyan uh vision in turn i think i have um time for one question thank you so much
00:18:04yes um he's asking if i have plans to train vlms themselves like a self-improvement type of thing
00:18:16that would be super exciting but first i want to solve this thing of like developers actually training
00:18:22task-specific models and then deploying on edge and then that could come perhaps maybe one more yes
00:18:34um not really i don't think so i just use the because i wanted because a coding agent actually has the
00:18:44context i wanted it to generate the prompt maybe one more okay thank you so much
00:19:04so
Community Posts
No posts yet. Be the first to write about this video!
Write about this video