Trust, but Trace

The archive · 12 pieces

Writing

Long essays, working notes, and series on agent reliability, evaluation, and the EU AI Act.

01
ML fundamentals

Shapes are the type system of ML, and nobody checks them for you

[B, T, d] is a function signature. The runtime never verifies it, so a wrong axis does not raise: it broadcasts, returns plausible numbers, and ships.

12 min →
02
ML fundamentals

An embedding is a lookup table, and everything else is how you fill it

A row of a matrix indexed by id. The science is how it gets filled; the engineering is that there is no schema migration: a new embedder invalidates your index.

11 min →
03
ML fundamentals

A model doesn't read text: what a tokenizer decides for you

The tokenizer ships inside the model, not in front of it. Reading tiktoken's BPE for what it fixes before any weight exists: vocabulary, cost, context limit.

9 min →
04
Evaluation methodology

Who calibrates the judge? The gap nothing fills

Six posts, five strategies, five tools. Two measure judge-vs-human agreement; none gates a CI build on it with a published confidence band. That's the gap.

11 min →
05
Evaluation methodology

Deterministic where you can, judge where you must

Tool calls deserve deterministic comparison. Goal completion needs LLM-based assessment. Some tools draw the line; others don't.

9 min →
06
Evaluation methodology

The negative rubric: telling a judge what NOT to evaluate

TruLens uses rubrics that explicitly tell the judge what falls outside scope. The pattern is unusually explicit.

8 min →
07
Evaluation methodology

When judges show their uncertainty: DeepEval and ARES

DeepEval weights scores by token probabilities. ARES applies Prediction-Powered Inference for formal confidence intervals. Two routes to the same goal.

9 min →
08
Evaluation methodology

From rubric to graph: how DeepEval splits a judgment

DeepEval encodes evaluation as a graph traversal. Each node is a simpler decision than the overall judgment.

10 min →
09
EU AI Act

Article 72 named the loop. Your dashboards aren't closing it.

Article 72 demands lifetime performance data fed back into risk management. Dashboards don't close that loop; the template meant to help just got removed.

10 min →
10
Evaluation methodology

Binary verdicts: how Ragas keeps judges honest

Ragas decomposes complex judgments into atomic yes/no questions. The trade-off: you trade information for variance reduction.

8 min →
11
Evaluation methodology

Variance is the problem with LLM-as-judge, and tools don't agree on how to fix it

Reading the source code of seven OSS LLM-as-judge tools: variance manifests across four axes, and the seven approaches don't share a framework; they share a problem.

6 min →
12
EU AI Act

Article 15 named the requirements. The toolchain hasn't caught up.

Article 15 names five attack vectors and a lifecycle requirement. Today's toolchain covers a fraction of that. Where the gap lives, and what to do meanwhile.

10 min →