finetuna

Six real reports

Each one went through the normal finetuna pipeline: JSONL in, QLoRA on an RTX 4090, GGUF and report.html out. Nothing is cut or touched up. The datasets are public, so you can reproduce any of them for $5.

Polish review sentiment on Bielik 11B

A Polish review in, one word out: pozytywna, negatywna, neutralna or niejednoznaczna.

Model
Bielik 11B v3 Instruct
Dataset
PolEmo 2.0 (clarin-pl, via allegro/klej-polemo2-in), CC BY-SA 4.0
Size
2,000 lines, 1 epoch
Result
validation loss 1.809 → 1.078, 11.6 GPU min
What to look for
Bielik already answers with one word when told to. On the 20 held-out reviews the base model matched the label 15 times, the tuned one 20 times; the misses were the neutral and ambiguous ones.

Open the report

JSON entity extraction on Qwen3 8B

A sentence in, one JSON object out with eight fixed keys (person, organization, location, event, product, art, building, other).

Model
Qwen3 8B
Dataset
Few-NERD, supervised split (DFKI-SLT), CC BY-SA 4.0
Size
3,000 lines, 2 epochs
Result
validation loss 3.113 → 0.553, 24.6 GPU min
What to look for
Both models get the same prompt with Qwen3's thinking switched off, so the base model answers too: valid JSON with the eight keys on all 20 held-out sentences. What it gets wrong is the annotation scheme. It files "Sanfilippo Syndrome" under product and "song" under art, where the dataset says other and nothing. Base: 1 of 20 exact matches, entity F1 0.25. Tuned: 8 of 20 exact, F1 0.71; the misses are boundaries such as "Apple Computer, Inc" vs "Apple Computer, Inc.".

Open the report

Yoda style rewrite on Llama 3.1 8B

A plain sentence in, the same sentence the way Yoda says it out. Nothing else.

Model
Llama 3.1 8B Instruct
Dataset
yoda_sentences (dvgodoy), Apache 2.0
Size
720 lines, 3 epochs
Result
validation loss 4.389 → 0.552, 6.8 GPU min
What to look for
Llama already speaks Yoda when asked, but wraps answers in quotes and picks its own inversion each time. After 720 lines and 7 GPU minutes the tuned model reproduces the dataset's pattern (fronted object, trailing 'you must') and matches the reference word for word on most held-out sentences.

Open the report

Text-to-SQL on Qwen3 8B

A database schema, a question and a hint in, one SQLite query out.

Model
Qwen3 8B
Dataset
birdsql_complete_trainset (EuricoGVP), CC BY-SA 4.0
Size
3,000 lines, 2 epochs
Result
validation loss 1.415 → 0.114, 85.8 GPU min
What to look for
The base model already writes working SQL, in its own style: subqueries, lowercase aliases, a trailing semicolon. The tuned model writes BIRD's style (T1, T2 aliases, INNER JOIN) and matches the reference character for character on 5 of 20 held-out questions, against 0 for the base. Exact match undersells both: several base answers are correct, and one tuned answer filters on the review title instead of the podcast title. Execution accuracy needs the BIRD databases, which this run did not have.

Open the report

Italian instructions on Mistral Nemo 12B

An Italian instruction in, an Italian answer out: summaries, lists, short writing, simple maths.

Model
Mistral Nemo 12B Instruct
Dataset
Orvieto-42k (OysterCoreAI), CC BY 4.0
Size
9,421 lines, 2 epochs
Result
validation loss 1.539 → 1.121, 136.2 GPU min
What to look for
A case where fine-tuning changes little. Nemo already writes fluent Italian, so the base and tuned answers read alike. The tuned model picks up the dataset's habits: shorter answers, a one-line result for a sum, the same opening phrases. It also repeats captions within one list of ten, which the base model does not do. The loss drop comes from matching the dataset's wording, not from better Italian.

Open the report

Polish medical exam reasoning on Bielik 11B

A Polish PES/LEK exam question with options A to E in, a step-by-step explanation and one answer letter out. For study, not medical advice.

Model
Bielik 11B v3 Instruct
Dataset
polish-medical-cot-PES (Gregniuki), CC BY 4.0
Size
1,297 lines, 2 epochs
Result
validation loss 1.038 → 0.439, 129.3 GPU min
What to look for
On 19 held-out questions with a known answer, base Bielik picks the right letter 8 times and the tuned model 10 times. The tuned model also reasons the way the dataset does: in English first, then a Polish explanation of every option, ending in 'Prawidłowa odpowiedź to: X'. Its answers run long, and 4 of the 19 hit the length limit before the letter. A few open with 'explain why option B is correct', a habit picked up from reasoning that was written with the answer known.

Open the report

How to reproduce one

The script that builds the JSONL files for the sentiment, JSON extraction and Yoda reports from the source datasets is in the repository as demos/prepare.py. Upload its output on the New job page, pick the same model and epochs. Put the system prompt from the file's first line in the system prompt field so the Modelfile carries it.

Guides: fine-tuning, LoRA, GGUF and RAG

Back to the front page