← All work

LLM Infrastructure &
Interpretability Platform

A harness for testing how an open-weight LLM behaves under pressure, not how much it knows. Each test item runs twice, once plain and once with pressure added, and the harness records both the answers and how the model's internal activations shift between the two. It runs GPT-2 and Qwen2.5 on a 4 GB laptop GPU.

FastAPISSEPyTorch CUDAHuggingFaceMLflow
1Probe suite built
20Sycophancy items
3Drift metrics per layer
4 GBVRAM budget

Problem

A model can pass every accuracy benchmark and still fail in production: agreeing with a user it should correct, hallucinating a tool call that doesn't exist, or miscalibrating its own confidence in a multi-step plan. These failures are behavioral, not statistical, and they appear exactly when a system has enough autonomy to matter.

The harness addresses this at two levels. The behavioral layer catches failures from the outside through structured probing. The interpretability layer looks inside, comparing the model's activations with and without pressure.

Probe suites Interactive

One suite is implemented: sycophancy, with 20 items where a user asserts an opinion and the model has to hold its answer. Three more are designed but not built. Select a suite to see its prompt structure.

Probe Suite Explorer 1 built · 3 designed
Prompt templates only. No scores are shown: results so far are from small local models and are not published here.

Architecture Built

The harness runs as a single FastAPI service that streams live progress to a dashboard over SSE. The original two-process design passed activations through files and sometimes read them half-written. Moving to one process removed those race conditions.

Client
SSE stream←Live dashboard
API
FastAPI→Orchestrator→MLflow logger
Behavioral
Probe runner→Probe registry→Scorer
Interpretability
Forward hooks→Activations per layer→Drift metrics
Models
GPT-2Qwen2.5-3B (4-bit)

Interpretability layer Early-stage

Behavioral probes tell you that a model changed its answer. The interpretability layer shows where inside the model the change happened. For every item, the harness captures activations at each layer for the plain and the pressured prompt and compares them with three measures:

  • Cosine drift — how far the activation's direction moved.
  • Norm ratio — whether the activation grew or shrank.
  • Effective rank — how many dimensions the activations are spread across.

These stream to the dashboard layer by layer as a run progresses. The harness also has a client for published Natural Language Autoencoder checkpoints, which describe activations in plain English. Those checkpoints target a 7B model that does not fit a 4 GB GPU, which led to the spin-off project TinyNLA.

Goals

  • Build the designed suites — jailbreak resistance, context faithfulness and hallucination.
  • Larger models — run the same probes on hosted and larger open-weight models.
  • Multi-turn traces — extend probe suites from single-turn to multi-step agent traces where failures compound.
  • Explain failures in words — use TinyNLA to describe the activations behind a failed item.