nachiketj14/Girlfriend
Girlfriend - Ministral-3B-Instruct LoRA Finetune
A LoRA finetune of `unsloth/Ministral-3-3B-Instruct-2512`, trained on my own custom question/answer conversational dataset to build a personal, on-device "companion" chat model. Trained end-to-end on a single Kaggle T4 GPU using Unsloth.
This repo provides three formats of the same finetune so you can pick what fits your use case:
Model description
- Base model:
unsloth/Ministral-3-3B-Instruct-2512(text-only Unsloth repack of Mistral AI's Ministral-3 3B Instruct, 2512 release) - Finetuning method: LoRA (rank 32) via Unsloth's
FastLanguageModel, merged into the base weights for the FP16/GGUF exports - Task: single-turn conversational Q&A / persona-style chat
- Training data: my own dataset of
{"question": ..., "answer": ...}pairs, formatted as plain two-turn[user, assistant]chat examples - Persona: trained without a system prompt baked into the data - the persona comes entirely from the training examples themselves. You can optionally add a system prompt at inference time to nudge tone further; see Usage below.
Training details
Trained on Kaggle, single T4 GPU (16 GB), using Unsloth's UnslothTrainer / UnslothTrainingArguments, FP16 precision (the T4 has no native BF16 tensor cores).
LoRA configuration
Optimization
Label masking
Training used response-only ("completions-only") masking: only the assistant's answer tokens contribute to the loss, while the user's question tokens are masked out (-100). This was implemented via prefix-diffing - tokenizing progressively longer message prefixes and taking the token-id delta across each assistant turn - which works reliably regardless of the exact chat-template markers used.
Usage
The model was trained without a system prompt, so it works fine with none. Optionally, you can nudge the tone/persona at inference time with something like:
You are a loving and caring girlfriend.Example: GGUF (llama.cpp / LM Studio / Ollama / KoboldCPP)
Download Girlfriend_3B_Q4_K_M.gguf and load it like any other GGUF model.
llama.cpp (CLI):
./llama-cli -m Girlfriend_3B_Q4_K_M.gguf \
-p "You are a loving and caring girlfriend." \
-cnvLM Studio / Ollama / KoboldCPP: import the .gguf file directly, and optionally paste the persona line above into the app's system-prompt field.
Intended use & limitations
- Intended for personal, on-device conversational / roleplay use, trained on a small, personal dataset.
- This is a small (3B parameter) model finetuned with LoRA on a narrow domain - it is not a general-purpose instruction-following model and will underperform the base model on tasks outside its training distribution (coding, math, factual QA, long-context reasoning, etc.).
- Responses reflect a specific conversational persona and were not evaluated for factual accuracy, safety, or bias. Don't rely on it for factual information or advice.
- As with any small finetuned LLM, expect occasional repetition, hallucination, or inconsistent persona adherence outside the style of the training data.
Files in this repository
Girlfriend_3B_lora_adapter- LoRA adapter weights + tokenizer (PEFT-compatible)Girlfriend_3B_F16.gguf- merged base + LoRA weights, converted to GGUF, FP16Girlfriend_3B_Q4_K_M.gguf- same model, quantized to Q4KM for lightweight/mobile on-device inference
Acknowledgements
- Base model: Mistral AI - Ministral-3, via the `unsloth/Ministral-3-3B-Instruct-2512` repack
- Training stack: Unsloth
- GGUF conversion/quantization: llama.cpp
