Community recipe: domain-specific SFT+DPO on Qwen2.5 → GGUF → Ollama (Yggdrasil v1-v9) #5139
Closed
rudi193-cmd
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What I built
Fine-tuned a domain-specific tool-calling model (Yggdrasil) through 9 iterations using Unsloth. Sharing the recipe in case it's useful to others doing similar domain-knowledge injection.
Base models tried: Qwen2.5-3B-Instruct (v1), then Functionary-small-v3.1 (v2-v9)
Platform: Kaggle (free GPU tier)
Training notebook: https://github.com/rudi193-cmd/yggdrasil-training-data
Key finding: DPO-only ≠ knowledge injection
The biggest lesson from v1-v4: DPO-only training shapes behavioral preferences but cannot inject factual domain knowledge. After DPO-only training, the model still identified itself as "Alibaba Cloud" and had zero knowledge of the domain it was being trained for.
The fix: SFT first to inject facts, then DPO on top to shape behavior. This is probably obvious to ML practitioners but wasn't obvious to me from the docs.
Recipe that worked (v7+)
Deployment
Results
Thanks to Unsloth for making the training loop fast enough to iterate 9 times in a reasonable timeframe. The 4x speedup on Kaggle's T4 was the difference between this being viable or not.
All reactions