Modelos de decisão por imagem para RPA: formulários, digitalizações e capturas de tela
Autoria: Sam Witteveen · 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: Image Decision Models for RPA: Forms, Scans and Screenshots · Canal: Sam Witteveen · 16:19 · Assistir no YouTube
Tópicos: Automação de tarefas e workflows, Avaliação e benchmarks de IA, Modelos multimodais
O vídeo demonstra como modelos abertos de decisão por imagem podem responder a perguntas sobre formulários sem depender de OCR ou de fine-tuning específico. O apresentador testa dois modelos em formulários fiscais, avaliando campos como assinatura, data de nascimento e endereço. Os resultados mostram que os modelos podem ser rápidos e úteis, mas seu desempenho varia conforme a pergunta e o tipo de classificação. Por isso, recomenda-se calibrar as perguntas, definir limites de confiança e encaminhar casos incertos para revisão humana.
Pontos-chave
Seção intitulada “Pontos-chave”- Em processos de RPA, muitas decisões que envolvem interpretar documentos ainda são encaminhadas a pessoas.
- Os modelos de decisão por imagem recebem a imagem diretamente, sem uma etapa prévia de OCR.
- É possível perguntar se um formulário está assinado, se um campo está vazio ou que tipo de documento aparece na imagem.
- O modelo ImaJev pode retornar uma opção de resposta desconhecida, reduzindo a pressão para adivinhar.
- Um limite de confiança permite encaminhar previsões incertas para outro modelo ou para uma pessoa.
- Os modelos testados tiveram desempenhos diferentes conforme o formato da pergunta, como verdadeiro ou falso versus classificação por opções.
- É necessário testar e calibrar cada modelo e cada pergunta para o caso de uso pretendido.
- A lógica condicional pode gerar mensagens de acompanhamento sem usar um LLM para redigir o texto.
- O apresentador menciona o fine-tuning de modelos abertos como uma possível etapa futura quando houver dados adequados.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | O papel das decisões na automação de processos | O apresentador explica por que bots de RPA automatizam etapas rotineiras, mas muitas decisões sobre documentos ainda dependem de pessoas. |
| 03:41 | Modelos de decisão por imagem e o demo | O vídeo apresenta o benchmark ImageBench e propõe testar modelos abertos em formulários sem fine-tuning específico. |
| 06:19 | Como o inspetor de formulários funciona | As imagens são enviadas diretamente aos modelos, que respondem a perguntas sobre campos e podem fornecer probabilidades e uma opção desconhecida. |
| 09:23 | Comparação de resultados e limites de confiança | Os testes revelam diferenças entre modelos e formatos de pergunta, destacando a necessidade de calibrar previsões e encaminhar incertezas para revisão. |
| 12:33 | Testes com novos campos e formulários | O apresentador altera as perguntas e testa um formulário diferente, mostrando que cada modelo pode se comportar de maneira distinta. |
| 15:14 | Possibilidades de adaptação e usos | O vídeo encerra com a possibilidade de fazer fine-tuning e destaca aplicações em RPA, classificação de imagens e análise de grandes volumes de documentos. |
Citações
Seção intitulada “Citações”Os retângulos são as etapas. Os losangos são as decisões. — 00:00
Estou apenas passando uma imagem bruta para o modelo. — 06:50
Ele ou tem certeza do que é, ou responde ‘desconhecido’. — 07:20
Não pense que, por ser o melhor modelo, ele vai funcionar muito bem em todas as tarefas. — 14:07
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- RPA (conceito): Automação robótica de processos que usa bots para interagir com telas e transferir dados entre sistemas.
- ImaJev (modelo): Modelo aberto de decisão por imagem apresentado como capaz de responder a perguntas sobre o conteúdo de imagens.
- ImaJev 4B (modelo): Modelo de decisão por imagem testado no vídeo, que aparece no topo do benchmark mencionado.
- Jev Omni (modelo): Modelo comparado ao ImaJev 4B na análise de formulários do demo.
- ImageBench (conceito): Benchmark apresentado no vídeo para avaliar sistemas que tomam decisões a partir de imagens.
- UiPath (empresa): Empresa citada como uma das maiores do setor de RPA.
- OCR (conceito): Reconhecimento óptico de caracteres, etapa que o demo não usa antes de enviar a imagem ao modelo.
- fine-tuning (conceito): Adaptação de um modelo com dados específicos para melhorar seu desempenho em um caso de uso.
- LoRa adapter (conceito): Adaptador mencionado como uma opção leve para fazer fine-tuning de modelos com dados do caso de uso.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Certo, se você representar qualquer processo empresarial como um fluxograma, terá duas formas principais. Os retângulos são as etapas. São coisas como copiar isto, clicar naquilo, arquivar isto. E os losangos são as decisões. Isto parece certo? Isto é uma fatura? Isto é um pagamento? Durante anos, as ferramentas de RPA automatizaram os retângulos. Isso é automação robótica de processos: bots de software que percorrem telas clicando e copiam dados entre sistemas da mesma forma que uma pessoa faria, geralmente seguindo regras fixas.
00:32 Mas os losangos ainda costumam ficar a cargo de uma pessoa, porque uma regra não consegue olhar para uma página e dizer se há uma assinatura ou não. Hoje, as pessoas têm tido bastante sucesso usando aprendizado profundo para fazer isso, mas, em geral, o desafio tem sido o fato de precisarem usar modelos personalizados para cada empresa específica e para cada caso de uso empresarial específico. Mas está se revelando que este é mais um campo em que um tipo muito específico de modelo Jev pode ter um impacto enorme. Então, o que vou mostrar neste vídeo é que criei um inspetor
01:02 que basicamente analisa formulários, sejam eles PDFs ou imagens, e depois os processa com dois pequenos modelos abertos que tomam decisões diretamente a partir de imagens. Eles são literalmente modelos OpenJev. E ambos os modelos estão muito bem posicionados no benchmark ImaJev. Na verdade, aquele que está no topo aqui foi criado por uma pessoa em 15 dias, usando apenas US$ 1.200 em GPUs alugadas. Sei que já fiz vários vídeos sobre os conceitos de modelo de decisão Jev. E também fiz vídeos mostrando como você pode usá-lo com agents e como pode
01:35 usá-lo para tomar decisões sobre texto. Neste vídeo, quero me concentrar exclusivamente em imagens e nos modelos de decisão ImaJev. Lembre-se de que, na época em que estou gravando isto, nem mesmo o próprio modelo Jev consegue lidar com imagens. Então, neste caso, só temos modelos abertos para testar essas coisas. Certo, então que problema isso está realmente resolvendo? Se você já automatizou alguma coisa em uma empresa, já se deparou com alguma versão disso. Você tem algum tipo de bot que consegue preencher um formulário da web, clicar e enviar.
02:08 Mas muitas vezes você não sabe se realmente funcionou até alguém conferir a captura de tela. Também há casos em que um cliente envia uma foto para pedir um reembolso. Essa foto realmente mostra aquilo que ele alega? Bem, alguém precisa olhar para ela. Se você estiver analisando faturas, contratos ou formulários, muitas vezes precisa conferir se foram realmente assinados. E cada um desses casos é um daqueles losangos no fluxograma. É uma decisão de sim ou não que uma pessoa ou um modelo de aprendizado profundo realmente vai
02:39 tomar depois de analisar alguma coisa. Automatizar todos esses tipos de tarefa é uma indústria enorme. Ela tem até um nome próprio: RPA, automação robótica de processos. Se você olhar para algumas das maiores empresas do setor, vai encontrar nomes como UiPath. Conheci a UiPath em 2018. Na época, o que eles estavam fazendo parecia realmente impressionante. Certamente estavam levantando muito dinheiro. E, de fato, em 2021, abriram capital com uma avaliação de cerca de US$ 30 bilhões a US$ 40 bilhões.
03:10 Desde então, porém, a empresa meio que desabou. Se você olhar o preço das ações, ele caiu de uma máxima na casa dos US$ 70 para cerca de US$ 13 ou US$ 14 por ação agora. Hoje, a capitalização de mercado está abaixo de US$ 6,5 bilhões. Então, a grande pergunta aqui é: o que realmente deu errado? E o que descobri conversando com pessoas que trabalharam de fato com a UiPath foi que, embora a promessa de automação completa fosse realmente incrível, os modelos muitas vezes não funcionavam como prometido. E, para ser justo,
03:41 não acho que necessariamente a UiPath estivesse oferecendo um produto muito ruim. É só que o tipo de aprendizado profundo que as pessoas usavam para esses modelos exigia muito fine-tuning para o caso de uso específico. Simplesmente não havia classificadores gerais e universais capazes de realizar muitas dessas tarefas com um alto nível de precisão. Então, quando comecei a ver pessoas criando esses modelos ImaJev, fiquei muito curioso para saber se isso poderia ser aplicado a RPA.
04:12 Para a demonstração, escolhi formulários, porque praticamente todo escritório tem pilhas deles, que precisam ser digitalizados ou já existem em versões eletrônicas, como PDFs e outros formatos. E o que eu queria testar era se poderíamos criar uma demonstração na qual você soltasse um PDF de um formulário — ou até mesmo processasse vários em lote — e o sistema gerasse rapidamente respostas sobre aquele formulário. Por exemplo, a pessoa preencheu corretamente a data de nascimento?
04:45 O formulário foi realmente assinado? Tem o endereço da pessoa? É um formulário fiscal? É uma fatura? Tudo isso são tarefas padrão de RPA, e eu queria descobrir se poderíamos pegar um modelo que não tivesse passado por fine-tuning para esse caso de uso específico e ver como ele se sairia. Certo, este é o ImageBench, um novo benchmark para sistemas que tomam decisões a partir de imagens. No topo, temos o ImaJev 4B, e dá para ver que ele está
05:15 com uma pontuação realmente boa aqui. Abaixo dele temos o Jev Omni, depois o NeoHorse e vários outros modelos. Curiosamente, a pessoa por trás do ImaJev escreveu uma publicação no Reddit explicando não só como o criou, mas também por que o criou. Essa pessoa é consultora de processos e trabalhou com reembolsos, devoluções e atendimento ao cliente. E o argumento dela era que, nesses mapas de processo, quase todas as decisões acabavam sendo tomadas por uma pessoa, porque é muito difícil lidar com a ambiguidade
05:46 usando apenas código. Então, fiquei curioso para testar o modelo dela e alguns dos outros modelos na minha demonstração. Decidi criar uma demonstração com os dois modelos que estão no topo e ver como funcionaria. Sei que já fiz vários vídeos sobre Jev, mas eles se concentravam principalmente em texto. Os ImaJevs abrem um conjunto totalmente novo de oportunidades, porque muitas decisões empresariais não estão em textos. Estão em capturas de tela, fotos, digitalizações e arquivos PDF, e é nisso que quero me aprofundar neste vídeo. Então, a ideia geral
06:19 desses modelos é que eles são basicamente o losango que recebe as evidências: uma captura de tela, uma foto, uma página. Eles podem analisar tudo isso e responder a várias perguntas de sim ou não com base na imagem como contexto. Em um modelo Jev normal, basicamente passamos o texto como estado e, em seguida, passamos nossas perguntas tipadas. Aqui, passamos a imagem como parte desse estado, mas também continuamos passando nossas perguntas tipadas, como antes. Agora, é importante deixar claro que não estamos fazendo nenhum tipo de OCR aqui, certo?
06:50 Não é como se eu estivesse aplicando OCR ao formulário primeiro e depois passando o resultado para o modelo. Estou passando uma imagem bruta diretamente para o modelo, então é o próprio modelo que decide o que está representado nela. Depois, ele usa isso para responder a perguntas como: há uma assinatura manuscrita? Um campo específico está vazio? Há alguma coisa preenchida com uma data ou não? E o interessante é que ele nos devolve uma probabilidade para cada opção. O ImaJev também foi treinado para devolver a probabilidade de a resposta ser desconhecida.
07:20 O bom de incluir isso é que ajuda o modelo a não ficar chutando. Basicamente, ou ele tem certeza do que é, ou responde “desconhecido”. Agora, com as respostas que recebemos, ainda temos mais ou menos a mesma instrução if inteligente que tínhamos com os modelos de texto. Só que agora as instruções if inteligentes são coisas que você consegue ver. E uma das coisas legais dessas instruções if é que você pode definir uma pontuação de confiança; se o resultado vier abaixo
07:50 Então, basicamente, você pode dizer: “Certo, não confio no modelo. Vou enviar isso para outro modelo, para confirmar a previsão, ou vou enviar para uma pessoa analisar.” Certo, então vamos à demonstração. Este é basicamente o inspetor de decisões de formulários. Vou mostrar rapidamente o que ele pode fazer. Podemos simplesmente arrastar um PDF para cá. Vou mostrar o que é isto. É basicamente um formulário fiscal dos EUA. O texto é bem pequeno, mas dá para ver pelo menos
08:21 que, certo, há um nome e vários detalhes. Neste caso, dá para ver que a assinatura está faltando. O nome da pessoa que assina está lá, a data de nascimento está lá, mas, neste caso, a assinatura está faltando. Agora, se formos às perguntas, dá para ver que temos várias aqui. Temos coisas como: a data ao lado da assinatura foi preenchida? O endereço postal foi preenchido? A data de nascimento foi preenchida? E também temos campos para o que está faltando, campos para saber que
08:52 tipo de formulário é este. E também temos outras coisas, como: quão legível é a letra nesta página? Vou executar isso. Também posso alterar coisas como o DPI, ou seja, a resolução das imagens e o que é enviado para o modelo. Estou executando dois modelos aqui: o ImaJev 4B e o Jev Omni. Agora vou mostrar alguns dos problemas que você pode encontrar. Isso é processado… Basicamente, ele executa e dá para ver que, de fato,
09:23 dá para ver que este modelo fez um bom trabalho, certo? Basicamente, ele disse: “Está assinado? Não, é falso. Não está assinado”, neste caso. Aqui em cima, podemos definir o nível de confiança que o modelo precisa ter antes de aceitarmos o resultado ou o encaminharmos para uma pessoa analisar. Como a confiança ficou abaixo dos 90% que defini, ele vai dizer que o caso deve ser encaminhado para uma pessoa, porque configurei dessa forma. Mais importante, esta resposta está errada. Então, volto a isso daqui a pouco.
09:54 datado. Os dois concordam. Os dois estão acertando. O endereço parece certo. Dá para ver que, neste caso, um disse que a data de nascimento está lá e o outro disse que não. E dá para ver que, quando perguntamos o que está faltando, este modelo diz que a assinatura está faltando, certo? Mas aqui em cima, quando perguntamos se a assinatura está presente, verdadeiro ou falso, ele disse que estava. Isso destaca o problema que você vai encontrar com os diferentes modelos atualmente: eles tendem a ser melhores
10:27 em diferentes tipos de pergunta. Dá para ver aqui que, quando perguntamos a este modelo o que está faltando, ele diz que não falta nada, certo? Essa é uma pergunta de escolha. É uma pergunta de classificação. Já na pergunta de verdadeiro ou falso, neste caso, ele acerta. Dá para ver que a resposta que ele retornou é assim, e, se quisermos, podemos ver a imagem. Neste caso, ele erra. É aí que você precisa ter cuidado com o modelo que usa; não é necessariamente que um modelo seja ótimo e outro seja péssimo.
11:00 Eles tendem a ser melhores em coisas diferentes. Vou mostrar rapidamente com este mesmo formulário. Se mudarmos a assinatura para uma pergunta de escolha, certo? E executarmos agora, dá para ver que este modelo agora diz que há apenas um nome digitado. Não há assinatura manuscrita. E este outro agora também diz que há apenas um nome digitado, sem assinatura. Isso mostra que, especialmente neste modelo, ele provavelmente é melhor em
11:31 classificações do que em perguntas de verdadeiro ou falso relacionadas a esta tarefa, certo? Não vou dizer que ele é melhor em todas as tarefas, mas, para esse tipo de tarefa, preciso calibrá-lo desde o início. E dá para ver que os dois acertaram que era um formulário fiscal. Os dois disseram que estava claro ou legível. De certa forma, provavelmente “claro” e “legível” são quase a mesma coisa aqui. Outra coisa que também podemos fazer é incluir um e-mail de acompanhamento.
12:01 Isso não é algo que esteja sendo enviado a um LLM para escrever o e-mail. É literalmente apenas lógica condicional. Se não houver assinatura, basicamente dizemos: “Obrigado por enviar seu…” e preenchemos “formulário fiscal”. “Antes de podermos processá-lo, você poderia assinar o formulário no campo de assinatura?” Então, isso não usa um LLM comum de forma alguma. Mas é importante entender que não há OCR acontecendo aqui. Estamos literalmente apenas enviando uma imagem e, em seguida, processando-a
12:33 para esse tipo de coisa. E o legal aqui é que podemos testar diferentes perguntas. Então, se eu quiser editar algo, o campo do que está faltando poderia ser a data de nascimento. Posso vir aqui e dá para ver que cada um desses campos é basicamente apenas uma string. Agora tenho uma nova classe que também pode ser prevista. Vou executar novamente. Obviamente, a data de nascimento estava presente neste formulário. E dá para ver que, para este modelo, adicionar essa opção não fez diferença alguma. Para este modelo, fez.
13:04 Agora temos um pequeno detalhe: antes ele dizia que não faltava nada e agora diz que talvez a data de nascimento esteja faltando. Então, você precisa testar isso e descobrir: primeiro, quais são os melhores tipos de pergunta para o que você está fazendo? E também, qual modelo é o melhor para esses tipos de pergunta? Certo, se eu fornecer um novo formulário agora, este é um formulário em que a data de nascimento está realmente faltando. A assinatura está presente, como dá para ver. Então, vamos tentar executar este e ver o que obtemos. E dá para ver que eles executam bem rápido.
13:34 Agora dá para ver que estamos obtendo “assinatura manuscrita presente”. Os dois modelos concordam, e esse é o ponto principal. Se avançarmos até a data de nascimento, dá para ver que agora os dois dizem que ela está faltando. Este está menos seguro disso do que este aqui. E, de novo, quando perguntamos o que está faltando, este agora consegue ver claramente que a data de nascimento está faltando, enquanto este modelo simplesmente não parece ser muito bom nesse tipo de pergunta. Então, eu pensaria: será que devo reformular a pergunta para este modelo?
14:07 Será que devo considerar apenas os resultados deste modelo? Mas o ponto principal que quero mostrar é que você precisa estar ciente disso, certo? Não pense simplesmente: “Ah, sim, este é o melhor modelo, portanto vai funcionar muito bem para todas as minhas tarefas.” Isso é só um exemplo bem simples. Dá para ver de novo que podemos incluir um e-mail de acompanhamento, que usa lógica condicional. Aqui, basicamente, diz para preencher a data de nascimento. Ele identificou isso muito bem. E podemos configurar para que ele use uma pontuação de confiança para decidir
14:40 se o caso deve ser encaminhado para uma pessoa ou não. É algo que poderíamos configurar. Com um pouco mais de trabalho, poderíamos definir uma pontuação de confiança diferente para cada uma das perguntas que temos aqui. Podemos adicionar perguntas com bastante facilidade, certo? Você poderia criar algo em que fosse possível incluir uma pergunta de escolha, uma pergunta de pontuação ou uma pergunta de valor nulo. Espero que dê para ver que é bem fácil fazer isso com esses tipos de modelo, certo? Você não precisa treinar vários modelos nem fazer nada disso.
15:14 Dito isso, se houver interesse, talvez eu faça um vídeo sobre como fazer fine-tuning de alguns dos modelos da OpenJev, porque essa é a próxima etapa. Se você estiver começando a obter alguns dados e já tiver dados razoáveis, poderá usar alguns desses modelos, seja o de imagem ou um dos modelos de texto, e fazer fine-tuning com um pequeno adaptador LoRa para basicamente fazê-lo funcionar para o que você está tentando fazer. Enfim, espero que isso mostre basicamente como esses modelos de imagem da Jev podem ser realmente
15:47 poderosos para coisas como RPA, classificação de imagens muito rápida e processamento de grandes quantidades de imagens. Podemos fazer várias perguntas diferentes ao modelo e, basicamente, personalizar as perguntas e o modelo para nosso caso de uso específico. Enfim, deixe nos comentários se tiver alguma dúvida. Espero que isso mostre mais uma vez um exemplo do mundo real de como esse tipo de coisa pode ser usado, para que você tenha uma ideia do que realmente pode fazer com isso. E, como sempre, se achou o vídeo útil, clique em Curtir e inscreva-se, e
16:19 falo com você no próximo vídeo. Até mais.
Transcrição original
[00:00] Okay, if you draw any business process as a flowchart, you get two main shapes. The rectangles are the steps. They’re things like copy this, click that, file this. And the diamonds are the decisions. Does this look right? Is this an invoice? Is this a payment? For years, RPA tools have been automating the rectangles. That’s robotic process automation, software bots that click through screens and copy data between systems the way that a person would, usually following fixed rules.
[00:32] But the diamonds still often go to a person because a rule can’t look at a page and tell you whether it’s got a signature or not Now, people have had a lot of success at using deep learning to do this, but generally the challenge there has been that people have to use custom models for each particular company and for each particular business use case But it’s turning out that this is another place that a very specific kind of Jev model can really have a huge impact So what I’m gonna show you in this video is that I built an inspector
[01:02] that basically looks at forms, whether they’re PDFs or images, and then runs them through two small open models that make decisions straight from images. these are literally OpenJev models And both the models are really high up on the ImaJev benchmark. In fact, the one that’s at the top here was built by one person in 15 days for just $1,200 of rented GPUs So I know I’ve made quite a number of videos about the Jev decision model concepts. And I’ve made videos of showing you how you can use it for agents and how you
[01:35] can use it for text decision-making. In this video, I wanna focus purely on images and purely on the ImaJev decision models. Remember, this is something at the time that I’m recording this, that even the Jev model itself can’t handle images So in this case, we’ve really only got open models to try these things out all right, so what’s the problem that this is actually solving? If you’ve automated anything in business, you’ve hit some kind of version of this. You’ve got some kind of bot that can fill in a web form, can click and submit.
[02:08] but often you don’t know if it actually worked until someone checks the actual screenshot. You’ve also got examples of where a customer uploads a photo for a refund claim. Does that photo actually show what they’re claiming in it? Well, someone has to look at it If you’re looking at invoices or contracts or forms you’ve often actually gotta go and look at that to see was it actually signed And every one of these is one of those diamonds in that flowchart. It’s a yes or no call that a person or a deep learning model will actually
[02:39] make after looking at something. Now automating all of these kinds of things has been a huge industry. It’s got its own name, RPA, robotic process automation. if you look at some of the biggest companies in the space, you see ones like UiPath. And so I first came across UiPath in 2018. And at the time, what they were doing looked really impressive. They were certainly raising lots of money. And sure enough, by 2021, they had gone public with a valuation around $30, $40 billion.
[03:10] Since then, though, it’s kinda collapsed. If you look at their stock price has dropped from the high 70s right down to sort of 13, $14 a share now. that market cap nowadays is under six and a half billion dollars. So the biggest question here has gotta be what went actually wrong here? and the thing that I found from talking to people who actually worked with UiPath was that while the promise of full automation was really awesome, the models never actually worked often like they were promised And to be fair,
[03:41] I don’t think it was necessarily that UiPath was making a really bad product. It’s just that the type of deep learning that people were using for these kind of models really required a lot of fine-tuning for the specific use case. They just didn’t have, the general universal classifiers to be able to do a lot of these tasks, with a high level of accuracy so as I started to see people make these ImaJev models, I was really curious to see, is this something that could be applied to RPA?
[04:12] So for the demo here, I’ve basically picked forms because pretty much every office has piles of forms that they’re either scanning in Or they’ve got electronic versions of as PDFs, et cetera. and what I was curious to test out was could we make a demo where you drop a PDF of a form on there, or even do it in batch mode Could you drop a PDF of a form and then have it run very quickly to generate answers back about that form? so for things like did the person fill out their date of birth properly?
[04:45] Is the form actually signed? does it have an address for the person on it? Is it a tax form? Is it an invoice? all of these things are sort of stock standard RPA tasks, and they were all things that I was curious to see. can we take a model that hasn’t been fine-tuned for this specific use case and see how it actually handles this? all right, so this is ImageBench, a new benchmark for systems that make decisions from images. At the top there, you’ve got ImaJev 4B, And you can see that that one’s
[05:15] definitely scoring really well here. Below that we’ve got Jev Omni, below that we’ve got NeoHorse and a number of other models in here. So interestingly, the person behind ImaJev actually wrote a Reddit post all about not only how they made it, but why they made it. so they’re a process consultant who worked on refunds, returns, and customer support. And his point was that in those process maps, almost every decision node ended up being made by a human because just the ambiguity is really hard to deal
[05:46] with with code alone So I was curious to try out his model and some of the other models for my particular demo here. So I decided to actually make a demo with the first two top models here and see how it actually works out. Now, I know I’ve made a bunch of videos about Jev already, but those were mostly focused on text. the ImaJevs open up a whole set of new opportunities because a lot of the decisions in business aren’t sitting in text. They’re in screenshots, they’re in photos, they’re in scans, they’re in PDF files, and that’s what I really wanna dig into in this video So the whole
[06:19] idea of these models is that they’re basically the diamond that gets the evidence, a screenshot, a photo, a page It can really just go through and answer a lot of different yes/no questions based on that image as the context. so in a normal Jev model, we basically pass in text as the state, and then we pass in our typed questions. Here we’re passing in the image as part of that state, but we’re still also passing in our type questions just like before now it’s important that I point out here, we’re not doing any kind of OCR here, right?
[06:50] It’s not like I’m OCRing the form first and then passing that in. I’m just passing in a raw image to the model so the model itself is deciding what’s actually represented on that image. and then using it to basically answer questions like, is there a handwritten signature? Is a particular field empty? Is something filled out with a date there or not? And the cool thing here is that it gives us back a probability for every option. and ImaJev has also been trained to give you back the probability of unknown
[07:20] So the good thing about having that in there is It just helps the model so that hopefully the model is not guessing. It’s basically either sure that it’s something or it’s going to answer unknown Now, with the responses that we get back, we still got the whole sort of same smart if statement that we had with the text models. It’s just now the smart if statements are things that you can actually see. and one of the cool things about having those if statements is that you can actually set a confidence score that if it’s returning below
[07:50] that, then you can basically say, “Right, I don’t trust the model. I’m going to send it to either another model to either confirm the prediction or I’m going to actually send it to a human to look at . Okay, so if we jump into the demo here, this is basically the form decision inspector. So I’ll show you, just quickly what it can do. we can basically drag in a PDF, and just showing you what this is. This is basically a US tax form. And the text is pretty tiny in there, but you can see at least,
[08:21] that, okay, it’s got a name, it’s got a bunch of details in there. And in this case, you can see that the signature is actually missing in here. The date, the person signing it is there, the date of birth is there, but signature in this case is missing So now if we come over to the actual questions, you can see we’ve got a bunch of questions in here. We’ve got, things like, is the date next to the the signature filled in, right? The postal address is filled in, date of birth is filled in. And then we’ve got, fields for missing, we’ve got fields for what
[08:52] kind of form is this, in here. and then we’ve got some other things in there about things like, how legible is the handwriting, on this page? So I’m gonna run this. I can also change things like the DPI, so basically the resolution of the images, and what’s going into the actual model. I’m running two models here. I’m running the ImaJev 4B and the Jev Omni in here. Now I’m gonna show you, some of the issues you run into. So this goes through… It basically runs, and you can see, sure enough,
[09:23] we can see that, this model has done a pretty good job, right? It’s basically said, “Hey, is it signed? No, it’s false. It’s not signed,” in this case. Now, up here we can basically set how confident does the model have to be before we actually accept the result or send it back to a human, there. Because it was basically lower than the 90% that I had set there, it’s gonna say that it should go to a human, ’cause I had that set up there. more importantly, this one is wrong, So let me come back to that in a second.
[09:54] dated. They’re both in agreement. They’re both getting, it right there. Address, that’s looks right. we can see that this one, one said that the date of birth is there, one said that it’s not, in this case And we can see that this one, now when we ask, what is missing, the signature, is missing here, right? Yet up here, when we asked the signature is there true or false, it said that it was there. And this kind of highlights the problem that you are going to face with the different models at the moment, is that they tend to be better
[10:27] at different kinds of questions. So you can see here, this model, when we ask it, what’s missing, it’s saying that nothing is missing, right? So that’s a choice question. That’s a classification question. The actual sort of true or false question in this case, it gets it right? We can see that the response, that it got back is going to be like that, and we can see the image if we want to there. in this case, it gets it wrong. Now this is where you have to be careful about what model you use, and not necessarily that one model is great and one model sucks.
[11:00] They tend to be better at different things. So I’ll show you just quickly here with this exact same form. If we basically turn signature to be a choice, right? And I run it now You can see that this one is now saying, okay, that it’s typed name only. There’s no handwritten signature. And also this one now is basically saying typed name only, no signature. So it shows that especially in this model here, it’s probably better at the
[11:31] classifications than it is at the true or false in relation to this task, right? I’m not gonna say that it’s better for every single task at this, but in the relation to this kind of task, I need to be calibrating for that, early on And we can see that both of them got it right for a tax form. both of them said that it was, either clear or readable, in there. In some ways, probably clear and readable are almost the, the same kind of thing, going through this. the other thing we can do too is we can actually have a follow-up email.
[12:01] So this is not something that’s being sent to an LLM to write the email. This is literally just conditional logic. If the signature is not there, then we basically say, “Thanks for sending your…” and we fill in, tax form. “Before we can process it, could you please sign the form in the signature field?” so that’s not using a normal LLM in any way. But it’s important to understand that there’s no OCR going on here. This is literally just passing in an image, and then running it
[12:33] through, for this kind of thing. And the cool thing here is that all of these, we can basically test, different, questions in here. So If I want to edit something, is missing could be the date of birth, I can just come in here and you can see that Each of these is basically just a string field that goes in there. and now I’ve got a new class, that it can predict as well. I’ll run it again. Obviously the date of birth was here for this one And you can see for this model, it wasn’t phased by me adding that at all. For this model, it was.
[13:04] We’ve now got a little bit of things where it’s saying nothing missing to, okay, possibly the date of birth is missing So you do want to test these and work out, okay, one, what are the best kinds of questions for what you’re doing? And then also which model is the best one for those types of questions Okay, so if I give it a new form now, this is a form where the date of birth is actually missing. The signature is there, that you can see in there. So let’s try and run this one and see what we get And you see they’re running very quickly.
[13:34] So you can see now we’re getting handwritten signature is there. both of, the models concur that’s the key thing there. If we go through and we get to date of birth, we can see now both of them are saying that date of birth is missing. This one’s less sure about it than this one in here And then again here when we ask what’s missing, this one can clearly see now that the date of birth is missing, and this model just doesn’t seem to be doing great at this type of question. So I’d probably think about, okay, am I gonna rephrase this for this model?
[14:07] am I gonna only go for the results with this model here? But the key point that I want to show you here is that you need to be aware of this, right? Don’t just go and think, “Oh, yeah, this model is the best model, therefore it’s gonna work for all my tasks, really well in here.” So this is just a really simple sort of thing. You can see again, we can basically have it do a follow-up email, which is conditional logic. here it’s basically saying fill in your date of birth. It’s, worked that out really nicely And we can set this up to actually just use a sort of confidence score to decide
[14:40] if we throw it back to a human or not. And that’s something that we could set. Now, with a little bit more work, we could actually set that confidence score to be different for, each of the questions that we’ve got in here. we can add in questions, quite easily, right? You can build something where you could put in a choice question, you could put in a scoring question, you could put in, a noul question in there So hopefully you can see here that this is something that is pretty easy to do with these kinds of models, right? You’re not having to train up a lot of models or do anything like that.
[15:14] Now, that said, if people are interested, maybe I will make a video about actually fine-tuning some of the OpenJev models, ’cause that’s the next stage, that you take it to. If you’re starting to get, some data where you’ve actually got some decent data, you could actually take some of these models, whether it’s the image one or whether it’s one of the text ones, and actually fine-tune it with a little LoRa adapter in there to basically make it work for what it is that you’re trying to do. So anyway, hopefully that shows basically how these, Jev image models can be really
[15:47] powerful for things like, RPA, for things like, very quick image classification, and dealing with large amounts of images in here We can run a whole bunch of different questions through it, and basically customize the questions and the model for our specific use case in here. so anyway, let me know in the comments if you’ve got any questions, about this hopefully again, this shows you a real world example of how this kind of thing can be used so that you’ve got a sense of what you can actually do with this. And as always, if you found the video useful, click like and subscribe, and
[16:19] I will talk to you in the next video. Bye for now