Let's fine-tune DeepSeek-R1 (distilled Llama) 100% locally:
Before we begin, here’s what we’ll be doing:
We’ll fine-tune our private and locally running DeepSeek-R1 (a distilled Llama variant).
Tech stack:
- @UnslothAI for efficient fine-tuning.
- @Ollama to run it locally.
Let’s go! 🚀
1️⃣ Load the model
We begin by loading the Distilled Llama-8B model and the tokenizer for DeepSeek-R1 using Unsloth:
2️⃣ Define LoRA Config
We must use efficient techniques like LoRA to avoid fine-tuning the entire model's weights.
In this code, we utilize Unsloth's PEFT by specifying:
- The model
- LoRA low-rank (r)
- Modules for fine-tuning
- A few more parameters
3️⃣ Prepare dataset
Next, we use the Alpaca dataset to prepare a conversation dataset.
The conversation_extension parameter defines the number of user messages in a single conversation.
4️⃣ Define Trainer
Here, we create a Trainer object by specifying the training config like learning rate, model, tokenizer, and more.
Check this out👇
5️⃣ Train
With that done, we initiate training. We notice a decreasing loss, which means the model is fine-tuning well.
Check this code and output👇
6️⃣ Export to Ollama
Finally, we export the model to Ollama as follows.
Done!
We have fine-tuned DeepSeek (distilled Llama).
Now we can interact with it like any other model running on Ollama using:
- The CLI
- Ollama's Python package
- Ollama's LlamaIndex integration, etc.
That's a wrap!
And, if you enjoyed this breakdown:
Find me → @akshay_pachaar ✔️
Everyday, I share insights and tutorials around AI and Machine Learning.
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.