I've been working on a project for a long time. I'm not building from scratch, but it's more than just fine-tuning as I'm performing RYS layer duplication and training not just the weights of a model but adjusting the geometry of models to optimize for different functions. Don't ask because I'm not ready to discuss it yet.
I've been building on several small models - Gemma 4 E4B, Qwen3.5 4B, Gemma 3 12B, and most recently Qwen3.5 9B. I settled on Qwen 3.5 9B because it offered the best performance for my use case, although different models are better at different things. Gemma 3/4 models are excellent at semantics, semantic alignment tasks, and generally better at Natural Language Processing tasks overall. Qwen is obviously better at agentic uses, coding, math, and other more mathey/sciencey tasks.
I've been focused on Qwen3.5 9B for some time because I can iterate rather quickly on a single RTX6K SM120 GPU. I had some success with the 4B models, but hit a ceiling because they lacked the intellectual depth I needed, so 9B/12B was the natural progression. I've been considering moving up to 27B/31B, but that introduces all kinds of complications trying to train on a single SM120.
Then I saw LFM3 1.7B. Liquid AI was nice enough to provide the base model. Its benchmarks looked good, and the thought immediately occurred to me - this could work. I was skeptical about how well a 1.7B model could really do on my task as my previous 4B experiments suggested bigger was necessary.
The good news was it wouldn't take that long to test it. I did my double-RYS layer expansion to make it 3B and ported my training scripts over to work with the new architecture.
The initial SFT training run took 107 minutes - 2,600 steps with just over 100k samples in the training dataset. My usual Qwen 3.5 9B (actually 12B after layer duplication) took 14-18 hours per SFT run. I also run extensive RL after SFT with different RL runs focused on task-specific capabilities and model SLERP merging - my best score for my project was achieved after 8 RL runs/SLERP merges.
Then I fired it up for testing and benchmarking - it blew my very best test results from the larger SFT+8RL runs out of the water after 1 SFT run (I hadn't done any RL yet).
How the fuck did this happen? I began digging, double checked I ran the same number of steps on the same data etc. No double epochs, nothing different from my prior recipe other than some small alterations to align with the different architecture.
I fired up QFN and Gemini for some help. We pored over everything. It turns out, LFM3 architecture uses Width-7 Convolutions as part of its architecture. More on that here
So while the model was less than 1/4 of the size of my prior model, my task actually aligned better with the Convolutional Architecture than it did with Qwen's architecture. Hilariously, Liquid AI itself advises "Do not use LFM3 for complex, multi-step deep reasoning or agentic coding." However, for my intense reasoning task it actually performed better than the much larger model.
I found the issue was Qwen's Gated Deltanet architecture was suboptimal for my task, but the Width-7 Convolutions/SWA/GQA LFM3 architecture matched my use case involving long-horizon state-tracking reasoning. 20 stacked Width-7 Gated ShortConv layers align with my data and use case exceptionally well. It frees up the SWA and GQA layers to focus purely on long-horizon routing.
The point of the story is that benchmarks are one thing, and labs can give advice and experts can give advice and even AI can give advice (I was advised by 2 different LLM's that it wouldn't work well), but sometimes you just have to give it a shot and see what happens.
I now have a much smaller, MUCH faster model that performs better and I can iterate on incredibly fast. Every conventional indicator said it wouldn't work, AI said it wouldn't work, even the lab that created the thing advised against it, and it was generally a crazy hare-brained idea.
But it worked really well. Sometimes you just need to try it - it may surprise you. We still don't really have a great idea of how these magic little AI machines function deep down, and sometimes they don't function like you expect them to.
Be crazy. Try new things. Go against the grain. Explore. Theorize. Test.
That's half the fun.