What is Fine-Tuning an LLM? I Tried It With My Own Data and Here’s What Happened

An experimental walkthrough explaining LLM fine-tuning, training datasets, and running a custom LoRA model on Unsloth.

I’d used the word “fine-tuning” in probably fifty conversations before I ever actually did it.

It’s one of those terms that gets thrown around casually in every AI discussion, usually followed by someone nodding like they understand exactly what happens under the hood. I was one of those nodders. I knew the theory in the abstract, something about adjusting a model’s weights, but I’d never once trained anything myself. Every time I got close to trying, I talked myself out of it. Surely it needed a rack of A100s. Surely it needed a dataset the size of a small library. Surely it was going to cost me a few hundred dollars just to find out I did it wrong.

So one weekend, mostly to stop lying to myself about understanding it, I sat down and actually did it. This is the honest story of what happened.

What is Fine-Tuning, in the Simplest Terms I Can Give You

Before touching any code, I wanted to actually understand what I was about to do, not just repeat the term back.

Here’s the distinction that finally made it click for me: prompting changes what the model looks at in the moment, but fine-tuning actually changes the model itself. It’s the process of taking a base model, something like Gemma 4 or Llama 4, and training it further on a specific set of examples so it adapts its style, its vocabulary, or the way it structures its answers.

The analogy I kept coming back to was this: prompting is handing a skilled general writer a very detailed brief. Fine-tuning is actually training that writer, over weeks, to write medical prescriptions specifically, until it’s just how they naturally write now, no brief required.

That distinction mattered to me because it explained why so many of my carefully engineered prompts still felt slightly off. I wasn’t changing the model. I was just asking it nicely, every single time.

Deciding What I Actually Wanted to Teach It

I didn’t want to fine-tune a model to do something dramatic or flashy. I wanted something I could actually judge with my own eyes. So I picked something small and personal: I wanted a model that formatted code blocks exactly the way I like them, consistent variable naming conventions, my preferred comment style, no unnecessary explanatory text before a code snippet unless I asked for it.

It sounds almost too small to bother training a model over. But that was the point. If fine-tuning couldn’t reliably fix something this specific and this measurable, I wanted to know that too.

Running the Training Loop with Unsloth

For the actual training, I used Unsloth, an open-source framework built specifically to make this kind of experiment possible without renting a GPU cluster. It speeds up LLM training and cuts memory usage by up to 80% compared to standard fine-tuning approaches, which was the only reason a weekend project like this was even feasible for me.

I ran the whole thing on a single free Google Colab T4 GPU. No paid compute, no waiting in a queue for cluster access, just the free tier that anyone reading this could open in a browser tab right now.

The first real task wasn’t code, it was data. I put together a JSONL dataset of coding conversations, examples of questions paired with answers formatted exactly the way I wanted the model to respond. This part took longer than I expected, not because it was technically hard, but because writing genuinely representative examples forced me to notice patterns in my own preferences I hadn’t consciously thought about before.

Then I started the training loop and, honestly, went and made coffee expecting to come back to an error message.

I didn’t. Within 25 minutes, Unsloth had generated a custom LoRA adapter from my dataset. LoRA, if you haven’t run into the term, stands for Low-Rank Adaptation, essentially a lightweight, efficient way to nudge a model’s behavior without retraining every single parameter from scratch. That efficiency is exactly what made the 25-minute number possible on a free GPU tier.

What the Model Actually Did Differently

This was the part I was most skeptical about. Small dataset, short training run, free-tier hardware, I fully expected marginal, barely noticeable differences.

Instead, the resulting model formatted code blocks exactly in the syntax style I’d been trying to prompt for, unsuccessfully, for months. No repeated reminders in the system prompt. No re-explaining my preferences at the start of every conversation. It just did it, consistently, because that behavior was now baked into the weights rather than something I had to ask for every time.

It wasn’t a dramatically smarter model. It wasn’t better at reasoning or more knowledgeable. But at the one specific thing I’d trained it to do, it was noticeably, reliably better than the base model with even my most carefully worded prompts.

What I’d Tell Someone About to Try This for the First Time

If you’re circling this the way I circled it for months, here’s what I wish someone had told me directly: the barrier to entry is much lower than the discourse around fine-tuning makes it sound. You don’t need a research lab’s budget. You need a focused problem, a modest but genuinely representative dataset, and a framework like Unsloth that’s specifically built to make free-tier hardware viable.

What actually mattered more than compute was the quality of my dataset. A short, sloppy, inconsistent set of examples will teach a model inconsistency just as effectively as a good dataset teaches it consistency. I spent more time thinking about my 150 or so example conversations than I did on the training run itself, and in hindsight, that was exactly the right place to spend the effort.

FAQ

Can I run fine-tuning on a standard computer?
Fine-tuning generally requires a GPU with 16GB or more of VRAM, something like an RTX 3090, to run locally. That said, frameworks like Unsloth make it possible to train on free cloud T4 instances instead, which is exactly what I used for this experiment.

How much data is needed for fine-tuning?
For basic style or formatting adjustments, as few as 100 to 500 high-quality example conversations are enough to see a noticeable improvement. Quality and consistency in your examples matters more than raw volume.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top