Jev - The Ultimate Classification Model? — Transcript
Full transcript
- 0:00Okay, so if you pretty much look at what
- 0:02every Frontier lab has been doing over
- 0:04the past 2 years, it's all been in one
- 0:07direction. They've all been focused on
- 0:10reasoning, and to get that reasoning,
- 0:13mostly they've been focused on longer
- 0:14chains of thought and thinking budgets.
- 0:16And while those models are great,
- 0:18they'll have you sit there for multiple
- 0:20minutes before they even give you an
- 0:21answer back. And of course, if you
- 0:23wanted to see that chain of thought, the
- 0:25Frontier labs are not going to let you
- 0:26see it even though you're paying for it.
- 0:28So if you read Daniel Kahneman's book,
- 0:30Thinking Fast and Slow, you know that
- 0:33all this kind of reasoning stuff is
- 0:35system two thinking. It's slow,
- 0:37deliberate, effortful, whereas system
- 0:40one on the other hand is fast,
- 0:41intuitive, sort of like a gut call that
- 0:44you make really quickly without any
- 0:46deliberation. And here's where the
- 0:47subject of today's video, I think, is
- 0:49really interesting. Most decisions that
- 0:51actually sit inside of software aren't
- 0:53system two problems. They're often just
- 0:55really simple classification problems.
- 0:57What kind of support ticket is this? Is
- 1:00this message urgent? Did an agent's
- 1:02output actually break a rule?
- 1:04You shouldn't even need 30 seconds for
- 1:07that kind of thinking, let alone the
- 1:09sort of minutes that some of the models
- 1:11end up taking. And while it's great that
- 1:13you can ask one of these reasoning
- 1:14models for a one-word answer, and then
- 1:17wrap it in JSON, you're paying a huge
- 1:19latency cost for generating all that
- 1:22text before you get your one-word label
- 1:24back. And so this week, a new lab that's
- 1:26just come out of stealth has gone the
- 1:28complete opposite way of the reasoning
- 1:30models. They've put the model that you
- 1:32can't chat with at all, let alone have
- 1:35it reason and deliberate over things for
- 1:36a long time. It just doesn't generate
- 1:39text in the standard auto regressive
- 1:40way. And the funny thing actually
- 1:42enforcing that is that the output tokens
- 1:45of this model are actually free. But
- 1:47actually working out why those tokens
- 1:49are free might be the thing that
- 1:51actually tells us a lot about how this
- 1:53thing is built. All right, so the
- 1:54company is called Type-Safe AI, and the
- 1:56model is called Jev. So, the founder is
- 1:59Diogo Almeida and actually he was at
- 2:01OpenAI for quite a while before and
- 2:03funny enough was one of the top authors
- 2:05on the InstructGPT paper. That was the
- 2:08paper that actually led to the whole
- 2:09sort of instruction tuning of models,
- 2:11which has just progressed onwards from
- 2:14that to the reasoning models that we see
- 2:16today. So, if you don't know that paper,
- 2:18basically took a raw language model,
- 2:20basically like what we would call a base
- 2:22model now, and actually made it follow
- 2:24instructions. And out of all that
- 2:27research came ChatGPT. So, this is
- 2:29someone who clearly helped make models
- 2:31good at talking to people. And the
- 2:33question that he says that's been
- 2:35bugging him for the last four years is
- 2:37that as models have become superhuman at
- 2:39chat, where's all the automation here?
- 2:41And interestingly, he's saying that chat
- 2:44is the wrong interface for software.
- 2:46Software doesn't want a paragraph, it
- 2:48wants a value that it can basically use
- 2:50straight away. Now, Diogo and the rest
- 2:52of the team at TypeSafe AI have spent
- 2:54the last two years in stealth working on
- 2:57this model called Jev. All right, so
- 2:59what is Jev? So, they specifically refer
- 3:02to this as a system one model and
- 3:04probably the easiest way of looking at
- 3:06this is it's kind of like a function
- 3:08call. You pass in two things. The first
- 3:11is what they call the state, which is
- 3:13just your unstructured text or data and
- 3:15that could be anything that you want
- 3:16classified, could be a support ticket,
- 3:19could be an agent trace, it could be a
- 3:21log file, etc. And then the second thing
- 3:23that you pass in is a set of typed
- 3:25questions. And there are only three
- 3:27kinds of questions that you can ask
- 3:29here. There's choice, where you give it
- 3:31a list of options and it picks one.
- 3:34There's score, where it rates something
- 3:36on a scale that you defined. And then
- 3:38there's one called null, which is a yes
- 3:40or no question, where it basically comes
- 3:42back with a probability that the answer
- 3:45is yes. So, if you look at what comes
- 3:47back here, there's no text to parse. For
- 3:49the the question, you get the option it
- 3:51picked, and also a probability of every
- 3:54other option. And I think this is really
- 3:56kind of interesting because this is one
- 3:57of the things that a lot of us have kind
- 3:59of been trained to fake with JSON, where
- 4:02we ask models to do stuff and return
- 4:04JSON output. But in many ways, the
- 4:06number that you're getting back there is
- 4:08just generated text. And if you look at
- 4:10things as LLM as a judge, you'll often
- 4:13see that that text skews in a very
- 4:15certain way. I.e., it's just a model
- 4:18writing the character 0.9,
- 4:21rather than actually a real
- 4:22representation of probability. The way
- 4:24they want you to use this model is to
- 4:26think about it as being a smart if
- 4:28statement. You don't ask one big fuzzy
- 4:31question like rate this startup pitch.
- 4:33You ask small gut questions in there.
- 4:36What's the feasibility of this? What
- 4:38type of market are they going after? And
- 4:40of course, if you're asking a choice
- 4:42question, you have to actually give it
- 4:43the options to choose from. Then the
- 4:46cool thing is that you can actually
- 4:47combine all of those in normal code. So,
- 4:50when something changes, you can just
- 4:52change a number in your code. You don't
- 4:53need to go and tweak any prompts or
- 4:55anything. All right. So, what I've done
- 4:57is basically just code up a little demo
- 5:00app to try this out. I'm using the model
- 5:03on OpenRouter. So, this is a crazy sort
- 5:06of price model, right? You're looking at
- 5:074.2 cents per million tokens in and 0
- 5:12cents per million tokens out. And you
- 5:14can see if we come in here, they've got
- 5:16some code to actually how to call it on
- 5:19using the Open AI API endpoints. And so,
- 5:22we've been playing around for a couple
- 5:23of hours with different kinds of demos
- 5:25and trying out different things. So, the
- 5:27first key thing here is that there are
- 5:29three kinds of things that you can do,
- 5:31right? One of them is a choice. So, you
- 5:33can see here, I've got some text that
- 5:35I'm going to pass in, and then it's got
- 5:37a choice of five different classes out
- 5:40here. And it's very good at being able
- 5:43to detect which of these is the right
- 5:45one. And so, what it will do, if we look
- 5:47at the raw output here, is that it
- 5:50basically has a type choice. In this
- 5:52case, the choice was French, and then it
- 5:54gives us the probabilities for each of
- 5:57these and a confidence score. And you
- 5:59can see that it did that pretty quickly.
- 6:00So, I'm probably on the opposite side of
- 6:02the world to where the model is actually
- 6:04being hosted, but you'll see that it's
- 6:07very quick at being able to respond.
- 6:09Even for things like this, where I
- 6:12wanted to try it on Thai, but using the
- 6:14Thai characters, it's going to give it
- 6:16away straight away that it's the Thai
- 6:17language. So, I asked it to basically
- 6:19make like a romanized version of that.
- 6:22And you could see that even that has no
- 6:24problems being able to get that right.
- 6:27The second thing that you can do with
- 6:29this is you can get it to give a score.
- 6:32So, here you can see that we're giving a
- 6:34score between zero and two. We're sort
- 6:37of doing sentiment here. We're doing a
- 6:38classification task again. We've got
- 6:40sentiment coming out, and if we go for
- 6:43positive sentiment, you'll see it comes
- 6:45out two of two. If we go for negative,
- 6:48zero. If we go for mixed, it's pretty
- 6:51good at being able to do that. And you
- 6:53can see each time this is costing me
- 6:550.001
- 6:59for of a cent, right, in here. If you
- 7:02can break down what you're trying to do
- 7:05to lots of different classifications,
- 7:08you really can extremely cheaply do a
- 7:11lot of stuff with this. And you can see
- 7:13in this case where I tried to make it a
- 7:14little bit more positive than in the
- 7:16middle, I it does change coming back
- 7:20each time. So, it still is a stochastic
- 7:22process going on here, and we can see
- 7:24the confidence is less than before. Each
- 7:27time I ping it, I'm getting something
- 7:28slightly different, but pretty close to
- 7:31the same sort of ballpark scores there.
- 7:34When we look at the API for that, you
- 7:35can see that, okay, the probability that
- 7:37it's coming back. So, you can see in
- 7:39this case we've passed in a score. We've
- 7:41got that back coming out of there. So,
- 7:43scoring is a really nice function in
- 7:45there. And then lastly, we've got the
- 7:46true or false or the yes no kind of
- 7:49probabilities here. So, this is a null
- 7:52and it's basically going to give back a
- 7:53probability for what we put in. Now, if
- 7:57I ask it something simple like that, it
- 7:59comes back 87% yes.
- 8:01Is this text asking a question? Okay,
- 8:03the answer would be no here. So, you can
- 8:05see that it's 2% yes. So, basically it's
- 8:08no, right? You could kind of think of
- 8:10this as being flattened out by a sigmoid
- 8:12function. So, you've got zero to one
- 8:14coming out of this. And even if we do
- 8:16things like where okay, we've got a
- 8:17question, but we've got no question
- 8:19mark, it's very confident that that is
- 8:22still a question without a question
- 8:23mark. So, it's not like it's just
- 8:25looking for a question mark there. And
- 8:27you can see different kinds of questions
- 8:29will get different responses. So,
- 8:31interestingly, if I just ask it, "Can
- 8:33you help?" it's a lot less sure if it
- 8:35can cuz I haven't been specific. But if
- 8:38I ask it, "Can you help find my cat?"
- 8:41well, then it's 95% sure that it can do
- 8:44it. And if I just change one word in
- 8:45there to "Can you help me feed my cat?"
- 8:48it goes back down a bit. So, it is
- 8:51interesting how it actually does this.
- 8:53You will see that like again, this is
- 8:55still a stochastic process. It comes
- 8:57back slightly different each time, but
- 8:59it is pretty consistent of you either
- 9:02being able to say one thing or the other
- 9:04thing. And you can see if I just give it
- 9:06two words, then it starts losing its
- 9:08confidence about this. So, it does seem
- 9:11to me the longer that the input that you
- 9:13put in, the more confident it gets with
- 9:16its responses out. All right. Now,
- 9:18looking at some sort of more practical
- 9:20kinds of things that we could do here,
- 9:22you can see that we could put in like a
- 9:24message of I was charged twice for an
- 9:26order. Please refund the duplicate. Get
- 9:28it to work out which team it's going to
- 9:30route it to. Here, it's billing, kind of
- 9:33obvious. Sales one, it gets 100% sales.
- 9:36What if we do something a little bit
- 9:38more ambiguous? You can see now it's not
- 9:40very confident. It's actually coming
- 9:42back that it's unclear as as the class,
- 9:44but it's still thinking that this is
- 9:46more of a technical kind of thing. And
- 9:48you can see that each time we run that,
- 9:50we do get a slightly different response,
- 9:52you know, going through this. Now, on
- 9:53top of these, we're actually doing
- 9:55multiple things at the same time. So,
- 9:57you can see that we've also got a null
- 9:59in here for was a refund requested.
- 10:02Obviously, if I select this, the answer
- 10:04is yes. Is it sort of time sensitive,
- 10:07right? In this case, it's saying time
- 10:09sensitive 7%. If I change that to please
- 10:12refund the duplicate charge right now
- 10:15instead of just right now, you can see
- 10:17the time sensitive is jumping up to sort
- 10:19of like 60 70% in this case. We can even
- 10:22try it with things like injecting stuff
- 10:25in there. So, doing any sort of thing
- 10:27where someone's trying to do a prompt
- 10:29injection or something like that, this
- 10:31seems to do pretty well at being able to
- 10:34get that kind of things. Sarcasm is also
- 10:37something that it seems to be doing an
- 10:39okay job at it. It would be interesting
- 10:40also to test it on humor and other kind
- 10:43of things, but it is good that it's not
- 10:45being tricked by a lot of different
- 10:47things that normally would trick this
- 10:49kind of thing. Other tasks that you can
- 10:51get it to do is things like code
- 10:53reviews, like where you can basically
- 10:55ask it is something safe, is something
- 10:57not safe. It seems to do a good job at
- 10:59that. Doing things like classification
- 11:02on different types of content, that
- 11:04seems to work really well. You can see
- 11:06here it's able to discover PII
- 11:08information, personal identifiable
- 11:10information here. Does a good job at
- 11:12that kind of thing. Does a good job at
- 11:14sort of spam detection as well. So, the
- 11:16fourth example here is looking at agent
- 11:19tool selection. So, this is a little bit
- 11:21like the cactus model that we looked at
- 11:24a while ago in that it's doing some kind
- 11:26of sort of function calling, but it's
- 11:28important to understand here that it's
- 11:30not actually extracting anything out and
- 11:33passing it to the tool, right? It's just
- 11:35telling us which tool to use as opposed
- 11:39to getting the right arguments out to
- 11:41pass to the tool. So, in that sense,
- 11:44function calling models are still able
- 11:46to basically generate out what should be
- 11:48the input going to the function. Last
- 11:50up, one of the things that I thought was
- 11:51really interesting to test it is
- 11:53stringing actions together, right? So,
- 11:56where we basically give it something and
- 11:59we then want to basically run a number
- 12:02of different tasks over this to see how
- 12:05long does it take, how does it actually
- 12:07process these.
- 12:09So, here's 20 different tasks going
- 12:11through, and you can see that it's
- 12:13flying along. Now, I could have done
- 12:14them in parallel for some of them at
- 12:17least, but you can see they're just
- 12:18going through it like that, we've gone
- 12:20through all different 20 tasks in here,
- 12:24gotten the answers out, gotten the
- 12:26results back for these, and it's cost
- 12:28just over 1/20th of 1 cent. I really
- 12:32feel like this is where you're going to
- 12:33find really interesting things, right?
- 12:35When you can string lots of different
- 12:38classifications together to be able to
- 12:41get some kind of response out that's
- 12:44really valuable for you in a really
- 12:45quick time. Okay, so how does this all
- 12:48actually work? Well, they don't really
- 12:50tell us a lot here. There's no paper,
- 12:53there's no architecture diagram. They
- 12:55don't give us a lot of information, but
- 12:56what they do give us is three pieces
- 12:58that they mentioned that there's a new
- 13:00model architecture, a parallel sampler,
- 13:03and then perhaps the most interesting
- 13:05bit is that they're training with a new
- 13:06method they're calling RLCD. This is
- 13:09reinforcement learning for calibrated
- 13:11decisions. Now, how RLCD actually works,
- 13:15they don't really tell us, but they
- 13:16compare that to the existing LLMs using
- 13:20both RLHF, so that's reinforcement
- 13:22learning from human feedback, and also
- 13:24reinforcement learning from verifiable
- 13:26rewards, which is a whole sort of GRPO
- 13:29and a lot of the ways that the modern
- 13:30models are being trained at the moment.
- 13:32So, it does seem probable to me that
- 13:34this is some kind of transformer, but
- 13:36perhaps what it's actually doing is just
- 13:38using the pre-fill stage to calculate
- 13:41heads, etc. And then doing a prediction
- 13:43out, which is just a classification or a
- 13:45regression depending on the different
- 13:47tasks that you've got there. One of the
- 13:48cool things here is definitely the speed
- 13:51because there are no tokens being
- 13:52generated one after another. Everything
- 13:55comes back in a single pass. And that
- 13:57means you're done in about 70 to 500
- 14:00milliseconds, which you can add to the
- 14:02basically round trip time and it's still
- 14:04extremely fast for doing these kinds of
- 14:07tasks.
- 14:08Now, one of the things I find
- 14:09fascinating is that they claim it can't
- 14:11hallucinate. And it seems what they're
- 14:13really saying there is that this is not
- 14:15going to break the schema that you give
- 14:17it to basically come back with things.
- 14:19So, like no broken JSON, no invented
- 14:21tool names. It can only deal with what
- 14:24you've actually given it. It's not going
- 14:25to actually generate sort of anything
- 14:26new there.
- 14:28Now, it does seem that it can still pick
- 14:29the wrong option and like a wrong
- 14:31answer, meaning that it could have the
- 14:33right type of question, but actually
- 14:36give you a wrong answer for that. And it
- 14:38seems that this is where they're relying
- 14:39on that RLCD to be able to deliver
- 14:42high-quality answers back. Now, we don't
- 14:45know if this is just like a smaller LLM
- 14:47that's been trained in a different way
- 14:49or if this is actually a different
- 14:51architecture, etc. It is kind of amazing
- 14:53though that it can do things like play
- 14:56Doom where it can do it so quickly that
- 15:00you can basically have it responding to
- 15:03these inputs. And the thing that I find
- 15:04fascinating here is that doing that and
- 15:06running sort of 10 queries per second,
- 15:08even at that rate, ends up only costing
- 15:11about $7 per hour. So, overall, I would
- 15:14say if you're doing any kind of
- 15:15classification with any kind of BERT
- 15:18model or things like that, this is
- 15:21definitely worth trying out to see how
- 15:24it goes for your particular use cases.
- 15:26And I do wonder if this really delivers
- 15:28like they say it does, is this going to
- 15:31be the end of sort of fine-tuning small
- 15:34bird models for doing purely
- 15:36classification tasks? Anyway, they make
- 15:38the point here that this is early days,
- 15:40that they're really focused on any sort
- 15:42of decision that you need to be able to
- 15:43automate. And my guess is that they've
- 15:45probably kicked off a whole bunch of
- 15:47people trying to make open-source
- 15:49versions of this. So, over the next
- 15:51month or so, we might see some really
- 15:53interesting open-source models that come
- 15:55along with similar ideas to this.
- 15:58Anyway, let me know in the comments if
- 15:59you've actually tried Jev, where you
- 16:01could see yourself actually using it.
- 16:03And I'd love to hear from people who've
- 16:05actually tested it and found that it
- 16:07didn't work for certain things. What
- 16:09were those use cases that it didn't work
- 16:11for? And as always, if you found the
- 16:12video useful, please click like and
- 16:14subscribe, and I will talk to you in the
- 16:15next video. Bye for now.
About this transcript
This page contains the full transcript of Jev - The Ultimate Classification Model? by Sam Witteveen, generated from the public captions YouTube serves with the video. The transcript has 3,212 words across 446 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.