YouTube2Text

Image Decision Models for RPA: Forms, Scans and Screenshots — Transcript

by Sam Witteveen · 3,169 words · 433 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Okay, if you draw any business process
  2. 0:02as a flowchart, you get two main shapes.
  3. 0:05The rectangles are the steps. They're
  4. 0:08things like copy this, click that, file
  5. 0:10this. And the diamonds are the
  6. 0:13decisions. Does this look right? Is this
  7. 0:15an invoice? Is this a payment? For
  8. 0:18years, RPA tools have been automating
  9. 0:20the rectangles. That's robotic process
  10. 0:22automation. Software bots that click
  11. 0:25through screens and copy data between
  12. 0:27systems the way that a person would.
  13. 0:29Usually following fixed rules. But the
  14. 0:32diamonds still often go to a person
  15. 0:35because a rule can't look at a page and
  16. 0:37tell you whether it's got a signature or
  17. 0:38not. Now, people have had a lot of
  18. 0:40success at using deep learning to do
  19. 0:42this, but generally the challenge there
  20. 0:44has been that people have to use custom
  21. 0:46models for each particular company and
  22. 0:49for each particular business use case.
  23. 0:52But it's turning out that this is
  24. 0:53another place that a very specific kind
  25. 0:56of Jev model can really have a huge
  26. 0:58impact. So, what I'm going to show in
  27. 1:00this video is that I built an inspector
  28. 1:02that basically looks at forms, whether
  29. 1:04they're PDFs or images, and then runs
  30. 1:07them through two small open models that
  31. 1:10make decisions straight from images.
  32. 1:13These are literally open Jev models. And
  33. 1:16both of the models are really high up on
  34. 1:18the image Jev benchmark. In fact, the
  35. 1:20one that's at the top here was built by
  36. 1:22one person in 15 days for just $1,200 of
  37. 1:27rented GPUs. So, I know I make quite a
  38. 1:29number of videos about the Jev decision
  39. 1:31model concepts, and I've made videos of
  40. 1:33showing you how you can use it for
  41. 1:34agents and how you can use it for text
  42. 1:37decision making. In this video, I want
  43. 1:39to focus purely on images and purely on
  44. 1:42the image Jev decision models. Remember,
  45. 1:45this is something at the time that I'm
  46. 1:47recording this that even the Jev model
  47. 1:49itself can't handle images. So, in this
  48. 1:52case, we've really only got open models
  49. 1:54to try these things out. All right, so
  50. 1:56what's the problem that this is actually
  51. 1:58solving? If you've automated anything in
  52. 2:00business, you've hit some kind of
  53. 2:02version of this. You've got some kind of
  54. 2:04bot that can fill in a web form, can
  55. 2:07click and submit, but often you don't
  56. 2:09know if it actually worked until someone
  57. 2:10checks the actual screenshot. You've
  58. 2:12also got examples of where a customer
  59. 2:14uploads a photo for a refund claim. Does
  60. 2:17that photo actually show what they're
  61. 2:19claiming in it? Well, someone has to
  62. 2:21look at it. If you're looking at
  63. 2:23invoices or contracts or forms, you've
  64. 2:27often actually got to go and look at
  65. 2:29that to see was it actually signed? And
  66. 2:31every one of these is one of those
  67. 2:33diamonds in that flowchart. It's a yes
  68. 2:35or no call that a person or a deep
  69. 2:38learning model will actually make after
  70. 2:40looking at something. Now, automating
  71. 2:42all of these kinds of things has been a
  72. 2:44huge industry. It's got its own name,
  73. 2:47RPA, robotic process automation. If you
  74. 2:51look at some of the biggest companies in
  75. 2:52the space, you see ones like UiPath.
  76. 2:55And so I first came across UiPath in
  77. 2:572018. And at the time what they were
  78. 3:00doing looked really impressive. They
  79. 3:02were certainly raising lots of money.
  80. 3:04And sure enough by 2021, they had gone
  81. 3:06public with a valuation around 30-40
  82. 3:09billion dollars. Since then though, it's
  83. 3:12kind of collapsed. If you look at their
  84. 3:14stock price has dropped from the high
  85. 3:1670s right down to sort of 13-14 dollars
  86. 3:19a share now. That market cap nowadays is
  87. 3:22under 6 and 1/2 billion dollars. So the
  88. 3:25biggest question here is going to be
  89. 3:26what went actually wrong here? And the
  90. 3:29thing that I found from talking to
  91. 3:30people who actually worked with UiPath
  92. 3:33was that while the promise of full
  93. 3:35automation was really awesome, the
  94. 3:37models never actually worked often like
  95. 3:39they were promised. And to be fair, I
  96. 3:41don't think it was necessarily that
  97. 3:42UiPath was making a really bad product.
  98. 3:45It's just that the type of deep learning
  99. 3:47that people were using for these kind of
  100. 3:49models really required a lot of
  101. 3:53for the specific use case. They just
  102. 3:55didn't have the general universal
  103. 3:58classifiers to be able to do a lot of
  104. 4:01these tasks with a high level of
  105. 4:03accuracy. So, as I started to see people
  106. 4:05make these Image Jev models, I was
  107. 4:07really curious to see, is this something
  108. 4:09that could be applied to RPA? So, for
  109. 4:12the demo here, I basically picked forms
  110. 4:14because pretty much every office has
  111. 4:16piles of forms that they're either
  112. 4:19scanning in or they've got electronic
  113. 4:21versions of as PDFs, etc. And what I was
  114. 4:24curious to test out was could we make a
  115. 4:26demo where you drop a PDF of a form on
  116. 4:30there, or even do it in batch mode?
  117. 4:32Could you drop a PDF of a form and then
  118. 4:35have it run very quickly to generate
  119. 4:38answers back about that form? So, for
  120. 4:42things like did the person fill out
  121. 4:43their date of birth properly? Is the
  122. 4:45form actually signed? Does it have an
  123. 4:48address for the person on it? Is it a
  124. 4:50tax form? Is it an invoice? All these
  125. 4:53things are sort of stock-standard RPA
  126. 4:55tasks, and they were all things that I
  127. 4:57was curious to see, can we take a model
  128. 4:59that hasn't been fine-tuned for this
  129. 5:01specific use case, and see how it
  130. 5:03actually handles this. All right, so
  131. 5:05this is Image Jev, a new benchmark for
  132. 5:08systems that make decisions from images.
  133. 5:11At the top there, we've got Image Jev
  134. 5:134B. As you see, that that one's
  135. 5:15definitely scoring really well here.
  136. 5:17Below that, we've got Jev Omni, below
  137. 5:20that, we've got Neo Horse and a number
  138. 5:22of other models in here. So,
  139. 5:24interestingly, the person behind Image
  140. 5:25Jev actually wrote a Reddit post all
  141. 5:28about not only how they made it, but why
  142. 5:30they made it. So, they're a process
  143. 5:32consultant who worked on refunds,
  144. 5:34returns, and customer support. And his
  145. 5:37point was that in those process maps,
  146. 5:39almost every decision node ended up
  147. 5:41being made by a human because just the
  148. 5:44ambiguity is really hard to deal with
  149. 5:46with code alone. So, I was curious to
  150. 5:48try out his model and some of the other
  151. 5:50models for my particular demo here. So,
  152. 5:52I decided to actually make a demo with
  153. 5:54the first two top models here and see
  154. 5:56how it actually works out. Now, I know
  155. 5:59I've made a bunch of videos about Jeff
  156. 6:01already, but those were mostly focused
  157. 6:03on text. The image Jeffs open up a whole
  158. 6:05set of new opportunities because a lot
  159. 6:07of the decisions in business aren't
  160. 6:09sitting in text. They're in screenshots.
  161. 6:12They're in photos. They're in scans.
  162. 6:14They're in PDF files. And that's what I
  163. 6:16really want to dig into in this video.
  164. 6:18So, the whole idea of these models is
  165. 6:20that they're basically the diamond that
  166. 6:22gets the evidence, a screenshot, a
  167. 6:25photo, a page. It can really just go
  168. 6:27through and answer a lot of different
  169. 6:29yes no questions based on that image as
  170. 6:32the context. So, in a normal Jeff model,
  171. 6:34we basically pass in text as the state
  172. 6:37and then we pass in our typed questions.
  173. 6:39Here, we're passing in the image as part
  174. 6:41of that state, but we're still also
  175. 6:42passing in our typed questions just like
  176. 6:44before. Now, it's important that I point
  177. 6:46out here, we're not doing any kind of
  178. 6:48OCR here, right? It's not like I'm
  179. 6:50OCRing the form first and then passing
  180. 6:53that in. I'm just passing in a raw image
  181. 6:55to the model. So, the model itself is
  182. 6:57deciding what's actually represented on
  183. 6:59that image and then using it to
  184. 7:01basically answer questions like is there
  185. 7:03a handwritten signature? Is a particular
  186. 7:06field empty? Is something filled out
  187. 7:08with a date there or not? And the cool
  188. 7:10thing here is that it gives us back a
  189. 7:12probability for every option. An image
  190. 7:15Jeff has also been trained to give you
  191. 7:17back the probability of unknown. So, the
  192. 7:20good thing about having that in there is
  193. 7:21it just helps the model so that
  194. 7:22hopefully the model is not guessing,
  195. 7:24it's basically either sure that it's
  196. 7:26something or it's going to answer
  197. 7:28unknown. Now, with the responses that we
  198. 7:31get back, we still got the whole sort of
  199. 7:33same smart if statement that we had with
  200. 7:36the text models. It's just now the smart
  201. 7:39if statements are things that you can
  202. 7:41actually see. And one of the cool things
  203. 7:43about having those if statements is that
  204. 7:46you can actually set a confidence score
  205. 7:49that if it's returning below that, then
  206. 7:51you can basically say right, I don't
  207. 7:53trust the model. I'm going to send it to
  208. 7:55either another model to either confirm
  209. 7:57the prediction or I'm going to actually
  210. 7:59send it to a human to look at. Okay, so
  211. 8:01if we jump into the demo here, this is
  212. 8:04basically the form decision inspector.
  213. 8:07So I'll show you just quickly what it
  214. 8:09can do. We can basically drag in a PDF
  215. 8:13and just showing you what this is. This
  216. 8:16is basically a US tax form and the text
  217. 8:18is pretty tiny in there, but you can see
  218. 8:20at least that okay, it's got a name,
  219. 8:22it's got a bunch of details in there.
  220. 8:24And in this case you can see that the
  221. 8:26signature is actually missing in here.
  222. 8:28The date that person signing it is
  223. 8:30there, the date of birth is there, but
  224. 8:33signature in this case is missing. So
  225. 8:35now if we come over to the actual
  226. 8:37questions, you can see we've got a bunch
  227. 8:39of questions in here. We've got things
  228. 8:42like is the date next to the the
  229. 8:43signature filled in, right? The postal
  230. 8:45address is filled in, date of birth is
  231. 8:48filled in. And then we've got fields for
  232. 8:50missing, we've got fields for what kind
  233. 8:52of form is this in here. And then we've
  234. 8:55got some other things in there about
  235. 8:57things like how legible is the
  236. 8:59handwriting on this page. So I'm going
  237. 9:02to run this. I can also change things
  238. 9:04like the DPI, so basically the
  239. 9:07resolution of the images and what's
  240. 9:09going into the actual model. I'm
  241. 9:10[snorts] running two models here. I'm
  242. 9:12running the Image of 4B and the Jev Omni
  243. 9:15in here. Now I'm going to show you some
  244. 9:17of the issues you run into. So this goes
  245. 9:20through, it basically runs
  246. 9:22and you can see sure enough we can see
  247. 9:24that this model has done a pretty good
  248. 9:27job, right? It's basically said hey, is
  249. 9:28it signed? No, it's false, it's not
  250. 9:31signed in this case. Now up here we can
  251. 9:33basically set how confident does the
  252. 9:36model have to be before we actually
  253. 9:38accept the result or or send it back to
  254. 9:40a human? Yeah. Because it was basically
  255. 9:43lower than the 90% that I had set there,
  256. 9:45it's going to say that it should go to a
  257. 9:47human cuz I had that set up there. More
  258. 9:50importantly, this one is wrong. So, let
  259. 9:52me come back to that in a second. Dated,
  260. 9:55they're both in agreement. They're both
  261. 9:57getting it right there. Address, that's
  262. 9:59looks right. We can see that this one
  263. 10:02one said that the date of birth is
  264. 10:03there, one said that it's not in this
  265. 10:05case. And we can see that this one now
  266. 10:08when we ask what is missing, the
  267. 10:10signature is missing here, right? Yet up
  268. 10:13here when we asked the signature is
  269. 10:15there true or false, it said that it was
  270. 10:18there.
  271. 10:18>> [snorts]
  272. 10:19>> And this kind of highlights the problem
  273. 10:22that you're going to face with the
  274. 10:24different models at the moment is that
  275. 10:26they tend to be better at different
  276. 10:28kinds of questions. So, you can see here
  277. 10:31this model when we ask it what's
  278. 10:33missing, it's saying that nothing is
  279. 10:36missing, right? So, that's a choice
  280. 10:38question. That's a classification
  281. 10:39question. The actual sort of true or
  282. 10:41false question in this case, it gets it
  283. 10:44right. We can see that the response that
  284. 10:46it got back is going to be like that and
  285. 10:48we can see the image if we want to
  286. 10:50there. In this case, it gets it wrong.
  287. 10:53Now, this is where you have to be
  288. 10:54careful about what model you use and not
  289. 10:56necessarily that one model is great and
  290. 10:59one model sucks. They tend to be better
  291. 11:01at different things. So, I'll show you
  292. 11:04just quickly here with this exact same
  293. 11:06form. If we basically turn signature to
  294. 11:10be a choice, right? And I run it now,
  295. 11:14you can see that this one is now saying,
  296. 11:16"Okay, that it's typed name only.
  297. 11:18There's no handwritten signature." And
  298. 11:20also this one now is basically saying
  299. 11:22typed name only, no signature. So, it
  300. 11:26shows that especially in this model
  301. 11:28here, it's probably better at the
  302. 11:31classifications than it is at the true
  303. 11:34or false in relation to this task,
  304. 11:36right? I'm not going to say that it's
  305. 11:37better for every single task at this,
  306. 11:40but in that relation to this kind of
  307. 11:42task, I need to be calibrating for that
  308. 11:44early on. And we can see that both of
  309. 11:46them got it right for a tax form. Both
  310. 11:49of them said that it was either clear or
  311. 11:51readable in there. In some ways probably
  312. 11:53clear and readable almost the the same
  313. 11:55kind of thing going through this. The
  314. 11:57other thing we can do, too, is we can
  315. 11:59actually have a follow-up email. So,
  316. 12:01this is not something is being sent to
  317. 12:04an LLM to write the email. This is
  318. 12:06literally just conditional logic. If the
  319. 12:10signature is not there, then we
  320. 12:13basically say, "Thanks for sending your"
  321. 12:15and we fill in tax form. Before we can
  322. 12:18process it, could you please sign the
  323. 12:20form in the signature field. So, that's
  324. 12:22not using a normal LLM in any way, but
  325. 12:25it's important to understand that
  326. 12:26there's no OCR going on here. This is
  327. 12:30literally just passing in an image and
  328. 12:32then running it through for this kind of
  329. 12:34thing. And the cool thing here is that
  330. 12:36all of these we can basically test
  331. 12:39different questions in here. So, if I
  332. 12:41want to edit something is missing could
  333. 12:43be the date of birth, I can just come in
  334. 12:46here and you can see that each of these
  335. 12:48is basically just a string field that
  336. 12:50goes in there. And now I've got a new
  337. 12:53class that it can predict as well. I'll
  338. 12:55run it again. Obviously, the date of
  339. 12:57birth was here for this one. And you can
  340. 12:59see for this model it wasn't phased by
  341. 13:01me adding that at all. For this model it
  342. 13:03was. We've now got a little bit of
  343. 13:05things where it's saying nothing missing
  344. 13:06to okay, possibly the date of birth is
  345. 13:08missing. So, you do want to test these
  346. 13:11and work out okay, one, what are the
  347. 13:12best kinds of questions for what you're
  348. 13:15doing? And then also, which model is the
  349. 13:18best one for those types of questions.
  350. 13:21Okay, so if I give it a new form now,
  351. 13:23this is a form where the date of birth
  352. 13:25is actually missing, the signature is
  353. 13:27there that you can see in there. So,
  354. 13:29let's try and run this one and see what
  355. 13:31we get. And you see, they're running
  356. 13:33very quickly. So, you can see now we're
  357. 13:35getting handwritten signature is there.
  358. 13:37Both of the models concur, that's the
  359. 13:40key thing there. If we go through and we
  360. 13:43get to date of birth, we can see now
  361. 13:45both of them are saying that date of
  362. 13:47birth is missing. This one's less sure
  363. 13:50about it than this one in here. And then
  364. 13:52again here when we ask what's missing,
  365. 13:54this one can clearly see now that the
  366. 13:56date of birth is missing. And this model
  367. 13:58just doesn't seem to be doing great at
  368. 14:01this type of question. So, I'd probably
  369. 14:03think about, okay, am I going to
  370. 14:05rephrase this for this model? Am I going
  371. 14:08to only go for the results with this
  372. 14:10model here? But the key point that I
  373. 14:11want to show you here is that you need
  374. 14:14to be aware of this, right? Don't just
  375. 14:16go and think, oh yeah, this model is the
  376. 14:18best model, therefore it's going to work
  377. 14:20for all my tasks really well in here.
  378. 14:22So, this is just a really simple sort of
  379. 14:24thing. You can see again, we can
  380. 14:26basically have it do a follow-up email,
  381. 14:29which is conditional logic. Here it's
  382. 14:31basically saying fill in your date of
  383. 14:32birth, it's worked that out really
  384. 14:34nicely. And we can set this up to
  385. 14:36actually just use a sort of confidence
  386. 14:39score to decide if we throw it back to a
  387. 14:42human or not. And that's something that
  388. 14:44we could set. Now, with a little bit
  389. 14:46more work, we could actually set that
  390. 14:48confidence score to be different for
  391. 14:51each of the questions that we've got in
  392. 14:52here. We can add in questions quite
  393. 14:55easily, right? You can build something
  394. 14:56where you could put in a choice
  395. 14:58question, you could put in a scoring
  396. 15:00question, you could put in a null
  397. 15:01question in there. So, hopefully you can
  398. 15:04see here that this is something that is
  399. 15:05pretty easy to do with these kinds of
  400. 15:09models, right? You're not having to
  401. 15:10train up a lot of models or do anything
  402. 15:13like that. Now, that said, if people are
  403. 15:16interested, maybe I will make a video
  404. 15:17about actually fine-tuning some of the
  405. 15:19Open Jaws models, cuz that's the next
  406. 15:21stage that you take it to. If you're
  407. 15:23starting to get some data where you've
  408. 15:25actually got some decent data, you could
  409. 15:28actually take some of these models,
  410. 15:30whether it's the image one or whether
  411. 15:32it's one of the text ones, and actually
  412. 15:34fine-tune it with a little Laura adapter
  413. 15:37in there to basically make it work for
  414. 15:39what it is that you're trying to do. So,
  415. 15:42anyway, hopefully that shows basically
  416. 15:44how these Jev image models can be really
  417. 15:47powerful for things like RPA, for things
  418. 15:51like very quick image classification,
  419. 15:54and dealing with large amounts of images
  420. 15:56in here. We can run a whole bunch of
  421. 15:58different questions through it, and
  422. 16:00basically customize the questions and
  423. 16:02the model for our specific use case in
  424. 16:04here. So, anyway, let me know in the
  425. 16:05comments if you've got any questions
  426. 16:07about this. Hopefully again, this shows
  427. 16:09you a real-world example of how this
  428. 16:11kind of thing can be used so that you've
  429. 16:13got a sense of what you can actually do
  430. 16:15with this. And as always, if you found
  431. 16:17the video useful, click like and
  432. 16:18subscribe, and I will talk to you in the
  433. 16:20next video. Bye for now.

About this transcript

This page contains the full transcript of Image Decision Models for RPA: Forms, Scans and Screenshots by Sam Witteveen, generated from the public captions YouTube serves with the video. The transcript has 3,169 words across 433 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.