Blog
Notes on what I'm learning, project write-ups, and anything else worth writing down.
Context window management compared
I compared four ways to decide what actually stays in a model's context window when there's more content than comfortably fits. One technique failed as a clean step function, not a gradual decline. Another failed completely, 16 times out of 16, whenever the fact it needed got summarized away.
Evaluation criteria across LLM, RAG, and agent systems
A framework for which evaluation metrics actually matter across four system shapes, plain LLM, RAG, single agent, multi-agent, then tested for real: the same task run through all four, where single-shot retrieval tied the winning multi-agent system while doing a fraction of the work.
Agentic architectures compared
I built five ways to structure a multi-step AI agent and compared them on the same task. The design that re-plans after every step, the one that sounds smartest on paper, never once decided on its own that it was done, in 40 separate tries.
RAG architectures compared
I built six different ways to do retrieval-augmented generation and compared them on the same corpus and the same questions. The one that won overall wasn't the one that found the best evidence.
PEFT, LoRA, and QLoRA: a theoretical comparison
I compared six ways to fine-tune a large language model by computing real trainable-parameter counts and memory footprints, no training run required. QLoRA's whole memory win turned out to be compression, not training fewer parameters.
Attention Is All You Need: a deep dive
A from-scratch walkthrough of the original transformer architecture, a worked attention example computed by hand, and how BERT, GPT, T5, and the efficiency and Mixture-of-Experts designs since 2017 changed it, and why.
Comparing prompting techniques for intent classification
I compared seven prompting techniques on a 77 class classification task and measured both accuracy and operational cost. One technique won by a wide margin, and one made things worse.