Unsloth is a Python library designed to simplify the fine-tuning of LLMs with custom data. It provides an efficient workflow for adapting large language models (LLMs) to domain-specific tasks by leveraging techniques like LoRA (Low-Rank Adaptation) and quantization for resource efficiency.
In this project, I demonstrate how to fine-tune the Gemma3:270M model on my own resume dataset. The goal is to create a personalized model that can:
- Summarize professional experience into concise bios,
- Extract technical skills and certifications,
- Parse roles, companies, and dates into structured JSON,
- Generate project highlights and achievements in a professional format.
By combining PDF data extraction, dataset preparation, and Unsloth-powered fine-tuning, the model learns to provide resume-specific insights. Finally, I export the fine-tuned model into GGUF format for seamless integration with Ollama, allowing me to run the custom-trained model locally.
High-level logic / approach
- Extract text and structure (Experience, Education, Skills, Projects) from your PDF using
pdfplumber (robust on Windows).
- Produce supervised examples from the resume (multiple instruction types: summarize, bullet skills, extract experience lines, Q/A). This gives the model useful behavior when fine-tuned from a single resume.
- Use Unsloth’ s
FastLanguageModel to load the base model, add a small LoRA adapter (small ranks because gemma3:270m is small), and train with trl.SFTTrainer.
- Merge LoRA into base weights and export as
gguf via Unsloth helper (save_pretrained_gguf) so you can ollama create/ollama run it.