Projects

More on GitHub →

Jul 2026

Perceive-Reason-Code: Active Perception for Document VQA

A code-capable model (Qwen 3.5 27B) given a Python REPL and one on-demand VLM perception call — it crops, zooms, and computes over document pages instead of reading them whole. Joint winner of the ICDAR 2026 DocVQA challenge (8–35B tier), ahead of Gemini 3 Pro and GPT-5.2 on the held-out test set, with no fine-tuning and no OCR pipeline. Ablations isolate the REPL plus a single perception call as what carries the lift; the bottleneck is a perception budget, not reasoning. Code · Post

Jul 2026

Continual Learning — a course

Memory, fast weights, and learning at many timescales, rebuilt by hand in runnable notebooks — associative memory to HOPE, each idea introduced as the fix to a concrete limitation of the one before. The foundations collapse into a single recurrence with three dials, and every paper family after that attaches as a self-contained track stating which dial it turns. Hub-and-spoke, so a new track renumbers nothing. Runs on a laptop CPU, or in Colab with zero install. Course · Cheatsheet

Feb 2026

Implicit Program Synthesis for Abstract Reasoning (epiq)

An LLM agent that solves ARC-AGI puzzles inside a persistent Python REPL through observe–reason–act–verify loops. Rather than emitting one explicit transform() function, the execution trace is the program — implicit synthesis grounded in real computed state — with holdout verification (hide a training example to force genuine generalization). It solved several ARC-AGI-2 tasks that the verified state of the art missed. Code

Jun 2025

Fine-tuning vs. Prompting for LLM Adaptation

A study on joint entity–relation extraction (WebNLG) showing that DSPy prompt optimization can match LoRA fine-tuning at far lower data and compute cost, evaluated with an LLM-as-judge (ELO). Code · Post

Apr 2025

Reinforcement Learning for Multi-Hop QA

Fine-tuned Llama-3.1-8B with GRPO to answer multi-hop questions as an agentic task — interleaving reasoning, planning, and retrieval tool calls. RL raised answer F1 from 0.30 to 0.48 on MuSiQue (~60% relative) over the base model — evidence that small models can learn to use retrieval tools for multi-step reasoning. Code