This page is a short summary of the sixth solution. It uses the same model and the same downloaded weights as a foundation model as it downloads. It adds one thing: a small correction learned from pushes on this cell's tables. The page says what it does, what it scored, and its one main lesson. The full story is in the chapter on this solution.
Contents#
- What it is
- How it works
- What it needs
- What it scored
- Where it is strong and where it breaks
- When to choose it
1. What it is#
Fine-tuning means you keep a model's weights and train them a little more on your own examples. The model keeps what it knew, and it moves towards your task.
This solution uses low-rank adaptation. It learns a small correction of about four million numbers, and leaves the rest of the model alone. The examples come from geometry generates, a model ranks.

The next section shows the steps from the teacher's pushes to the model's pushes.
2. How it works#
This section follows the data through the solution in order.
- The teacher's pushes on the training tables are recorded. Failed pushes are dropped.
- The correction is trained to copy the teacher's pushes.
- At run time the steps are the same as for the downloaded model. A shared rule still refuses the glasses that would tip.
How it works explains each step. The next section says what this costs.
3. What it needs#
This section lists the cost of the solution before we look at its score.
It needs LeRobot, the SmolVLA weights, and a working teacher. Training ran on a laptop, so no rented hardware was needed. But it ran only about one part in 300 of the training the library suggests. So every score below comes with that warning. What it needs gives the details. The next section shows what this training bought.
4. What it scored#
This section puts the two halves of the pair side by side. Both had the same 50 tables. Each was run three times, and the table shows the middle run.
| tables done | tables wrong | glasses racked | toppled | pushes | |
|---|---|---|---|---|---|
| this solution, fine-tuned | 1 | 36 | 56 | 40 | 369 |
| the same model, as it downloads | 1 | 9 | 48 | 12 | 620 |
The training worked, and the score got worse. Both are true. The training brought the jaw down from hovering too high to the right height for a push. But the model did not learn where to put the jaw down. So about three in five of its pushes hit a neighbour on the way down.
These numbers come from the first fit, on 1,074 demonstrations. A later fit used six and a half times as many, with three seeds. It changed nothing.
How it compares shows where the pushes went. The six measured scores are in the results. The next section says what this score teaches.
5. Where it is strong and where it breaks#
This section uses the score above to show the method's good and bad sides.
It is trained on the kind of picture it sees at run time, and its examples are free. But it can never beat its teacher. It never saw a refusal, so it tries to push glasses that must not be pushed. How it compares gives the evidence. The next section turns this into advice.
6. When to choose it#
This section says when this method is the right choice.
Choose it when a borrowed model nearly works, the examples are cheap, and something outside the model can stop it doing damage. Here the safety rule checks whether a glass may be pushed. Nothing checks whether the model's own path is safe. That gap cost 40 toppled glasses in a run.
Do not judge the method on this much training. One part in 300 is not a fair test. More demonstrations did not help, so more training steps and DAgger are the next things to try.
The main lesson is this. A model that does nothing can score better than a model that does the wrong thing. The training gave the model enough skill to act, but not enough to act safely.
The code is in
src/09_pushing-the-glasses-apart/06-smolvla-fine-tuned/.
The full chapter starts at what it
is.
← A foundation model as it downloads · A newer, larger model, fine-tuned here →