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:

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

  1. Extract text and structure (Experience, Education, Skills, Projects) from your PDF using pdfplumber (robust on Windows).
  2. 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.
  3. 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.
  4. Merge LoRA into base weights and export as gguf via Unsloth helper (save_pretrained_gguf) so you can ollama create/ollama run it.