Problema de skill: pare de fazer deploy de modelos de visão e linguagem; use-os com Skills — Merve Noyan, Hugging Face
Autoria: AI Engineer · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: Skill issue: stop deploying vision language models, use them with Skills — Merve Noyan, Hugging Face · Canal: AI Engineer · 18:23 · Assistir no YouTube
Tópicos: Agentes de IA, Avaliação e benchmarks de IA, Modelos de IA, Modelos multimodais
Merve Noyan apresenta uma abordagem para usar modelos de visão e linguagem como ferramentas em um pipeline que gera anotações, avalia essas anotações e treina modelos de visão especializados. Ela demonstra o processo em tarefas de detecção de placas de trânsito e análise de documentos, destacando o custo baixo e a capacidade de generalização do modelo treinado. Também explica desafios como o desequilíbrio entre avaliadores e erros de senso comum de agentes de programação ao preparar dados de visão. Por fim, apresenta modelos de visão para diferentes tarefas e planos para ampliar o toolkit.
Pontos-chave
Seção intitulada “Pontos-chave”- Modelos de visão e linguagem podem ajudar a criar dados rotulados, mas modelos especializados podem ser mais adequados para tarefas que exigem velocidade e execução em dispositivos de borda.
- O toolkit combina um modelo de visão e linguagem para gerar rótulos, dois avaliadores para analisá-los e o treinamento de um modelo RF-DETR.
- A palestrante prioriza modelos com licenças permissivas e recomenda verificar os termos de uso antes de fazer deploy.
- Os avaliadores podem discordar e apresentar tendências diferentes; em alguns casos, aceitar exemplos aprovados por pelo menos um avaliador preserva mais dados.
- Agentes de programação podem gerar prompts e conduzir partes do pipeline, mas podem cometer erros de senso comum ao aplicar aumentos de dados.
- O pipeline foi testado em detecção de placas de trânsito e análise de documentos, com resultados que indicam generalização para exemplos não vistos.
- O toolkit reúne modelos para tarefas como segmentação, detecção, OCR, estimativa de profundidade e pose, com opções de diferentes tamanhos.
- A palestrante pretende explorar detecção guiada por imagem, suporte a segmentação e formas de comparar caixas previstas usando interseção sobre união.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:13 | Por que não usar modelos de visão e linguagem para tudo | A palestrante discute limitações de desempenho em tempo real, robustez e licenças de modelos. |
| 02:24 | Toolkit e critérios para escolher modelos | A apresentação introduz um toolkit que disponibiliza modelos de visão como ferramentas para agentes. |
| 04:00 | Pipeline de anotação, avaliação e treinamento | O pipeline usa modelos de visão e linguagem para rotular e avaliar dados antes de treinar um modelo especializado. |
| 06:49 | Como o pipeline funciona na prática | A palestrante explica a revisão das caixas delimitadoras, a combinação dos pareceres e a execução do treinamento. |
| 11:14 | Resultados e desafios dos avaliadores | Os testes mostram resultados nas tarefas escolhidas, enquanto a palestrante descreve discordâncias entre avaliadores e erros de agentes. |
| 13:27 | Modelos de visão disponíveis como ferramentas | O toolkit reúne modelos para diferentes tarefas e apresenta exemplos de segmentação, detecção, OCR e estimativa de profundidade. |
| 15:42 | Planos futuros e recursos para aprender | A palestrante propõe explorar detecção guiada por imagem e suporte a segmentação, além de indicar recursos e repositórios. |
| 17:16 | Perguntas e encerramento | Na conversa final, a palestrante comenta que prioriza ajudar desenvolvedores a treinar modelos específicos para tarefas e executá-los na borda. |
Citações
Seção intitulada “Citações”Não quero mais que desenvolvedores usem modelos de visão e linguagem diretamente. — 00:45
Seu coding agent é basicamente um engenheiro de visão computacional um pouco perdido. — 02:57
Se um deles disser sim, vou aceitar esse exemplo. — 11:46
Quero primeiro resolver a questão de os desenvolvedores treinarem modelos específicos para tarefas e depois fazerem deploy na borda. — 18:23
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- Merve Noyan (pessoa): Pesquisadora e palestrante da Hugging Face que apresenta o toolkit para aplicações de visão.
- Hugging Face (empresa): Empresa cuja infraestrutura e ferramentas são usadas no pipeline apresentado.
- RF-DETR (modelo): Modelo de visão usado para treinamento e tarefas como detecção e segmentação.
- SAM 3.1 (modelo): Modelo apresentado como ferramenta que pode ser chamada por outro modelo.
- Qwen (modelo): Família de modelos usada para gerar anotações de imagens no pipeline demonstrado.
- Gemma 4 E4B (modelo): Modelo usado como um dos avaliadores das anotações geradas.
- LFM 2.5-VL (modelo): Modelo de visão e linguagem usado como segundo avaliador das anotações.
- Falcon Perception (modelo): Modelo de segmentação zero-shot citado para identificar objetos descritos em relação a outros objetos.
- Roboflow (empresa): Empresa que mantém bibliotecas de supervisão e tracking mencionadas na apresentação.
- Supervision (ferramenta): Biblioteca citada para trabalhar com objetos, caixas delimitadoras e tracking.
- IoU (conceito): Interseção sobre união, métrica que a palestrante propõe explorar para comparar caixas delimitadoras.
- Apache License 2.0 (conceito): Licença permissiva que a palestrante prioriza ao escolher modelos para uso.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:13 Olá, sejam bem-vindos a esta palestra sobre problemas de skill. Na verdade, já não é mais um problema de skill. Ao final desta palestra, vocês poderão criar muita coisa com modelos de visão, caso ainda não estejam fazendo isso. Falando brevemente sobre mim, sou Marv. Trabalho com visão computacional desde os tempos do Lava, na época do Fix. Ultimamente, tenho trabalhado mais com agents e coisas no dispositivo, porque sou um pouco fascinado por modelos de visão e linguagem e gosto tanto deles que até escrevi um livro
00:45 sobre isso. Mas não quero mais que desenvolvedores usem modelos de visão e linguagem diretamente. Quero que cada desenvolvedor comece a criar aplicações de visão e linguagem de ponta a ponta. Esta palestra vai oferecer uma boa base para isso. Um comportamento comum que observo entre desenvolvedores é que eles tentam usar modelos de visão e linguagem para tudo, mas nunca vão conseguir tempo real. E, quando falo em tempo
01:16 real, quero dizer que você tem uma torradeira e consegue algo como 30 ou 40 fps nela, seja para criar classificação de imagens, segmentação de instâncias ou qualquer outra coisa. E eles não são muito robustos. Por exemplo, se você treinar um RFDTR, sobre o qual Joseph falou na primeira palestra — ou melhor, eu falei na primeira palestra —, ele sempre vai superar seu modelo de visão e linguagem, e vou provar isso hoje. E, à direita, vocês podem
01:49 me ver fazendo coisas com o RFDTR. Outra coisa é que as pessoas não leem as licenças. Sempre que publico algo sobre detecção de objetos, todo mundo me pergunta sobre YOLO. YOLO é um bom modelo, mas tem licença AGPL 3.0, acho. E eu juraria que há desenvolvedores que o colocam em produção sem saber que precisam pagar por isso. Então, sim, quero que vocês migrem hoje para modelos com licença Apache 2.0.
02:24 Para isso, criei algo chamado web vision, inspirado, em parte, nesta publicação de Mazar. Basicamente, o que ele faz é disponibilizar o modelo SAM 3.1 como uma ferramenta para o Gemma 4 chamar, e acho isso muito impressionante. Hoje, criei um kit de ferramentas para fazer isso com ainda mais coisas. É como se eu estivesse destilando a mim mesmo. Para começar, este kit de ferramentas inclui meus modelos favoritos como ferramentas, para que vocês
02:57 possam disponibilizá-los para seu agent, porque seu agent de programação é basicamente um engenheiro de visão computacional meio perdido. Quando destilo a mim mesmo, sempre verifico os seguintes pontos ao escolher um modelo. Primeiro, a licença é a minha maior prioridade. Tem que ser Apache 2.2, MIT ou algo não comercial. Segundo, o desempenho precisa estar à altura, dependendo do tamanho ou das escolhas arquiteturais. Então, consulto os benchmarks
03:28 sempre que sai um modelo de uma conferência de visão computacional. E, terceiro, obviamente, as vibes. Este kit de ferramentas tem uma segunda parte, uma espécie de parte de treinamento por vibe, que é a mais empolgante. Vou começar por ela. Coloquei-me no lugar dos desenvolvedores para criar uma aplicação de visão. Se tenho imagens rotuladas, é fácil: posso simplesmente treinar um modelo. Ou posso dar alguns
04:00 tutoriais ao meu agent de visão computacional para ele fazer isso, porque está tudo disponível — criamos o transformers para isso. Mas, se só tenho imagens, preciso anotá-las, avaliar as anotações e, então, treinar um modelo. Como fazer isso em escala? Na verdade, você pode usar um modelo de visão e linguagem como rotulador e modelos de visão e linguagem como avaliadores e, depois, treinar o que quiser. Mas como é esse pipeline? Basicamente, criei um que tem um modelo de visão e linguagem para rotulagem, um modelo de visão e linguagem como
04:35 avaliador e, depois, o treinamento. É uma tarefa de horizonte longo para coding agents e exige bastante infraestrutura. Dá para fazer isso localmente ou remotamente. Basicamente, roda na infraestrutura do Hugging Face. Temos jobs que permitem fazer processamento em lote ou treinamento em uma única execução. Também temos um sistema de roteamento serverless chamado inference providers, que permite usar vários provedores. E também temos buckets para armazenar dados intermediários, além dos repositórios de datasets, repositórios de modelos e assim por diante.
05:08 O que torna esse trabalho possível? Primeiro, meu modelo favorito, RFDTR, e a segmentação do RFDTR. No momento, estou trabalhando com segmentação. Temos agents melhores para tarefas de horizonte longo, nas quais é preciso acompanhar o processo de rotulagem, o processo de treinamento etc. E modelos de visão menores, mas mais capazes, permitem rotular coisas a um custo muito baixo. Além disso, com transformers, fizemos a refatoração do V5
05:43 e assim por diante. Por isso, neste momento, ele tem um desempenho melhor para modelos de visão. Este é o aspecto real do pipeline. Primeiro, rotulo o dataset: pego um dataset de imagens, qualquer um, e rotulo esse dataset com o Q1 3.59B. Depois, envio o dataset rotulado a dois avaliadores. O primeiro é o Gemma 4 E4B, que é um avaliador de 8B; o segundo é o LFM 2.5VL, que tem quase 2B, ou seja, é relativamente menor.
06:16 Consultei as pesquisas, e é melhor ter um conjunto de avaliadores menores. Além disso, combinei os julgamentos. Também consultei as pesquisas sobre isso, e a maioria das pessoas pede ao modelo de visão e linguagem ou ao LLM que atribua uma pontuação, mas essas pontuações simplesmente não funcionam, especialmente quando os modelos dos avaliadores têm tamanhos diferentes. Depois, envio tudo para treinar o RFDTR medium ou large. Conversei um pouco com o pessoal da Rob, e eles me incentivaram a usar isso
06:49 e vou mostrar que realmente funciona. Vou demonstrar isso daqui a pouco. Mas como funciona? Você pega o repositório e pergunta: “Tudo bem, pode treiná-lo? Pode fazer o treinamento com este dataset no hub?” Então, ele começa. Se o dataset tiver rótulos, você pode ir direto para o treinamento; se não tiver, pode começar a anotá-lo. Basicamente, o truque é passar para o avaliador as caixas delimitadoras sobrepostas nas
07:23 imagens. Tecnicamente, o Qan gera caixas delimitadoras como tokens. Não passo os tokens: apenas sobreponho as caixas delimitadoras e envio a imagem junto com alguns rótulos e descrições dos rótulos. Digo: “Tudo bem, se esta descrição de rótulo tiver uma caixa delimitadora, diga se você aprova ou não.” Depois, combino os veredictos dos avaliadores com base em um acordo mínimo, e não em consenso. Já vou explicar por que fiz assim. E
07:56 essas descrições dos rótulos também são geradas por coding agents. Depois, você, como pessoa, só precisa aprová-las. Os modelos que usei neste pipeline têm todos licenças Apache 2.0, com exceção do modelo LFM, que tem um tipo de licença segundo a qual, se você atingir determinado nível de receita, terá que pagar a partir daí. Mas dá para usá-lo tranquilamente. Ele é grande. Quanto aos coding agents que acompanham este pipeline, inicialmente o construí com
08:29 oppus 4.6 8 e, depois, executei o workflow com o G gl GLM 5.2 2, que, para ser sincero, está fazendo um bom trabalho em tarefas de horizonte longo. Quanto à infraestrutura, trabalho no Hugging Face e tenho muitos créditos de computação. Sou muito impaciente na vida, então uso bastante hardware para fazer experimentos. Mas fiz um benchmark e, no total, custa uns três ou quatro dólares para executar o pipeline inteiro e treinar modelos. Para mim, isso é
09:02 incrível. No começo, para o Q1 3.5 5, usei o serviço serverless porque pensei: “Tudo bem, é prático e muito barato.” Então, usei o deep infra, que é muito, muito barato. Se vocês forem usar o together, é melhor fazer processamento em lote usando jobs. Para a avaliação, usei os jobs do Hugging Face, que custam menos. E, para o treinamento, usei uma L4. Mas o modelo é muito pequeno: o RFDTR é muito pequeno, então você pode usar outra coisa. Também pode fazer isso localmente.
09:34 se você quisesse. Eu só sou impaciente. Quero um tamanho de lote grande. Então, sim, testei em dois problemas. Primeiro, detecção de placas de trânsito. Segundo, análise de documentos. No caso da detecção de placas de trânsito, eu já tenho os rótulos. Então, comparei com as anotações de ground truth para ver se meu pipeline funciona ou não. Já para a análise de documentos, não consegui fazer isso porque usei um conjunto de dados de docqa e o problema é que eu quero extrair imagens, tabelas, assinaturas e coisas assim. Então, é
10:09 uma tarefa inovadora, e eu queria ver se o RFDTR consegue aprendê-la. O primeiro resultado: funciona. Viva! Temos uma boa precisão média acima de 50, e comparei com o seguinte: tenho um conjunto de teste, passo esse conjunto pelo QN e depois comparo com as anotações pseudo e as anotações de ground truth desse conjunto de teste. Há uma
10:40 diferença, mas é meio que esperado, porque ele aprendeu com QN, e o rock oak também é um bom valor, para ser sincera, para esse tipo de caso de uso. E, na análise de documentos, ele generaliza, o que para mim é incrível. Aqui, a saída do modelo treinado mostra que ele detectou a assinatura. Enquanto isso, a anotação do QN desse conjunto de teste não a identificou. Então, eu diria que ele também generaliza muito bem. Mas devemos isso a
11:14 como o RFDTR é bom como backbone, de certa forma. Aqui, vocês também podem ver como ele captura as imagens, tecnicamente. É uma correspondência um para um. Enquanto eu desenvolvia isso, percebi que não sabia nada sobre como construir com agents de visão. Então, tenho várias descobertas sobre isso. Primeiro, há um grande desequilíbrio entre os juízes, dependendo do problema. O LFM tende a rejeitar muita coisa. Por isso, não consegui
11:46 usar o consenso, porque, se eu eliminasse tudo o que tanto o LFM quanto o Gemma concordavam em remover, sobrariam pouquíssimos exemplos, o que resultaria numa generalização muito ruim. Então, o que fiz foi: se um deles disser sim, vou aceitar aquele exemplo. E, mesmo assim, funcionou bem. Se você tiver um conjunto de dados grande e se importar com o recall, sugiro usar o consenso. Ou então, basta observar que, na análise de documentos, a diferença não é tão grande. Em segundo lugar, a geração do prompt
12:24 é um pouco difícil. Essa é a única parte em que, como pessoa, você precisa aprovar: o modelo gera os prompts para o juiz e, então, você diz: “Tudo bem, aprovo isso”, porque ainda precisa dar uma olhada. Precisa examinar um pouco o seu conjunto de dados; não tem como evitar. Em terceiro lugar, e isso é muito interessante: seu agente de programação, por melhor que
12:56 seja, continua sem saber nada. Você pode usar o OPUS 4.8, que é um agente de programação muito bom. Mas ele também não entende de engenharia de visão computacional e deixa passar coisas de bom senso. Por exemplo, ele fazia inversões horizontais nas placas de trânsito ou aplicava jitter nos semáforos, o que definitivamente corromperia e estragaria seu conjunto de dados. Então, corrigi isso depois. Você pode simplesmente dizer: “Tudo bem, não quero aumentar os dados” ou “Posso aumentar os dados”. O agente de programação vai
13:27 ajudar com isso. Por fim, a segunda parte desse toolkit são meus modelos preferidos como ferramentas. Esse repositório reúne meus modelos favoritos, desde estimativa de profundidade até segmentação zero-shot. Isso é parcialmente alimentado pelos benchmarks da Hugging Face, que lançamos há alguns meses. Basicamente, temos um leaderboard de benchmark, onde você encontra os modelos open e os resultados das avaliações, e pode comparar diferentes
14:02 modelos de tamanhos diferentes. Eu também mantenho isso atualizado, mas parte também vem de mim, que gosto de ler artigos de conferências de visão computacional. Quero destacar este modelo, porque muita gente não o conhece. Basicamente, o Sam não consegue fazer segmentação por referência de forma aberta. Você pode dizer: “Segmente este carro vermelho”, e ele fará isso. Mas, se disser: “O carro vermelho ao lado
14:34 do carro laranja que está ao lado do carro azul”, ele não fará isso. O Falcon perception, um modelo da TIA, consegue fazer isso e tem apenas 600 milhões de parâmetros, com licença Apache 2.0. Então, esse modelo faz a segmentação zero-shot para mim, e esta é uma lista não exaustiva. Para estimativa de pose, temos a família sapiance, para tarefas centradas em pessoas, em que você precisa fazer detecção de pontos-chave humanos, estimativa de profundidade humana e assim por diante. Para detecção zero-shot,
15:08 tenho o moon dream 3 e o mm grounding dynino, que também é muito bom e tem licença Apache 2.0. É bem pequeno em comparação com o Moon Dream. Ofereço vários modelos em vários tamanhos, dependendo do seu hardware, para você escolher. Se quiser velocidade, escolha a alternativa tiny. Para OCR, peguei os modelos do benchmark de OCR em tamanhos diferentes. Para estimativa de profundidade, descobri que o modelo grande não tem uma licença para uso comercial, mas os
15:42 outros têm. Então, você pode usá-los. Esse tem licença Apache 2.0. Ele também vem com suporte para supervision e tracker. São duas bibliotecas da Roboflow que permitem rastrear instâncias, caixas delimitadoras e assim por diante. E, sobre os planos para o futuro: primeiro, imagino que vocês possam dizer: “Isso definitivamente não vai funcionar para casos de uso industriais, porque eles têm partes diferentes”. Há partes indescritíveis, para as quais a linguagem natural não é uma boa forma de acesso. Isso
16:12 me leva a pensar que a detecção guiada por imagem poderia ajudar. Se você não conhece a detecção guiada por imagem, basicamente, você tem uma imagem, por exemplo, uma haggie aqui, e pede ao modelo: “Detecte este objeto nesta imagem”, em todas as imagens. Acho que isso poderia ajudar de certa forma nos casos de uso industriais em que não é possível descrevê-lo
16:43 em linguagem natural. Também quero experimentar uma espécie de correspondência por interseção sobre união: basicamente, você tem caixas rotuladas e caixas do juiz. Você pede ao juiz para gerar uma caixa e, então, calcula a interseção sobre união, em vez de pedir ao juiz que rejeite ou aceite. Atualmente, estou trabalhando no suporte a segmentação. Obrigada por ouvirem. Se quiserem saber mais, basicamente, nós
17:16 temos um pequeno repositório de visão. Ele reúne tudo sobre fine-tuning de modelos, quantização de modelos, modelos multimodais e tudo relacionado à visão. Também temos guias de tarefas do transformers. Nós os mantemos atualizados; há muitos tutoriais. Também temos as hugging face skills, com skills específicas de visão computacional, além das skills de infras, que permitem fazer treinamento com apenas um prompt. E este é meu perfil no Twitter, e este repo
17:50 fica no GitHub, Marvin, vision intern. Acho que tenho tempo para uma pergunta. Muito obrigada. Sim. >> Vocês têm planos para treinamento? >> Ele está perguntando se tenho planos para treinar os próprios VLMs, como uma espécie de autoaperfeiçoamento. Isso seria muito empolgante. Mas primeiro quero resolver essa questão de os desenvolvedores treinarem modelos específicos para tarefas
18:23 e depois fazerem deploy na borda. Talvez isso possa vir depois. Mais uma pergunta. Sim. >> Não exatamente. Acho que não. Eu só usei… porque eu queria… porque um agente de programação tem o contexto. Eu queria que ele gerasse o prompt. Mais uma pergunta? Tudo bem. Muito obrigada.
Transcrição original
[00:13] Hello and welcome to this talk on skill issue. It’s actually no longer a skill issue. So uh by the end of this talk you will be able to build a lot with the vision models if you are already not doing it. So shortly about me, I’m Marv. Uh I’ve been working on computer vision since Lava in the fix times. Uh and lately I work on more agents and ondevice stuff because I’m a bit fascinated and I love vision language models so much that I even wrote a book
[00:45] on it. But I don’t want developers to directly use vision language models anymore. And uh I want every single developer to start uh building vision langu vision applications end to end. And this talk is going to give you like a good baseline to do so. And 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 real time. And when I mentioned real
[01:16] time, it’s like you have a toaster and you get like 30 40 fps uh on it like whatever whether you are building like image classification, instance segmentation or whatever. And um they are not super robust in terms of like if you were to train like an RFDTR which Joseph spoke in the I spoke about in the first talk um it will always outperform your vision language model and I’m going to prove it today. And uh on the right hand side you can
[01:49] actually see me uh doing stuff with RFDTR. Um 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 a it has AGPL 3.0 license I think. And I could swear on my life that there is like some developers that actually deploy it without knowing that they have to pay for it. Um so yeah like uh I want you to migrate to Apache 2.0 models today.
[02:24] And for this I have built something called web vision and it’s kind of inspired by this post by Mazar. Basically 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 impressive. Um and today I built like a tool kit uh where you can do this with like even more things. So I’m kind of distilling myself. Um first off uh this toolkit has my favorite models as tools uh so that you
[02:57] can give it to your agent because your coding agent is a bit of a clueless computer vision engineer basically. Um and when I distill myself basically like whenever I pick a model I always check the following. So first up the license is the biggest priority for me. It has to be Apache 2.2 MIT or something non-commercial. Uh secondly uh the performance has to be on par uh depending on its size or architectural choices. So I check from the benchmarks
[03:28] uh whenever a model from a computer vision conference comes out and third vibes obviously and so this toolkit has a second part to it and it’s a bit like a vibe training part which is the most exciting part. So I will go through it first. So I put myself in developers shoes to build like a vision application. Um if I have labeled images easy I can just train a model or like if I I can give my computer computer vision agent some
[04:00] tutorials uh to do that because it’s all out there like we built transformers for it. Uh but if I have images only I have to annotate uh and then uh evaluate the annotations and then just train a model. But how can you do it on scale? You can actually use a vision language model as a labeler and the vision language models as judge and then train what you want. But how does this pipeline look like? So basically I built this and it has like it has VLM for labeling VLM as a
[04:35] judge and then training. Uh it’s a bit of a long horizon tasks for coding agents and it has infra many infrastructure support. You can do this locally. You can do this uh remotely. So basically it runs on hugging face infrastructure. We have jobs that allow you to do oneoff batch processing or training. We also have like a serverless routing system called inference providers where you can use multiple providers and you we also have like buckets to dump intermediate data on top of the data set repositories, model
[05:08] repositories and so on. Um but what enables this work? First off, my favorite model, RFDTR, RFDTR segmentation. I’m currently working on segmentation at the moment. Um, we have better agents for long horizon tasks. Uh, that, you know, you have to babysit the labeling process, the training process, etc. Uh, and smaller yet more capable vision models enable you to label stuff very cheaply. And also with transformers we went for V5 refactoring
[05:43] etc. So like it performs better for vision models at the moment. And this is how the pipeline actually looks like. So first up I label the data set like I take an image data set like any image data set. I label that image data set with Q1 3.59B and then I pass the labeled data set to two judges. First one is Gemma 4 E4B which is like an 8B judge and then the second one is LFM 2.5VL which is nearly 2B uh it’s relatively smaller basically
[06:16] I checked the research and it’s better to have like an ensemble smaller judges and on top of it I merged the judgments so I also checked the research around it and most of the people ask the VLM or LLM to assign some score to it but those scores absolutely absolutely don’t work especially if your models are of different size with judges. Um and then I pass it to train RFDTR medium or large. So I I chatted a bit with Rob people and they encouraged to use that
[06:49] and I’m going it it actually works. I’m going to show you very shortly. U but how does it work? So you take the repository and then you just ask it okay can you train it? Can you do the training on this data set on hub? And then it will start like if if the data set has labels like you can actually just get to training but if it doesn’t have it you can just uh start annotating and I basically like the trick is I I pass the overlaid bounding boxes on
[07:23] images to the judge. So basically Qan technically outputs bounding boxes as tokens. I don’t pass them. I just overlay the bounding boxes and I pass that image on top of some labels and label descriptions and I say okay if this label description has bounding box on it then just um tell me if you approve or not and then the judge I I merge the judge verdicts over minimum agreement and not consensus which I will come to why I did that that way and
[07:56] these label descriptions are also generated by coding agents. and you just approve it as a human being. And the the models that I used in this pipeline all have Apache 2.0 of licenses except for LFM model which has type of license where you are kind of um if you have like certain amount of revenue after that you pay for it but you can comfortably use it it’s large and for the coding agents that are babysitting this pipeline uh I initially built with
[08:29] oppus 4.6 uh 8 and then ran the workflow with the G gl GLM 5.2 2 which is doing a good job on long horizon tasks to be honest and for infra I actually work at hugging face I have a lot of compute credits and I’m super impatient in life so like uh I use a good amount of hardware for experimentations but I benchmarked it and overall it takes like three four dollars if you want to run this entire pipeline to train models which to me is
[09:02] crazy initially for Q1 3.5 5 I used serverless because I was like okay this is convenient and it’s super cheap so I use deep infra which is super super cheap if you were to use together it’s better if you do batch processing over jobs and then for the judging I used hugging face jobs which cost less and then for training again I used like an L4 but the model is super small like RFDTR is super small and you can just use something else you can do it locally
[09:34] if you wanted to. I’m just impatient. I want a big batch size. So yeah, and I tested in two problems. First of the road sign detection. Uh secondly, document parsing. For the road sign detection one, I already have the labels. So like I actually compared against the ground truth annotations if my pipeline works or not. And for document parsing, I actually uh couldn’t do it because basically I use like a docqa data set and I the problem is like I want to extract the images, tables, I don’t know signatures and stuff. So it’s
[10:09] like a novel task and I wanted to see if RFDTR can actually learn it. So first result it works. So yay. um we have like a good uh mean average precision over um 50 um and I compare it against the basically I have a test set and I take that test set and pass through QN and then I compare against the pseudo notations and the ground root annotations of that test set there is a
[10:40] bit of a gap but it’s kind of expected because it’s learned from QN and also uh rock oak is also like a good value to be frank for like such use case. Um and for the document parsing it actually generalizes which to me is crazy. Basically uh here the trained model output you can see that it detected the signature. Meanwhile the QN annotation of that test set missed it. So I would like to say it actually generalizes very well as well. uh but we owe this to like
[11:14] the how good RFDTR is as a backbone in a way and here you can also see how it uh captures the images technically um and it’s like oneonone and while I was building this I actually noticed that I was clueless about building with vision agents um so I have bunch of findings around it um so first up there is a huge judge imbalance so for depending on the problem. LFM tends to reject a lot. That’s why I couldn’t
[11:46] take the consensus because if I were to if I were to eliminate everything that both LFM and Gemma agreed to remove, um I would left with very very little number of examples which would leave me with very poor generalization. So what I did was that okay, if one of them says yes, I’m going to take that example and nevertheless it worked well. If you have a large data set and if you care about the recall, I suggest that you take the consensus or like just observe for document parsing the gap isn’t as big. And secondly, uh the prompt generation
[12:24] is a bit hard. So like this is the only part where as a human you have to approve uh okay the model generates the prompts for you for the judge uh and then you will say okay this I I approve this because you need to to take it still take a look at it uh take a look at your data set a little there’s no escaping that um and thirdly and this is super interesting because your co your coding agent despite no matter how uh good it
[12:56] is. Like you take OPUS 4.8 which is like a very good coding agent. Um it’s clueless as a computer vision engineer as well as it misses common sense. For instance like it was doing like horizontal flip over the traffic signs or it was doing like jitter over the traffic lights which will definitely corrupt your data set and break it. So I patched this later. So you can just say okay I don’t want to augment or I can augment. So Angular coding agent will
[13:27] help you with that. And lastly the second part of this toolkit is my preferred models as tools. Um so this repository covers my favorite models from depth estimation to zero shot segmentation. Uh and this is partially powered by first of hugging face benchmarks uh which we recently rolled out maybe a few months ago. Basically every single basically we have like a benchmark leaderboard and over there you have the open models as well as their evaluation results and you can compare different
[14:02] models of different sizes. So um I keep it up to date as well but like also it’s partially powered by me who likes to read the um computer vision conference papers. Um, so I would like to give a shout out to this model because not a lot of people know about this. So basically Sam cannot do open-ended reference se uh segmentation like you can do like okay segment this red car and it will do it. But if you say okay the red car next to
[14:34] the orange car that is next to the blue car it will not do that. and Falcon perception which is a model by TIA um can actually do it and it’s only like 600 million parameters with Apache 2.0 license. So this one does the zero shot segmentation for me and this is like a non-exhaustive list. So for posing we have the sapiance family um for the human centric tasks where you need to do human koid detection human um depth estimation and so on and for zero shot
[15:08] detection uh I have moon dream 3 and mm grounding dynino which is like a model with apache 2.0 license is also very good. It’s very small compared to Moon Dream. I give you the multiple models in multiple sizes depending on your hardware that you can pick like if you want to go fast just pick the tiny alternative. Um for OCR I actually took them from the OCR benchmark in different sizes and for depth estimation I actually uh discovered that the large model doesn’t have a non-commercial license and the
[15:42] rest of them have it. So you can actually use it. That one has like an Apache 2.0 license. And it also comes with um supervision and tracker support. They are both uh libraries from Roboflow that um allow you to do tracking of instances, bounding boxes and so on and future plans. So first off, I I could hear you say, okay, this will definitely not work for the industry use cases because industry use cases have different parts. it has like
[16:12] nondescribable parts like natural language is not a good gateway to it. Um so I think in that sense image guided detection could help like if you don’t know about image guided detection you basically have like instance of an image like a haggi here as an example and then you ask the model okay detect this object in this image um across all of the images. I feel like it could actually somewhat help in the industry use cases where you cannot describe it
[16:43] by like um natural language. Um as well as I want to try um intersection over union merger sort of basically you have like labeled boxes and then judges boxes like you ask the judge to actually generate a box and then you take the intersection over union instead of asking judge to reject or accept and I’m working currently working on the segmentation support and thanks for listening if you want to actually learn more so basically I We
[17:16] have a small vision repository. It has everything about like fine-tuning models, quantizing models, multimodel models, everything around vision. Uh as well as transformers task guides. We keep them up to date has many um tutorials. Um, we also have hugging face skills that actually have computer vision specific skills as well as the infras skills that you can just do like a one prompt training. Again, um, and this is my Twitter profile and this repo
[17:50] is actually at GitHub Marvin uh, vision intern. I think I have qu um, time for one question. Thank you so much. Yes, >> you have plans for training. >> Um, he’s asking if I have uh plans to train train VLMs themselves like a self-improvement type of thing. That would be super exciting. But first, I want to solve this thing of like developers actually training task
[18:23] specific models and then deploying on edge and then that could come perhaps. Maybe one more. Yes. >> Um, not really. I don’t think so. I just use the because I wanted because a coding agent actually has the context. I wanted it to generate the prompt. Maybe one more. Okay. Thank you so much.