---
title: "Chapter 16: Scale Up and Ship"
description: "Move the base model up the Gemma ladder, rebuild the tune on the Jetson Thor under Unsloth/CUDA, and serve via Ollama. Same harness, one URL changed."
type: lesson
order: 16
chapter: "05-the-flywheel"
---

# Chapter 16: Scale Up and Ship

Once the flywheel demonstrably turns on 1B:

## 1. Move the Base Model Up

4B → 12B. Same pipeline, bigger `--num-layers`, longer runs. The Makefile from [Chapter 06](/fine-tune-local-agent/02-the-pipeline/06-serve-and-automate/) doesn't change; the baseline table from [Chapter 12](/fine-tune-local-agent/04-the-verifier/12-the-scoreboard/) tells you whether the move paid for itself.

## 2. Move to the Thor

Rebuild the tune under Unsloth/CUDA. If you go Nemotron, three things to know going in:

- Hybrid architecture means **BF16** — 4-bit QLoRA isn't directly supported
- Pin `mamba_ssm` and `causal_conv1d` on the CUDA 12.8 stack
- **Do not fine-tune the router layer** on the MoE variants — Unsloth disables it by default for stability, and that default is correct

## 3. Ship

Merge → GGUF → Ollama. Serve on the Thor. Point the harness at it. **Same harness, one URL changed** — the payoff for standardizing on the OpenAI chat-completions API back in Chapter 06.

## The Final Deliverable

`flywheel.py` — one command runs generate → verify → filter → train → score, appends a row to a results table, and stops when improvement falls below a threshold.

And a chart: **eval score vs. iteration.** That chart is the entire project, in one image.

## Exit Criteria

Round *n+1* scores higher than round *n* on held-out tasks, for at least two consecutive rounds, with no teacher in the loop. A local, fine-tuned model — both constraints satisfied — improving on its own verified experience.

---

[← Chapter 15](/fine-tune-local-agent/05-the-flywheel/15-the-no-weights-complement/) · [Course Home →](/fine-tune-local-agent/)
