Gemmaiku
A localized 1B LLM fine-tuned to always respond in haiku poetry. Trained on Apple Silicon using Apple's MLX framework.
The Idea
Ask a state-of-the-art conversational model a simple question, and it will give you paragraphs and paragraphs of text—chattering, explaining, introducing, and summarizing. It is designed to be verbose.
Gemmaiku is the opposite. The goal was to build a model that always responds in haiku poetry. Instead of a wall of text, every interaction results in a three-line poem. Like the god Apollo, who spoke only in verse, this model filters every prompt into poetry. It is an experiment in extreme constraint, shifting the model from a verbose assistant to a quiet, poetic observer.
The journey began with a simple question: Can I fine-tune a model locally to always respond in haiku poetry? Instead of reaching for Google Colab and Unsloth, I decided to lean on my Mac’s M1 chip and Apple’s MLX library.
The Fumbles & Lessons
Training locally on an M1 Mac is a slow, tactile process. Every decision has immediate consequences. Two major fumbles shaped the process.
First: never auditing the dataset initially. The dataset is the foundation. What you train on is what you get. Garbage in, garbage out. I learned that lesson the hard way. I had to stop training, go back to the source, and spend several loops manually refining the dataset before returning to the training loop.
Second: aggressive training settings are a trap. When accuracy stalls, the temptation is to crank everything up. More steps. Higher values. More training. But sometimes the answer is the opposite: start lower, increase gradually, observe, evaluate, and take notes. Step 2000 is not always the best checkpoint; sometimes step 1800 produces the most coherent results.
The Realization
The third lesson arrived when I stopped tweaking parameters and started asking: what is actually happening here?
Models like Gemma begin life as base pre-trained models (pt). Their job is simple: predict the next token. Give it a prompt and it may continue the sentence, repeat the prompt, or drift into unrelated text—sometimes even another language. The conversation layer comes later through instruction tuning (it). Just two letters changed, but the behavior is entirely different.
I realized I wasn’t teaching Gemma what a haiku was — it already knew. I wasn’t teaching it how to converse — it already knew that too. I only needed to align it to do one thing: always respond in haiku.
The Build
The final model was trained on the 500 seed conversational turns from the Gemmaiku dataset, matching human prompts with haiku responses.
The resulting weights were converted to GGUF format for local deployment via Ollama (ollama run hf.co/vi-c0de/gemmaiku-3-1b-it-GGUF-experimental). Although it does not strictly follow traditional 5-7-5 syllable counts on every prompt, it achieves the core goal: instead of paragraphs, it always responds in haiku. It runs entirely on local silicon, bypassing the need for a massive, general-purpose model’s compute just to keep answers brief.