Qwen 3.8 Flash Next vs Flash Next Coder — Transcript
Full transcript
- 0:00Okay, by popular request and also
- 0:02because I'm curious myself, let's take
- 0:03another look at Strata. But this time,
- 0:04let's put Quen 3.8 Flash Next, the model
- 0:07we looked at last time, uh, up against
- 0:09Quen 3.8 Flash Next Coder. This is a
- 0:11version of the model that allegedly is
- 0:13specifically geared towards coding
- 0:14tasks, which sounds like it's right up
- 0:16my alley. Let's put these two models
- 0:17headto head and see which one comes out
- 0:19on top. No place [music] like local
- 0:22host.
- 0:24No place like local host.
- 0:27>> Okay, just a quick catch up. Since the
- 0:29review video last week, I've been using
- 0:30Quinn 3.8 Flash Next with Strata almost
- 0:32exclusively. It has quickly become my
- 0:34go-to model. Uh, and I like it even
- 0:36better than Quinn 3.8 27B dense, which
- 0:38is saying a lot because I loved that
- 0:40model. Uh, Flash Next is faster on my
- 0:42hardware with Strata and it's even
- 0:44faster now. I've tweaked it uh since
- 0:46that last episode. In the last in the
- 0:48review episode, I was getting about 45
- 0:49tokens per second out of uh Flash Next
- 0:52on my hardware with 36 gigs of VRAM and
- 0:55128 gigs of DDR4 behind that. And a lot
- 0:58of people in the comments were saying,
- 0:59"You should be getting a lot a lot more
- 1:00than that." Yeah, I I know I should.
- 1:02Just a quick recap of my hardware. I've
- 1:03got a dual GPU server sitting in the
- 1:05corner there. It's called Saturn. I've
- 1:06got an RTX 470 with 12 gigs of VRAM and
- 1:09an RTX Pro 4000, small form factor with
- 1:12uh 24 gigs of VRAM. Great. 36 gig VRAM
- 1:15pool sounds great. Here's the problem.
- 1:17The motherboard on that system is kind
- 1:19of old. And the secondary slot, the slot
- 1:21that the Pro 4000 is plugged into, is a
- 1:22PCIe Gen 4 X4 slot. Ouch. That really
- 1:26hurts uh bandwidth. Uh max transfer
- 1:28going in and out of that slot is 8 GB
- 1:30per second. Compared to the other slot,
- 1:32PCIe Gen 5 X8 32 gigs per second. So,
- 1:36when the two cards have to talk to each
- 1:37other, they can only do so at the speed
- 1:39of the slowest slot. And that really,
- 1:40really slows me down. Uh, so 45 tokens
- 1:43per second actually didn't seem that bad
- 1:45to me. By comparison, when I run the
- 1:47dense model, a 30 27B dense, I get 35
- 1:50tokens per second on that same hardware
- 1:51with the with a GPU split. Uh, so 45
- 1:54tokens per second felt like a step up,
- 1:56and it was, but we can do even better
- 1:58than that. Uh, since then, I've tweaked
- 2:00the settings a little bit. I've also
- 2:01updated to the latest version. And when
- 2:03I run, this is the same model we looked
- 2:04at last time, Quinn 3.8 Flash Next, but
- 2:06with an updated version of Strata and
- 2:08with slightly different settings. We'll
- 2:09talk about that in a bit. If I use my
- 2:11favorite testing question, what does the
- 2:13transient keyword do in Java? I get now
- 2:1660 plus. I've seen a spike as high as
- 2:18100. Uh it seems to be around Yeah,
- 2:21there it goes. Look at that. 70. It's
- 2:23it's it's more variable now than it was
- 2:25before. But uh if we look at the
- 2:26console, I I consistently get 60 plus
- 2:28tokens per second. So that's like about
- 2:30a 50% improvement over what we saw last
- 2:32time almost. With the occasional spike
- 2:34up to 100 tokens per second, which is
- 2:36great. All I did other than upgrading uh
- 2:38strata itself. I uh tweaked the settings
- 2:40a little bit, there's options around do
- 2:42you want to keep the KV cache in VRAMm
- 2:44and push some experts out into system
- 2:46memory or the other way around. Do you
- 2:48want to put your KV cache in system
- 2:49memory and uh leave more VRAM free for
- 2:52uh for experts to reside? Uh you can
- 2:54also uh enable or disable image uh
- 2:56processing which uh either reserves a
- 2:59gig or two of VRAM for the mm prod or it
- 3:03evicts that and says no no no no we're
- 3:04going to use that VRAM for uh for for
- 3:06storing experts. What I found through my
- 3:08tweaking and there's a bunch of
- 3:09different settings you can you can
- 3:10change with this. What I found is that
- 3:12the more experts you can squeeze into
- 3:14the VRAMm the faster this thing's going
- 3:15to go. So I've got it tweaked now. Uh
- 3:18okay so we've tweaked our speed. We've
- 3:20got the model running really well. I'm
- 3:22really really happy with it. Uh if you
- 3:23watched the previous episode from last
- 3:25Thursday, whatever that was, we did a
- 3:26long running code session uh with uh
- 3:28Quen 3.8 next running through strata.
- 3:30Zero problems, zero. But there's another
- 3:34option available and that is uh Quen 3.8
- 3:37flash next coder. Let's take a quick
- 3:39look at that. So we're going to go back
- 3:42to our Austrian friends lab. They have
- 3:44put together this uh flash next GSQ blah
- 3:47blah blah coder. Okay,
- 3:51this is a 512 expert mixture of experts
- 3:54model with half of its experts removed.
- 3:57Right off the bat, that strikes me as a
- 4:00bad idea, but let's let's keep an open
- 4:01mind here. So, uh what they did was, and
- 4:04this is a little confusing with the way
- 4:05they presented the numbers, they they
- 4:06say it's uh effectively 1.89 bits per
- 4:09parameter of the original transformer.
- 4:11That's that's a bit of a lie. Let's
- 4:12let's scroll down a bit. Uh what they
- 4:16did was they they took half the experts,
- 4:18the ones that they figured out somehow
- 4:20have nothing to do with coding tasks and
- 4:22they just said, "Well, we don't need
- 4:23them." And they got rid of them. They
- 4:24stripped them out. The remaining weights
- 4:27are stored at 3.5 bits per weight. If we
- 4:29scroll down a little bit further, we see
- 4:30that no individual weight is actually
- 4:32stored at 1.89 bits per second. Bits per
- 4:35what am I saying? No individual weight
- 4:37is stored at 1.89 bits per weight. Uh
- 4:40what where they came up with that
- 4:41number, it corresponds. So after you
- 4:44remove half the experts and compress it,
- 4:46the model's compressed at IQ3. I believe
- 4:48the remaining weights are stored at 3.5
- 4:50bits per weight. So it's the same IQ3S
- 4:53quantization. I think they call it 1.89
- 4:56bits per weight because if you compare
- 4:58it to the size of the original model,
- 5:01they're saying that effectively it's the
- 5:03same size you'd get if you took the
- 5:05original model and compressed it down to
- 5:061.89 bits per weight. But they didn't do
- 5:08that. They com they they they removed
- 5:10half the experts, compressed the
- 5:12remaining ones at IQ3, and the model
- 5:14size is the same as what you'd get at
- 5:16IQ1, but it isn't IQ1. So I my head is
- 5:19kind of spinning a little bit. If we go
- 5:20to their files uh tab here and look at
- 5:23the they call it IQ1.
- 5:26It's not. It's IQ3. The the weights are
- 5:29compressed at IQ3, but they call it IQ1
- 5:31because that's the effective size of it.
- 5:33If you look at add up the two halves of
- 5:34this file, it's 60 gigs. I believe the
- 5:38one we downloaded last week was 80 gigs
- 5:40or 84 somewhere in that neighborhood.
- 5:42So, it's it's noticeably smaller. It's
- 5:44not because they quantized it more. It's
- 5:45because they removed half the experts.
- 5:47Okay, a bold strategy. What they're
- 5:49saying is true. They haven't lost
- 5:51anything of value if your use case is
- 5:54coding tasks. Uh they do mention here.
- 5:58Yeah. So, they there's a disclaimer
- 5:59here. Removing half a model's experts
- 6:01necessarily reduces its capabilities.
- 6:02Well, yeah, no kidding. The contribution
- 6:04of this release is that the reduction is
- 6:05directed towards code, agentic tool use,
- 6:08vision, and spatial reasoning. And the
- 6:10retained experts are therefore those
- 6:11that support those domains. Great.
- 6:13Degradation outside this set is an
- 6:15accepted cost of this method. What
- 6:16they're saying is this model is much
- 6:18worse at other tasks that are not coding
- 6:21tasks. If you just want to do coding
- 6:23tasks, allegedly, this is the way to go
- 6:25cuz it's smaller. And if we go to uh
- 6:27Strata's page, uh we'll see this is the
- 6:30the bargain basement entry- level uh
- 6:31model that they support. You only need
- 6:3332 gigs of system memory to run this.
- 6:35Uh, but I noticed that there's a
- 6:36disclaimer here as well. They
- 6:38specifically say this model is weaker
- 6:40outside code and it's not good at
- 6:42languages. And they they kind of steer
- 6:44you towards, you know, like maybe you
- 6:46should be looking at Q2 or IQ3S. Uh, if
- 6:48you're if you want to if you want a
- 6:50well-rounded general purpose model,
- 6:51don't use this one. Uh, fine. But let's
- 6:53try it. Let's try it out because my use
- 6:56case is overwhelmingly code related. Uh
- 6:57almost everything I do with local LLMs
- 6:59is either generating code or reviewing
- 7:01code or both. So uh this seems like an
- 7:05acceptable sacrifice at least on paper.
- 7:07Let's see if it holds up in practice.
- 7:08Okay. Okay. So we can rerun the Strata
- 7:10setup script uh and it can it gives you
- 7:13the option to download an additional
- 7:14model on top of the ones you already
- 7:15have. It's very easy to set up. Very
- 7:17very easy. And it'll generate a startup
- 7:18script. So I did go through the uh
- 7:20calibration uh process with this new
- 7:22model the same as I did last time. And
- 7:24it did tell me that the default settings
- 7:25are optimal for your hardware. So great.
- 7:28And I'm going to run it on both GPUs.
- 7:30Now, you may remember last week it
- 7:32copied when we started up uh Quen 3.8
- 7:34Flash Next, it copied 50 gigs of stuff,
- 7:3650 plus gigs of stuff into system memory
- 7:38and then maxed out memory usage on both
- 7:40cards. So, let's take a look at HTOP on
- 7:42Saturn. We're using 33.5. Some of that
- 7:45is OS level stuff. So, I think it copied
- 7:4730 gigs of stuff into system memory. And
- 7:49if we slide up to envy top, uh, we're
- 7:5111.7 out of 12 on card zero and 22 and
- 7:54a2 out of 24 on card one. So, okay, we
- 7:57again, we're maxed out. So, I should be
- 7:59able to go back to the, uh, web UI. And,
- 8:02uh, what does the transient keyword do
- 8:04in Java?
- 8:06Server not reachable. What? My god. You
- 8:09know what it is? I know exactly what
- 8:11that is. I tested it earlier on Saturn.
- 8:13I didn't test it from my laptop. You
- 8:15know what it is? It's the same problem I
- 8:17ran into last time. It's the exact same
- 8:18problem. Uh, by default, it binds to
- 8:22that's the second time that's bit me.
- 8:23Okay. Well, that's on me. I apologize.
- 8:26All right, let's start that back up. It
- 8:27binds to local host, so you can only
- 8:29access it from the machine on which it's
- 8:30running. You have to tell it to bind to
- 8:320000 so I can actually hit it from my
- 8:34laptop. That's a me problem, not a
- 8:36strata problem. Okay, refresh. Okay,
- 8:38great. We're back. So, what does the
- 8:40transient keyword do in Java?
- 8:43And
- 8:4560 plus tokens per second. 70 plus 80
- 8:47plus we got but so it's variable. It's
- 8:50interesting that it it varies quite a
- 8:51bit. Uh 60 to 88. So I'd say it's at
- 8:55least as good at least as fast as Quin 3
- 8:57flash next if not a little bit faster. A
- 8:59longunning task is probably a better
- 9:01measure of that than just a quick uh
- 9:02one-off question. So So what's the
- 9:04challenge for today? Uh I've got a pair
- 9:06of challenges lined up. I don't know if
- 9:08we're going to get to challenge two.
- 9:09It's going to depend entirely on how
- 9:10challenge one goes. Uh I've got an idea
- 9:12in my head as to how this is going to
- 9:14play out. I haven't rehearsed this
- 9:15specific task, so I don't actually know.
- 9:17But I I've got I've got a feeling. I'm
- 9:19not going to make a prediction cuz I'm
- 9:20almost almost I'm almost always wrong
- 9:22when I make a prediction. But uh let's
- 9:24let's see what we get. So what's the
- 9:26challenge? I thought uh for this task,
- 9:27for this first task, instead of getting
- 9:29it to generate code, we could get it to
- 9:30review code because this is a common uh
- 9:32coding task that I do quite a lot. Uh if
- 9:34we go to
- 9:36uh I've received a pull request on one
- 9:39of my projects uh TTS serve and I
- 9:41thought you know what let's get uh these
- 9:43models to review this pull request and
- 9:45just tell me should I merge this or not.
- 9:47So the project is TTS serve. If you're
- 9:49not familiar I've got this uh library.
- 9:50It's a layer of abstraction that sits
- 9:52between a client application and uh one
- 9:55or more TTS engines. So uh DOS.TTS TTS
- 9:58or Quen 3 TTS or Lux TTS or Vox CPM or
- 10:02OmniVoice or whatever Chatterbox,
- 10:04whatever you're running. Uh TTS serve
- 10:08sits in front of the TTS engines and it
- 10:10provides a discoverable REST API that's
- 10:12consistent across all of the all of the
- 10:14different engines. So your client
- 10:15application can connect to any TTS any
- 10:18supported TTS engine without knowing or
- 10:19caring about the details of that TTS
- 10:21engine. It's actually kind of a neat
- 10:22project. And we support now I I've lost
- 10:24track like six or six to eight I think
- 10:26different TTS engines. So I got a pull
- 10:28request here. Uh add optional long text
- 10:31chunking to Quen 3 TTS MLX. So right off
- 10:34the bat this seems odd to me. Let's look
- 10:36at the client application. Uh the client
- 10:38application looks like this. It's called
- 10:39talk with me. Uh and I've got it wired
- 10:42up right at the moment to uh Lux TTS
- 10:45sitting behind TTS serve. So if we go to
- 10:49settings, uh the TTS engine that we're
- 10:51connected to, localhost 7500 is Lux TTS
- 10:55and Lux TTS provides these options.
- 10:57These options are provided dynamically
- 10:58by TTS serve. Uh the client application
- 11:01can present uh sliders and uh UI
- 11:03controls uh so that you can control the
- 11:05different options for that specific DTS
- 11:06engine. But if we connected to a
- 11:08different one, if we connected to
- 11:08Chatterbox, this whole list of options
- 11:10would change dynamically. That's the
- 11:12whole point. So uh let's take it for a
- 11:14really quick uh test spin. I've got uh
- 11:16I've got a bunch of Star Trek voices
- 11:18cloned and ready to go. So, we can say
- 11:19something like, "Captain, I recommend we
- 11:21raise the shields immediately."
- 11:23>> "Captain, I recommend we raise the
- 11:25shields immediately."
- 11:26>> Great. So, that voice clone came from
- 11:29Lux TTS. Now, the application has an
- 11:31option for uh what I call sentence by
- 11:33sentence mode. Some TTS engines are
- 11:35faster than others. It's usually a
- 11:36trade-off between quality of the clone
- 11:38voice and uh performance uh speed of
- 11:40delivering that clone voice. Dots.TS,
- 11:42TTS, for example, is one of the highest
- 11:43quality voice cloners I've seen that you
- 11:45can run locally. Uh, but the speed is
- 11:48terrible. It takes a good 10 to
- 11:49sometimes 20 seconds to synthesize a uh
- 11:51a paragraph of text. So, what I did was
- 11:55in talk with me, I introduced this
- 11:56option called streaming sentence by
- 11:58sentence mode. What this does is if you
- 12:00give it more than one sentence, let's
- 12:02actually turn that on and give it a
- 12:04multi-sentence paragraph of text to
- 12:06synthesize.
- 12:08Captain, I recommend we raise the
- 12:09shields immediately. There's an enemy
- 12:11ship approaching. Wait a minute. It's
- 12:13not an enemy ship. Yeah. No, it's
- 12:15definitely not an enemy ship. It's a
- 12:16friendly ship. Oh my god, it's the
- 12:18Avengers. Let's say hello to them.
- 12:21>> Captain, I recommend we raise the
- 12:22shields immediately. There's an enemy
- 12:24ship approaching. Wait a minute. It's
- 12:26not an enemy ship. Yeah. No, it's
- 12:27definitely not an enemy ship. It's a
- 12:29friendly ship. Oh my god, it's the
- 12:31Avengers. Let's say hello to them.
- 12:32>> Okay, the quality of the voices is hit
- 12:34and miss there. But we notice we got a
- 12:36bunch of different replay buttons
- 12:37underneath that because it doesn't
- 12:39synthesize it all at once. It sends it
- 12:41it looks for sentence splitting
- 12:43punctuation like periods or question
- 12:44marks or uh exclamation marks and it
- 12:46sends it up to the TTS server one
- 12:48sentence at a time so that we can
- 12:50stream. It's not really streaming I know
- 12:51but we can stream. And it's a poor man's
- 12:52streaming approach uh to get a faster
- 12:54time to first uh voice sample and we get
- 12:57it a sentence at a time as opposed to if
- 12:59we turn that off uh it will have to
- 13:02synthesize the entire text block at
- 13:05once. We can actually try this right
- 13:08now.
- 13:08>> Captain, I recommend we raise the
- 13:10shields immediately. There's an enemy.
- 13:12>> We can stop that. We That actually
- 13:13wasn't that bad. The lock CTS is
- 13:14actually really really fast. Uh, so
- 13:16maybe not the best example, but uh, the
- 13:17point is we get a single replay button
- 13:19here that plays the entire paragraph
- 13:20versus in streaming mode, we get one
- 13:22replay button for each sentence. Great.
- 13:25It's a neat little feature. You can turn
- 13:26it on or off depending on which TTS
- 13:27engine you're connected to. If we come
- 13:29back to this PR here, add optional long
- 13:31text chunking to Quinn3 TTSMLX. Okay.
- 13:33So, what we're looking for, so what this
- 13:35BR offers is punctuation aware chunk
- 13:38boundaries, optional fixed silence
- 13:40between chunks, optional linear
- 13:42crossfade between chunks, validation for
- 13:44chunking parameters,
- 13:46uh tests covering chunk splitting. Uh,
- 13:49okay. So, it sounds like it makes this
- 13:50feature a lot smarter. But my my
- 13:53immediate question when I look at this
- 13:54just the title of the PR, we're adding
- 13:56this feature specifically not just to
- 13:59one specific TTS engine, Quinn3 TTS, but
- 14:02to one specific variant of that TTS
- 14:04engine, the MLX version of Quin3 TTS.
- 14:06Why are we doing this? The whole point
- 14:09of TTS serve is to expose options in a a
- 14:11uniform way across TTS engines. And this
- 14:14doesn't seem like an option that is
- 14:15specific to Quen 3 TTS MLX. Why are we
- 14:18only offering this option for that one
- 14:20TTS engine? Why not all of them? I don't
- 14:23know. Maybe there's something genuinely
- 14:24MLX specific in here. So, I haven't
- 14:26looked too much of the actual code. I'm
- 14:29going to get the LLM to do that for me.
- 14:30So, this is the task. This is challenge
- 14:31number one. Each model is going to look
- 14:34at this PR and uh do a code review on
- 14:36it. Tell me is it is it mergeible as is
- 14:39and try to answer the design
- 14:40architectural question that I have. Why
- 14:42are we targeting a specific variant of
- 14:45one TTS engine when we support like
- 14:47eight of them? So, okay. So in open code
- 14:50I've switched to quen 3.8 flash next
- 14:52coder here. Let's take a look at the
- 14:53prompt. Compare this branch to master.
- 14:55Give me a code review of the pro
- 14:56proposed change. Is this mergeable as
- 14:57is? And then my architectural question.
- 15:00Why is this why does is this that's good
- 15:03English. Why is this change specific to
- 15:05Quen 3TS MLX? Can we not make this
- 15:07change available to all TTS engines? So
- 15:09uh I'm going to let Quinn flashcoder
- 15:12chew on that and I'm going to bring up
- 15:14the official no place like local host
- 15:16stopwatch. your logo here for the low
- 15:19low price of a RTX Pro 4500. Uh, okay.
- 15:23So, we'll let uh Flash Coder look at
- 15:25that and give me a code review. And then
- 15:26we're going to do the same thing with uh
- 15:28Coin 3.8 Flash Next IQ3S, the model we
- 15:31looked at last week. And we're going to
- 15:32compare the quality of the review that
- 15:34we get and the answer to the
- 15:35architectural question that we get. And
- 15:36uh we're going to make sure that both
- 15:38models can actually complete the task
- 15:40cuz I'm not sure that they can. Maybe
- 15:42I'm being too harsh, maybe I'm being too
- 15:43cynical, but my prediction I'm going to
- 15:45cut this out of the video if I'm wrong,
- 15:46but my prediction is that uh the flash
- 15:49coder model is it's got half its brain
- 15:51removed, you know, like I I I I just
- 15:53feel like that's a bad idea, you know?
- 15:56You they they've claimed they've cut the
- 15:58experts out that are not related to
- 16:00coding, but are you sure those experts
- 16:01aren't needed? Are you sure? Maybe I'm
- 16:04wrong. Maybe I'm wrong. Let's uh let's
- 16:06find out.
- 16:09local host
- 16:12here.
- 16:13>> 5 minutes 38. That was pretty quick.
- 16:15Let's see what we got. Uh interesting
- 16:17that the test suite is red. I didn't I
- 16:19didn't notice that, but I uh I did run
- 16:20it just now. And sure enough, there are
- 16:22two failing tests in this PR. So, right
- 16:26off the bat, I think that answers my is
- 16:27this mergeable question, but okay. Uh
- 16:29the feature itself is solid. Okay. Uh
- 16:32this PR adds a couple of crossfade unit
- 16:35tests that are apparently machine
- 16:37specific. The developer who wrote this
- 16:39has got stuff installed in his
- 16:41environment that I don't have in mine.
- 16:42And without that, the tests fail. So,
- 16:44uh, not good. Yeah. And the other the
- 16:47remaining tests are kind of sloppy.
- 16:49[gasps]
- 16:50That's not really what I'm looking to
- 16:52answer here, though. Okay. So, there's
- 16:54some code problems. There's a few edge
- 16:56cases that'll bite us. Maybe there's a
- 16:59couple of minor performance nitpicks.
- 17:01I'm not I'm not too concerned about
- 17:02that. Okay. Let's get to the design
- 17:04question. And why is this specific to
- 17:06quen3tts MLX? Okay, so this is genuinely
- 17:10MLX specific. There's something in that
- 17:11engine in that version of the engine
- 17:13that doesn't handle it's using new lines
- 17:16to separate long text which is not what
- 17:18our client application is sending. So on
- 17:19a on a genuinely long paragraph, this
- 17:22thing has difficulty. And so the the
- 17:24intention here is to implement chunking
- 17:26uh on the server side. Okay, so this is
- 17:29a bit of a wonky case, but it is
- 17:31genuinely specific to that DDS engine.
- 17:33That's that's good. That's a good
- 17:34answer. So, we could fix this or we
- 17:36could work around it just by enabling
- 17:38because I've got that option on the
- 17:39client side. I've got that in the client
- 17:40application. We've got that checkbox you
- 17:41can turn on for sentence by sentence
- 17:43mode. That's handled on the client. So,
- 17:45we only send up a sentence at a time for
- 17:46synthesis. Uh, if you've got that
- 17:48disabled and you're sending up the
- 17:49entire paragraph internally, each
- 17:52engine's got their own way of dealing
- 17:53with very long text. And, uh, this MLX
- 17:56version of Quen 3TS apparently uses new
- 17:58lines which we're not sending. So, uh,
- 18:00it doesn't get an opportunity to split
- 18:02the text up. So yeah, that's that's what
- 18:04this PR is about. So that answers my
- 18:06question about why this PR is specific
- 18:09to uh to that engine. Okay. So So it is
- 18:13legit. It is legit. The PR is legit. I
- 18:16mean, it's got failing tests. I can't
- 18:17merge it, but it's uh the the idea is is
- 18:20legit. It is it is valid. It is in fact
- 18:23specific to that variant of that TTS
- 18:25engine. That answers my question. Okay.
- 18:27So well done. Quen 3.8 Flash next coder
- 18:30has succeeded in the first task and it
- 18:32did it in 5 minutes and 38 seconds.
- 18:33Great. Let's reset.
- 18:36Okay, get status is clean. It didn't
- 18:37actually touch the codebase. So, let's
- 18:39reset. I'm going to kill 3.8 flash next
- 18:42coder
- 18:44and I'm going to start up uh 3.8 flash
- 18:47next.
- 18:49Okay. And just a quick look at htop and
- 18:50NBTOP for comparison purposes. 54.5 gigs
- 18:53of system memory in use. And again, both
- 18:56cards pretty much maxed out for memory
- 18:58as expected. Okay,
- 19:02let's go back to open code. And same
- 19:05exact prompt. I'm not going to give it a
- 19:06heads up that the test suite is failing.
- 19:09Uh flash next coder didn't get that
- 19:10heads up. So, I'm going to I mean, I
- 19:12expect immediately we'll discover that.
- 19:14So, let's just see. Let's compare. Let's
- 19:15bring the stopwatch back. Let's do that
- 19:18again with uh Quint 3 flash next IQ3.
- 19:27>> [music]
- 19:28>> 5 minutes and one. That's what, like 30
- 19:29seconds faster. It's pretty close.
- 19:31Pretty close. Let's see what we got. Uh,
- 19:34okay. So, yes, of course, it found that
- 19:35the test suite is broken. Yep. So, same
- 19:38same analysis. It figured out that on
- 19:40the author's machine, there's certain
- 19:41dependencies installed that are not
- 19:43installed on my laptop, and so the test
- 19:44suite fails, which is bad. Uh, it should
- 19:46run across machines. Okay, let's get to
- 19:49the actual question. Uh, why is this MLX
- 19:52specific?
- 19:53This isn't a generic feature. It's a
- 19:55prosthetic for a specific MLX failure
- 19:57code. So, similar similar similar.
- 20:00Okay. Almost identical reviews. Almost
- 20:03identical reviews and an almost
- 20:04identical answer to my architectural
- 20:05question. So far, I'm impressed. 5
- 20:07minutes and one versus what was it? 5
- 20:09minutes and 30 something. That's pretty
- 20:11close. That's pretty close.
- 20:13Okay. I'd say both models passed that
- 20:15first test. Great. Let's move on to
- 20:17challenge number two.
- 20:19Okay. Let's write some code. For this
- 20:21challenge, I'm going to steal a
- 20:22specification from a uh an episode we
- 20:25did a week or two ago that kind of
- 20:27stumped Quen 3.827B.
- 20:29This uh I've actually extracted this
- 20:31from a much larger specification that
- 20:33sent uh the dense model into a a kind of
- 20:35a loop where it couldn't actually
- 20:36generate anything cuz it was too much to
- 20:38do all at once. Let's take a quick look
- 20:39at this. I've extracted just part of it
- 20:41and we're going to see if these models
- 20:43can do this. We're going to create a
- 20:44custom package file uh that packages up
- 20:47a directory of eligible resources. So,
- 20:50uh, we're looking at images, audio
- 20:52files, text resources, JSON resources,
- 20:54or fonts. What we're going to do is scan
- 20:55a given directory. We're going to write
- 20:57a Python command line tool that's going
- 20:58to scan a given directory recursively,
- 21:00looking for any files of those types,
- 21:01and it's going to package it up into a
- 21:03zip file, but with a a couple of little
- 21:05tweaks on it. So, I described the
- 21:07general uh command line script that
- 21:09we're going to build. Uh, here are the
- 21:11command line arguments that it takes.
- 21:12You can either create a file or you can
- 21:13inspect an existing file to report on
- 21:15its contents. The file is just a zip
- 21:17file behind the scenes, but that's fine.
- 21:19Uh what we're going to do as we create
- 21:21the package file, we create a manifest
- 21:23in JSON that contains a Shaw 256 hash of
- 21:26each entry along with its computed ID
- 21:28relative to its containing directory. Uh
- 21:30and we're going to do really really
- 21:32really basic encryption on each item. Uh
- 21:34what we're going to do is key simple key
- 21:36exor on each item such that if you open
- 21:38up the uh the generate a package file in
- 21:41a zip uh tool and try to double click
- 21:43one of the items, you'll you should get
- 21:44an error that it's not a valid whatever
- 21:46it is. If you click an image, it should
- 21:48say this is not a valid image because it
- 21:49isn't. It's encrypted. Encrypted. We're
- 21:51going to use very very simple
- 21:52encryption. This is for a game project
- 21:54that I'm working on uh elsewhere. But we
- 21:56can adapt this this little challenge. Uh
- 21:58can you create a script in Python that
- 22:01does this? And uh we're not just
- 22:02packaging up the resources blindly. We
- 22:03do some really basic validation on them.
- 22:05Uh basic stuff. And then once you've got
- 22:06a package pile that you've generated,
- 22:08you should be able to inspect it. So
- 22:09this is a a trimmed down version of a
- 22:12much larger spec that choked up Quen
- 22:143.827B. It'll be interesting to me to
- 22:16see if we can do this in one pass with
- 22:17each of these models. Now, I've already
- 22:20got uh Coin 3.8 Flash loaded and ready
- 22:23to go. So, let's just do this. Yeah,
- 22:25just something like that. So, take a
- 22:26look at the markdown file in this
- 22:27directory and implemented. Go. And I'm
- 22:31going to put Quinn 3.8 flash on the
- 22:33clock and we'll see what we get.
- 22:387 minutes 20 seconds. Okay, what did we
- 22:41get? Mission accomplished.
- 22:44Two files delivered. packager.py and oh
- 22:46it wrote test. Of course it wrote test.
- 22:48Of course it did. It's quen. So 35 tests
- 22:50all green. Okay. Now it occurs to me we
- 22:53don't have to rely on uh just a code
- 22:55review as our sole metric of success or
- 22:57failure. Here I've got the actual
- 22:58packager tool that has already been
- 23:00written for the game. I should in theory
- 23:04I should be able to create a package
- 23:05with 14 resources. Okay. So let's move
- 23:07that and I should be able to inspect it
- 23:10with this tool. They should be
- 23:12completely compatible. And look at that.
- 23:14Great. Contains 14 resources. All hashes
- 23:16match. Okay. The official packager tool
- 23:19created that package and then this thing
- 23:20just written by flash. Next just created
- 23:23uh just inspected it and reported
- 23:24successfully. So can I create a let me
- 23:27try this. Okay. So I've got a resources
- 23:29directory with 14 things in it. I should
- 23:30be able to and vice versa. I should be
- 23:34able to take the package I just created
- 23:35with this tool, the one just created by
- 23:37flash
- 23:39and inspect it. And it inspects 14
- 23:42resources. All hashes match and all
- 23:44resources are parsible. It works in both
- 23:46directions, so it's perfectly
- 23:47compatible. Great. Quinn 3.8 Flash Next
- 23:50has solved it in what was that? 7
- 23:53minutes 20 seconds in one pass. Great.
- 23:55Let's reset and do the exact same thing
- 23:57again with Flash Coder. Okay, Flash
- 24:00Coder is up. I've switched to a
- 24:03different directory that has a copy of
- 24:05the same exact prompt and nothing else.
- 24:07It can't see any of the code that uh
- 24:08Flash Next just generated. And uh I
- 24:12think we are ready. So I'm going to give
- 24:13it the exact same prompt to take a look
- 24:16at the markdown file in this directory
- 24:17and implement it exactly level playing
- 24:19field. So flashcoder is going to take a
- 24:23look at that. And what did we get? 7
- 24:25minutes and something. Let's see. Let's
- 24:27see what we get.
- 24:30Okay. I don't know if it's stuck or
- 24:31what, but it's it's thinking it's not
- 24:35outputting anything. Uh, Strata has a
- 24:38default 32,000 output limit. It's
- 24:40looking like it's going to hit that and
- 24:42get cut off. The GPUs are working. It's
- 24:45doing something. It's just not
- 24:47outputting anything anymore to to open
- 24:49code. I don't know what's going on.
- 24:52What's going on, Quen Coder? What's
- 24:54going on? And that's it. It hit the
- 24:57limit. 32,000 and it died. Let me stop
- 25:00the clock. Time of death 519. So, that's
- 25:02weird.
- 25:04I couldn't tell what it was thinking
- 25:05because it wasn't outputting anything.
- 25:06I'm going to give it another chance. I'm
- 25:07going to restart it. I don't know
- 25:09exactly what that was. I think maybe it
- 25:10just got stuck in a loop. It's weird
- 25:12that it wasn't outputting anything. I'm
- 25:14I'm going to give it another shot. Same
- 25:15prompt. Same starting point. Did it
- 25:18output any code? No, it didn't output
- 25:20any code. So, uh, it was just thinking
- 25:22about the problem. So, that's fine.
- 25:23Let's restart the clock and let it let
- 25:25it think about that again. Come on,
- 25:27Quinn. Come on. You are a model that
- 25:29specializes in coding. I know half your
- 25:32brain was removed, but the half that
- 25:33remains allegedly is the half that's
- 25:35good at coding tasks. This is a coding
- 25:37task. Come on, Quen. You can do it.
- 25:474 minutes 3 seconds. Suspiciously fast.
- 25:50Let's take a look. Mission accomplished.
- 25:53Packager.pi is implemented and field
- 25:55tested. Uh, its bullet list was
- 25:58malformatted.
- 26:00That's weird. Okay,
- 26:03it looks like
- 26:05it did not generate any tests.
- 26:07Interesting. I didn't ask for tests.
- 26:09It's not in the spec and it wasn't in my
- 26:11prompt. Quinn 3.8 Flash generated tests
- 26:14without being asked to and it generated
- 26:16what was 35 of them. This thing, it says
- 26:19it did field testing, but it didn't
- 26:21actually generate a test suite here.
- 26:22Now, to be fair, I didn't ask for one,
- 26:24but uh Quinn 3.8 Flash reads my mind the
- 26:27same way that Quinn 3.827B reads my
- 26:29mind. And it just assumes that I want
- 26:30everything thoroughly tested.
- 26:32Interesting. Uh let's try it out.
- 26:35Okay, I've got a I've got a directory
- 26:37with 14 resources. Let's uh let's see
- 26:39what we get. Okay, it created the
- 26:41package file. It didn't output anything
- 26:44weirdly. Uh okay, if I do a if I ask it
- 26:47to inspect its own package,
- 26:50it does find 14 resources who whose
- 26:52hashes whose hashes match. Okay, let's
- 26:56let's try and inspect it using the
- 26:57actual packaging tool. And we get 14
- 27:01resources. All hashes match and all
- 27:03resources are parsible. Okay. And if I
- 27:06take the one that was generated by the
- 27:07packaging tool,
- 27:10it can inspect it successfully. Okay.
- 27:12And it can inspect the one that was
- 27:14created with the uh with Quen 38 flashes
- 27:18attempt. So they're compatible with each
- 27:20other and they are compatible with the
- 27:22actual packaging tool from the game. So
- 27:24they both did it. Uh Flash Coder did it
- 27:27in 3 minutes less than Flash Next, but
- 27:33it didn't generate a test suite. That's
- 27:35why that's why it was so much faster cuz
- 27:36it cut that corner. Okay. Uh Austrian
- 27:40Quinn is going to be my code review uh
- 27:43judge. This is Quen 3.827B dense at the
- 27:46Austrian IQ3S
- 27:48uh quantization. The challenge.md in
- 27:51this directory was given to two local
- 27:52LLMs for implementation. The first one
- 27:54is in this directory, the other one is
- 27:55in that directory. Please do a review of
- 27:56both and tell me which LLM did a better
- 27:58job of implementing the given spec.
- 28:02And my Grizzled Senior Dev Code review
- 28:04agent is going to dive in, take a look
- 28:07at both, and I can guess what it's going
- 28:09to say, but uh let's allow it access to
- 28:12that directory. And the review is away.
- 28:1812 minutes 20 seconds for that review.
- 28:20Uh Quinn 3.8 left no stone unturned and
- 28:24wrote its own test suite to uh fully
- 28:27test both uh implementations. Let's take
- 28:29a look, shall we? Uh two packages, one
- 28:32spec. Overall, both LLM produced
- 28:34genuinely competent implementations.
- 28:36Neither one fumbled the specs core exit
- 28:38codes, verb beta error strings, the exor
- 28:40shaw 256 dance manifest validation. Both
- 28:44would survive a specive test suite
- 28:45unscathed. This is a close match decided
- 28:48in the footnotes. Okay, so Flash
- 28:51produced 35 of its own tests. Coder
- 28:54produced none. Uh Quen, our our coding
- 28:58judge here, Austrian Quinn, wrote 49
- 29:01tests of its own, of which coder passed
- 29:03all 49 and challenge to uh sorry, Flash
- 29:07passed 48 out of 49.
- 29:10The one failure is that Flash hangs if
- 29:13you give it a FIFO instead of an actual
- 29:15file.
- 29:16That's such a wonky outsider edge case.
- 29:19I don't even really care about it. But
- 29:20okay. Yeah. And named pipe called
- 29:24pipe.png. Why would you do that? You
- 29:26know, why would you ever do that? In the
- 29:28source tree sends the tool into an
- 29:29indefinite open block. So there's a
- 29:30really wonky
- 29:32faroff edge case that Flash didn't
- 29:34handle. Coder made a design decision to
- 29:37skip unreadable subdirectories inside
- 29:39source. So again, this is kind of a
- 29:41wonky case where you've got a a
- 29:42resources directory that for whatever
- 29:44reason has a non-readable subdirectory
- 29:46that you don't have permission to
- 29:48access. Why why would you do that? Uh
- 29:50and coder will just skip it. Flash will
- 29:53hard fail with a with a clear error
- 29:55message which is closer to what the spec
- 29:56says you should do. I don't think I
- 29:58specifically named that case, but I did
- 29:59say that the directory has to be
- 30:01readable and that it's searched
- 30:02recursively. So that implies that
- 30:04everything in that directory has to be
- 30:05readable. So flash I think handled that
- 30:08better. So performance is a wash,
- 30:10security is a wash, quality and style.
- 30:14[laughter] The given when then comments
- 30:16in the tests are a little ceremonial.
- 30:19Uh I should I should explain that my
- 30:22coding agent has explicit instructions
- 30:24on how to write tests and I I explicitly
- 30:25ask for given when then it was doing
- 30:27what I what I instructed it to do in its
- 30:29system prompt uh coder because it didn't
- 30:31write any tests at all. It didn't do
- 30:33that. So Quinn 3.8 8 uh 27B here is
- 30:36getting a little uppy about the fact
- 30:37that oh well that's a little ceremonial
- 30:39to write given when then comments. I I
- 30:41told it to do that. It's fine.
- 30:44This is the more professional
- 30:45engineering deliverable. That's
- 30:46referring to Flash because it because it
- 30:48wrote a test suite, you know. Uh
- 30:50Challenge 2 coder has tighter code and
- 30:52two genuinely good design choices.
- 30:55This is interesting. This is an
- 30:56interesting uh matchup here. But the LLM
- 30:59that shipped zero tests is a little hard
- 31:01to judge on testability. Good, good
- 31:03point. So verdict, challenge two coder
- 31:06wins on correctness narrowly. Every
- 31:09explicit requirement in the spec passes
- 31:10in both. The only functional defect I
- 31:13found was that FIFO thing. Coder's
- 31:15defensive habits are the better
- 31:17instinct.
- 31:18Interesting. But but challenge to flash
- 31:22is the better engineering deliverable. A
- 31:24passing 35 suite test suite and cleaner
- 31:26architecture. The spec didn't ask for
- 31:28tests. Here's here's an interesting
- 31:30twist. My practical recommendation take
- 31:34flash's code. Yeah. So its
- 31:37recommendation is to combine the two.
- 31:39Interesting. Interesting. So it's a draw
- 31:42kind of.
- 31:44This is this is tough. It's it's very
- 31:46very close. So they both did it. Uh
- 31:48coder took two attempts. I'm pretty sure
- 31:50it got stuck in a doom loop on that
- 31:51first attempt and I had to restart it.
- 31:53Uh and it did get there. Uh, if it were
- 31:56me, if I were judging this, I'd say
- 31:57Flash One just based on the fact that it
- 31:59wrote a whole test suite with 35 tests
- 32:01in it. Coder, according to our judge
- 32:04here, has a uh has tighter code is how
- 32:09how it put it. Cleaner architecture.
- 32:11Flash has cleaner architecture, but
- 32:12coder has tighter code. Uh, it sounds
- 32:15like a draw to me. Interesting results.
- 32:17Interesting results. I I fully expected
- 32:20uh the labbotomized model to fall over
- 32:21and die, and it didn't. You know what?
- 32:23I'm not going to go back and edit out my
- 32:25prediction. My pessimistic prediction
- 32:26from earlier was that Coder was going to
- 32:28fail on at least one of these challenges
- 32:30and it didn't. It did them both. Uh so
- 32:33if you don't have the system memory to
- 32:35run IQ3S,
- 32:37if you only have 32 gigs of system
- 32:39memory, uh then running Coder could be a
- 32:43viable option. You might have to guide
- 32:44it a little more carefully. Uh you might
- 32:46have to tell it, please remember to
- 32:47write a test suite. Uh and you might
- 32:50have to be a little patient with it.
- 32:51It's a little bit less stable. It does
- 32:52seem to be prone to uh like doom loops
- 32:55or whatever. That's probably a byproduct
- 32:56of the lobotomization process where they
- 32:58you know cut out half of its half of its
- 33:00experts. Uh but it does seem it does
- 33:03seem like it works better than I would
- 33:05have expected it to. I'm going to just
- 33:07as a bonus challenge, I'm going to throw
- 33:09a completely non-code related challenge
- 33:11at each of them and just see what we get
- 33:13because the whole thing about coder is
- 33:15that the the disclaimers over and over
- 33:16say don't use this for non-coding tasks
- 33:18because it's been you know it's had its
- 33:19brain ripped out. Let's just try it and
- 33:21see what we get out of curiosity. A
- 33:24completely non-coder related question.
- 33:26Tell me about the battle of Azenor and
- 33:28the effects that it had on the political
- 33:29relations between England and France.
- 33:31This is uh coin 3.8 flash coder. This is
- 33:34the one that is allegedly not very good
- 33:36at non-coding tests. Let's just see what
- 33:38happened. Let's just see what we get
- 33:40here.
- 33:42Yeah, it's it's already off into La La
- 33:44Land. Look at this. It's trying to
- 33:46remember dates. So, this is a
- 33:47deliberately unfair test. This is
- 33:50explicitly not what this this what this
- 33:52model is meant for. All of the experts
- 33:54that would have answered this question
- 33:54are gone. It's it's reaching for
- 33:56something that just isn't there. So,
- 33:57let's let's stop torturing it. Let's uh
- 34:00let's ask it something in German cuz I I
- 34:03I read that it is not good in languages
- 34:05other than English. So, can you explain
- 34:06the rules of golf to me? Just a random
- 34:08question. And let's see. Oh, yeah. Look,
- 34:12it speaks German. Oh, no, it doesn't.
- 34:14It's answering in English. I I thought I
- 34:17saw it started. It started answering in
- 34:19German and then like halfway through
- 34:22like mids sentence
- 34:24from the tea area like mids sentence it
- 34:26switches to English and then just never
- 34:28goes back to German. So interesting.
- 34:32Okay. Uh let's try that again in uh
- 34:34flash next. Same question. Yeah. And no
- 34:38problem. Okay. I get a Wikipedia style
- 34:41description of the battle and uh the
- 34:43aftermath and Okay, good. and my random
- 34:47sports question in German. Can you
- 34:49explain the rules of golf? And let's see
- 34:51if we get an answer in German this time.
- 34:54And we do. We get an entire answer in
- 34:57German. It doesn't switch to English. It
- 34:59stays in German all the way through.
- 35:01Okay, good. So, what did we learn? Uh,
- 35:04Coen 3.8 Flash Next Coder is actually, I
- 35:07think, kind of usable for coding tasks
- 35:09uh on lower memory systems. Don't use it
- 35:12for non-coding tasks and be patient with
- 35:14it cuz it might it might spin off into
- 35:16the occasional doom loop, but it is
- 35:18usable. If you're on unlimited VRAM, if
- 35:20you can't run IQ3S, try try Flash Coder.
- 35:23Uh I'm impressed. It's hard to tell from
- 35:25just two coding challenges, but uh it
- 35:26did both of them. Hooray for Flash Next
- 35:28Coder. Uh possibly a viable option. And
- 35:31I will eat my words from earlier that
- 35:33it's going to fall flat on its face. It
- 35:34didn't. All right, I'm happy with that.
- 35:36Thank you for watching. Thank you for
- 35:38all your comments on the last video. It
- 35:40was fascinating to me to read all of the
- 35:42different experiences that people have
- 35:43had with Strata and how they're running
- 35:44it on uh different hardware and the
- 35:46results that they're getting. That's
- 35:47really cool to see this tool is really
- 35:49starting to take off and I love it. I'm
- 35:51a big fan of Strata and I'm a huge fan
- 35:53of Coin 3.8 Flash. Uh it's a fantastic
- 35:57uh coding model. It's my go-to model
- 35:59now. So uh thank you for watching and we
- 36:02will see you next time.
- 36:08Let's do this. Let's take another look
- 36:10at Strata. And this time, let's put
- 36:12Quinn 3.8 Flash Next, the model we
- 36:13looked at last time, up against Quen uh
- 36:16what's it called? This is a
- 36:19version of the model that is allegedly
- 36:20geared specifically towards uh coding uh
- 36:22tasks, which is uh uh can you not say uh
- 36:25so much? Three, two, one. The model we
- 36:28looked at last time up against Quinn 3.8
- 36:30eight flash next uh coder is what I
- 36:35wanted to say there.
About this transcript
This page contains the full transcript of Qwen 3.8 Flash Next vs Flash Next Coder by No place like localhost, generated from the public captions YouTube serves with the video. The transcript has 7,376 words across 1,039 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 translate the transcript into 100+ languages.
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, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.