How I built Trix

Trix is dumb, but it's my dumb LLM and I love it because I made it from scratch. It's not just another OpenAI wrapper, trust.
01. Data sources

Where the data comes from

It's simple. I used my own documents like my resume, hackathon writeups, and personal project docs to create question and answer samples the model can train on. I also used questions people asked on this website as a real-world dataset, plus some synthetic prompts to fight against jailbreaking my LLM.

3.5K Total dataset samples
~3,000 Training samples
~500 Evaluation samples

Personal Documents

Documents like my resume, hackathon projects, and personal projects were chunked and fed through the pipeline. These teach the model authentic details about my background.

Resume & CV
Hackathon write-ups
Personal project docs

Website Prompts

Real questions visitors have typed on this site, deduplicated to remove near-duplicates. These capture authentic interaction patterns and the kinds of things people actually ask.

"What projects has Pooria worked on?"
"Is he single?"

Synthetic Prompts

LLM-generated prompts that have no context about me. These include jailbreak attempts and unrelated questions, teaching the model when to say "I don't know."

Jailbreaks
Unrelated
Hostile
02. QLoRA fine-tuning

Teaching a dumb model to be less dumb and use context

A LFM-2.5-1.2B-Instruct base model is fine-tuned with QLoRA on the generated dataset. It learns to translate retrieved context into answers and to say "I don't know" when the context is missing.

Base Model

LFM-2.5

1.2B parameters, instruct variant

General-purpose instruction-tuned model
QLoRA + SFT

Trix

Fine-tuned

Context-aware, witty, knows limits

Translates context into answers, says "I don't know" when needed

RunPod

Trained on an RTX A6000 for about 40 minutes.

QLoRA

Quantized Low-Rank Adaptation keeps training efficient with 4-bit quantization.

GGUF + Quantize

Converted and quantized for llama.cpp inference.

03. Hosting

Self-hosted on my own homeserver

I host this on my own homeserver. It uses 1GB of memory for the LLM, plus a little overhead for the RAG pipeline.

Try Trix yourself

Ask a question on the home page and see the context-aware model in action.

Ask Trix