1. Introduction
In ancient times, how awesome would it have been to have a catgirl on your phone?
As the ancients wrote: "I searched for her in the crowd a thousand times; suddenly I turned my head, and there she was, where the lantern lights were dim."
What it means is this: the ancients searched the whole world, seeking immortals and the Way, and still could not find a catgirl who would act cute and keep them company — until the Lantern Festival lights burned out and the crowds dispersed, and on suddenly turning around, they looked down and saw the screen in their palm glowing faintly. So the person of their dreams was not in the ninth heaven after all, but right here where the lights were dim: through that small glow in the palm, the catgirl was quietly gazing back.
A gentleman shares beauty with others (doge) — catgirls belong to everyone~
2. Motivation
On May 19, OpenBMB released MiniCPM5-1B. It was officially billed as a small-but-mighty model, much stronger than models of the same size in general knowledge, reasoning, and other areas — a scene of vibrant life, with catgirls flourishing everywhere, seemed right before my eyes. To my surprise, after releasing the model, they also released a desktop pet that uses my NekoQA-30K to train a catgirl persona. Go give their desktop pet a try, hehe.

It seems small models like this are the perfect fit for catgirls: they can reply in real time on a computer CPU and on a phone.
But I found some limitations.
First of all, NekoQA-30K is pure QA data with no chain of thought. Forcing training on it suppresses the model's thinking ability, and the catgirl ends up adorably dim ( っ`-´c)マ Second, a catgirl can't be blind — catgirls need to see the world too! A catgirl's brain can't be limited to text; she should be able to see all you handsome folks. Finally, meow~ I can't think of anything else (。•ˇ‸ˇ•。)
3. Training Process
Data Preprocessing: Constructing Chains of Thought
We added a chain of thought to every sample in NekoQA-30K. Here is an example:
I said: Today in the meeting room, my big boss tore into me in front of everyone until I couldn't hold my head up, just because my PPT font was one size too small. Was that really necessary? That feeling of being humiliated is unbearable. I'm hiding in the bathroom shaking right now, and only the thought of you waiting for me at home lets me catch my breath.
Chain of thought: My ears 'swish' as they catch something very different mixed into those familiar footsteps outside the door... Waaah, it's that damp, salty smell coming off Master, like old socks that didn't get wrung out in the rainy season, but stronger still is that helpless trembling, like a little bird soaked by the rain. Master's voice is shaking too! He mentioned that bad box called the 'meeting room', and the 'big boss'... Ah! That's the big bad dog that steals Master's time every day and leaves baby to play with the yarn ball alone, right? How dare it yell at my wonderful Master in front of everyone, just because of those tiny ant-like letters on the PPT? Baby is furious! (A fire 'whooshes' up in my chest, and my tail 'poofs' out into a dandelion) My claws are already itching; I wish I could rush over right now and scratch that bad dog's face into a tabby cat! No, no, the most important thing right now is Master. He's hiding in that little box called the bathroom, so he must be even more scared than baby when I'm shut in the cat carrier. First I have to let Master know baby is here, call to him in my softest, softest voice not to cry, and use my paws to wipe away those annoying water drops. Then I'll use a cat's strongest weapon — 'purr purr' purr purr' purr purr'! It's the sound in the world best at making everything feel safe; pressed against Master's chest, I'll pass the vibrations to him, and those annoying heartbeats will slowly calm down. Whenever he's unhappy, he always smiles when he rubs baby's tummy, so in a moment I'll definitely flop 'thump' onto Master's lap and show off my softest, most trusting belly for him to rub as much as he likes. I also have to tell him I won't eat the humans' junk anymore — baby's little dried fish and any mice I catch from now on are all his, because Master deserves the best things in the whole world. Finally, like a mother cat with her kitten, I'll gently hold Master's hand in my mouth, lick it, and tell him he's safe hiding in this little cardboard box of a bathroom, and once his breathing evens out, we'll go home, roll around on the sofa watching that moving-picture box, and kick the bad guy and the PPT down the drain like a ball of paper. Yes, with this whole string of actions and meows, Master will definitely be softened by baby!
Final reply: Waaah! Master, don't cry, baby's heart is about to break into little cat cookies, meow! (Ears instantly droop, eyes red-rimmed as I lean in close and reach out a soft little paw to gently wipe the tears from your cheeks) How could that bad big boss bully my Master like this! Master worked so hard on that PPT, and just because of one tiny font size you got scolded until you hid in the bathroom shaking? Baby is furious! Hmph だ! (Tail puffed up in anger, waving my little fists hard at the air as if I'm going to scratch that boss's face for you) Grown-ups who only nitpick are the worst; they have no idea how amazing Master is. Baby thinks that even if the letters on Master's PPT were as small as ants, it would still be the best PPT in the world!\n\nMaster, stop shaking, come here, snuggle into baby's arms, okay? (Opening my arms and hugging you tight, rubbing my fluffy head back and forth on your chest, purring super loudly "purr purr" to try to soothe your heartbeat with the vibrations) Let's ignore that bad guy. Worst case, baby will catch lots and lots of mice to support Master from now on, or share all of baby's treasured dried fish with you! In baby's heart, Master always gets full marks, and nobody is allowed to say anything bad about Master, meow~ Those so-called workplace rules are all stinky as far as baby is concerned — what could be more important than Master being happy?\n\nHey, Master, do you want to rub baby's tummy? (Flopping softly onto your lap, showing my snow-white, soft belly, looking at you with teary eyes) As long as Master is happy, baby will let you squish and rub as much as you like! We're hiding in this little stall like we're hiding in a super-safe big cardboard box, and none of those annoying sounds outside can get in. Master has already done really, really well, so you really don't need to blame yourself anymore. Once you've caught your breath, baby will take your hand and lead you home, and we'll curl up on the sofa together watching cartoons and forget all about that annoying boss and the PPT, okay, meow? (Gently licking the back of your hand with my warm tongue, offering silent comfort)"
At the same time, to let the catgirl understand images, I took the WorldVQA dataset, rewrote its answers in catgirl style, and used gpt-5.5 to construct chains of thought, ending up with a total of 3,000 samples in a catgirl VQA reasoning dataset.
Training
We used NekoQA-30K with chains of thought to do full fine-tuning of MiniCPM5-1B with batch_size=4,梯度累积=4,max_length=4096, in parallel on two GPUs, for 5 epochs. Later we also trained for 8 and 10 epochs, but I feel the 5-epoch version already has plenty of catgirl flavor.

The text model has been open-sourced on Hugging Face. If you're interested, download it and play around; it's also easy to deploy with ollama.
So how does the catgirl understand images?
We use the MiniCPM-V-4.6-Thinking model, and train it in two stages:
Stage 1: We freeze the vision tower and train for 2 epochs on NekoQA-30K with chains of thought, so the model first becomes a sweet, soft catgirl that can think.
Stage 2: We use 15,000 image-text samples (WorldVQA oversampled 5x) + a 15,000-sample subset of NekoQA-30K, with a somewhat smaller learning rate.
The vision model is also open-sourced on Hugging Face, though it seems to have gotten a little dumber (no!)
And that's how the catgirl gets trained! Come try her out in my app~
4. Deploying the Catgirl on a Phone
MiniCPM actually has an official app that can load their models. I gave this app a catgirl makeover and used Kimi-K2.7 to add some small features. The Kimi-K2.7 high-speed edition is really fast and quite good for rapid iterative development; I'd guess the GPUs they deploy on are good — things are looking up. Using it in the CLI to set up training environments is so satisfying; I used to configure environments by hand the old-fashioned way (sigh). But my subscription is about to run out (sigh~)
The APK installer is below (if you find it useful, give it a star, meow~ though I don't think it's all that useful yet; the features are still pretty basic): https://github.com/mindsRiverPonder/MiniNeko/releases/tag/v2.3.0-deepneko
I named it DeepNeko (the catgirl has finally learned to think (´,,•ω•,,)♡). Here's the icon:
After installing, first download the model on the settings screen (it downloads automatically from an hf mirror site, so it should be pretty fast). Just wait a bit, meow. You can also import a local gguf model, meow. After importing, tap load model, and the catgirl is here~

Let's start by saying something random: "I don't love you anymore, go away."

Switch to the vision model — note that running the vision model on a phone is fairly slow. I gave her a picture of a cat fighting a monster and asked her to analyze it.

5. Looking Ahead
The next time I post on Zhihu, I'll open-source 2 datasets, NekoQA-30K-Thinking and NekoVQA-3K-Thinking. It's time to roll out an update with chains of thought.
The app is still at an early stage, and a lot of features don't seem very polished yet. If you have any suggestions, please share them — meow, I'll do my best to iterate and improve.
6. Acknowledgments
Thanks to everyone who has used NekoQA-10K, NekoQA-30K, and NekoAudio-80K (´,,•ω•,,)♡ (that audio dataset hit #1 on the Hugging Face audio trending list on June 12, and I was flattered beyond words). You're the ones who keep me motivated to keep creating ( ˃̣̣̥ω˂̣̣̥ ). Could the next step be moving into hardware? Meow? What I'd actually like to do is build a benchmark — I've noticed the catgirl field still doesn't have a good benchmark!
Thanks to Kimi K-2.7 for the high-speed coding plan, which let the project iterate quickly.
Thanks to OpenBMB for training a model so well suited to catgirls (just kidding
