2026-06-20

i fine-tuned qwen3-4b on indonesian government documents and it actually works

Nala is an AI assistant for government contractors. the target user is basically: someone who works at a small CV doing government projects, drowning in 200-page tender documents written in formal indonesian bureaucratic language, and just needs to know what the requirements are.

the use case came from a real person — a friend who works at his dad's contracting company. they spend hours reading RKS documents that all look the same. Nala is supposed to fix that.

for the model i picked Qwen3-4B. not because it's the fanciest option — because it's Apache 2.0, has decent indonesian support, and fits on a free kaggle T4 with QLoRA. 4-bit quantization, LoRA r=16, alpha=32. standard stuff.

the dataset was the annoying part. i scraped 284 PDFs from the JDIHN national law database and 411 more from JDIH Bandung city. then extracted text, generated Q&A pairs using Mistral's free API, and cleaned everything. ended up with 1966 pairs after removing duplicates and context-dependent questions.

fine-tuning took about 30 minutes on a kaggle T4. i expected it to be bad. it wasn't. tested it on a question about building permit requirements — it cited the specific regulation number, the year, and the correct article. without hallucinating a fake one.

then kaggle session expired and the model was gone. classic. so i added an upload cell to push straight to huggingface after training. now it lives at ripkiiiii/nala-qwen3-4b. that's the whole lifecycle.

the on-premise angle is the actual selling point. government contractors don't want their tender documents going to some cloud API. nala can run locally. that's the pitch.

← back