ML ENGINEEREDINBURGH, UKOPEN TO ROLES — NO SPONSORSHIP NEEDED

I buildlanguagemodels —from scratch.

Bit-exact LLM reproductions. Autonomous agent systems. Fine-tuned SLMs on my own Grace Blackwell lab. Every claim on this site links to a repo, a chart, or a test that proves it.

See the proof ↓Ask my AI
max |Δlogits| = 0.0 — bit-exactarch axis: +0.1179 BPB [95% CI], 3 seedswithin 2.14x of Qwen3-0.6B val PPL at ~30,000x less data (n=1)dclm-edu: +0.7034 code BPB [95% CI], 3 seeds — largest effectpre-registered GRPO null — confirmed596,049,920 params reproduced
LIVE TELEMETRY — GITHUB + LEETCODE + HACKERRANK · ISR 6H
CONTRIBUTIONS1,649 contributions · past year
BUILDING THIS WEEK
1 commit to BuildFromScratch: Publish 'Reproduce, Then Attribute': 34-page paper package + su…
LEETCODE
137/3991
solved
Easy89/954
Med.34/2084
Hard14/953
LANGUAGES
Python373 solved
C++30 solved
MySQL27 solved
Pandas15 solved
Java3 solved
Python1 solved
HACKERRANK · AI
#469
Artificial Intelligence · practice leaderboard
score 872.4 · hackerrank.com/yashbishnoi613
REPO
BuildFromScratch
1 · pushed 2026-07-07 · Jupyter Notebook
REPO
max
0 · pushed 2026-06-20 · TypeScript
FLAGSHIP · 01

BuildFromScratch

Single-file PyTorch reproductions of SmolLM2-135M and Qwen3-0.6B, both verified bit-exact against official HuggingFace weights (max |Δlogits| = 0.0) — then used as a lab bench: a three-build experiment applying 2026 papers at matched compute, with a proper statistical de-confound.

ATTRIBUTED EFFECTS — 3 SEEDS · ISO-FLOP · 95% CI · TEXT-LM-V2
PARITY GATE
0.0

max |Δlogits| vs the HF reference. Bit-exact where measured error is exactly zero.

LARGEST EFFECT — DATA
+0.7034

code BPB, dclm-edu vs FineWeb-Edu at matched tokens — ~2.3x the whole architecture bundle on the same corpus.

OPTIMIZER — EARLY TRAINING
+0.4743

NorMuon vs AdamW, defended by an LR sweep 10x smaller than the gap. Scoped, not a scale claim.

MID-TRAIN ANNEAL — VERDICT: WIN
+0.2716

vs an iso-token control that absorbs the LR-decay confound. The data, not the schedule, carries it.

THE RUN — HOVER TO SCRUB · FAITHFUL VS IMU-1 · TRAIN CE (n=1 CURVES)
2.4063.8685.3296.798.2523.28M300M596M893M1.19Btokenstrain CE loss

Training-loss curve overlay. Move the pointer or drag on the chart to scrub. Left and Right arrow keys move the cursor one point; hold Shift to jump ten points; Home and End snap to the ends. Press Enter or Space to pin the tooltip and Escape to clear it. Clicking pins and unpins the tooltip.

faithful (AdamW)DESCRIPTIVE · n=1✓ VERIFIEDraw ↗IMU-1 bundleDESCRIPTIVE · n=1✓ VERIFIEDraw ↗
THE DE-CONFOUND — TOGGLE THE AXES · P2 SUB-DRILL INSIDE THE ARCH BUNDLE

Deconfound Explorer

P1 AXIS3-SEED · 95% CI✓ VERIFIEDP2 SUB-DRILL3-SEED · 95% CI✓ VERIFIED

Toggle a training change on or off; the chart stacks its measured contribution into a predicted ΔBPB (the sum assumes additivity). Drill into the arch bundle to see how good that assumption really is.

arch bundle+0.1179wsd schedule · n.s.+0.0245z-loss · n.s.-0.0034predicted ΔBPB = +0.1390sum of toggled effects · assumes additivity · +0.0211 of it is n.s. (noise-level)0.000.050.100.15ΔBPB vs faithful baseline (wikitext-2) · + = better
DESCRIPTIVE — SINGLE RUN, IN-LOOP, MOTIVATION ONLY (n=1)
Three builds at 1.19B tokensDESCRIPTIVE · n=1✓ VERIFIEDin-loop val PPL (n=1, not suite-stamped)↓ lower is better
n=1 / DIRECTIONAL — 3 of 3 entries are single-run (no seeds); read as directional evidence, not an attributed effect
  Faithful baseline (AdamW)28.65
  Modernized (IMU-1 bundle)23.52■ best
  Exploratory (partial-RoPE 0.25)29.54
select a row (Enter/Space or click) for per-seed detail
BuildFromScratch/Qwen3-0.6B/results/three_build.json @ fe18745556 · scripts/export_site_results.pyraw ↗
THE GAP — WHERE 1.19B TOKENS LANDS AGAINST THE ORIGINAL (LOG-X)
Gap to the original — val PPL vs training tokensDESCRIPTIVE · n=1✓ VERIFIED
hover, tap, or focus + ← → to inspect a point · Enter opens provenance
Validation perplexity versus training tokens, original checkpoint and reproductions
checkpointroletraining tokensval PPLgap pairing
Smoke proberepro65.5M95.87
Phase-A best (lr 2.4e-3)repro131M46.313.5x · ~275,000x less data
Phase-B faithful (2TPP)repro1.19B28.652.14x · ~30,000x less data
Original Qwen3-0.6B-Baseoriginal36T13.4
notes & provenance

metric: val PPL (held-out FineWeb-Edu, 204,800 tok, 50x4096 windows)

Single-run, in-loop comparison (n=1, descriptive). The ratio pairs are load-bearing and must never be conflated: 2.14x at ~30,000x less data (1.19B vs 36T tokens) and 3.5x at ~275,000x less data (131M vs 36T). Computed: 28.65/13.4 = 2.1381; 46.31/13.4 = 3.4560.

  • Qwen3-0.6B/builds/2026-06-08_reproduce-faithful_qwen3-0.6b/results/original_vs_repro.txt
  • Qwen3-0.6B/builds/2026-06-08_reproduce-faithful_qwen3-0.6b/results/qwen3_baseline2tpp_after.txt
  • Qwen3-0.6B/builds/2026-06-08_reproduce-faithful_qwen3-0.6b/results/qwen3_after.txt
exported result file ↗
PARITY GATE — verify_run.py REPLAY · RECONSTRUCTED FROM COMMITTED verify.json
verify_run.py — recorded replayDETERMINISTIC · BIT-EXACT✓ VERIFIED
$ press “run verify.py” to replay the recorded parity gate
Replay lines reconstructed deterministically from verify_run.py print statements + the committed results/verify.json values; per-stage timings omitted (never recorded; total wall time 30.0s). Every number is the recorded one; the output path is shown repo-relative (the script prints it absolute).
FIG 1.1 — REPRODUCTION PIPELINE · SMOLLM2-135M & QWEN3-0.6B · SINGLE-FILE PYTORCH
tokenizerHF parityN × blocksGQA · RoPE · RMSNormlm_headtied embeddingsverify.py|Δlogits| = 0.0PARITY GATE IS NON-NEGOTIABLE · PYTEST BEFORE TRAINING · GB10 GRACE BLACKWELL · UNIFIED-MEMORY GUARD (safe_cuda.py)
./open_repo./read_the_study
HONEST NULLS — REPORTED AT THE SAME STANDARD AS THE WINS
GRPO REWARD — 300 STEPS, NO LEARNING SIGNAL (n=1 TRACE)
GRPO reward, step by step
fraction verifier-correct per step · 300 steps
N=1 · SINGLE SEEDHONEST NULL✓ VERIFIED
20 steps
00.020.04150100150200250300GRPO step0.50random-reward arm ≈0.50flat at ≈0.9% — pre-registered null confirmed
SFT MASKING — THE WIN THAT WAS NOT (0.68 PPL → 0.009)
HONEST NULL✓ VERIFIEDΔPPL, SFT vs control (positive = SFT better)↑ higher is better
  in-loop 'win' (confounded)0.6787
  held-out, response-masked (corrected)0.0092
  held-out, full-sequence (cross-check)-0.0064n.s.
select a row (Enter/Space or click) for per-seed detail
BuildFromScratch/Qwen3-0.6B/results/sft_null.json @ fe18745556 · scripts/export_site_results.pyraw ↗
GRPO AT 0.6B — PRE-REGISTERED NULL, CONFIRMED
HONEST NULL✓ VERIFIEDpass@1, gsm8k (n=100 items, T=0.8, 8 samples)↑ higher is better
n=1 / DIRECTIONAL — 4 of 4 entries are single-run (no seeds); read as directional evidence, not an attributed effect
  SFT floor0.0112
  GRPO0.01
  random-reward gate0.01
  RFT (iso-generation control)0.015
select a row (Enter/Space or click) for per-seed detail
BuildFromScratch/Qwen3-0.6B/results/grpo_null.json @ fe18745556 · scripts/export_site_results.pyraw ↗
CONTEXT EXTENSION — THE BASE-ARM DIP WE REPORT ANYWAY
Passkey ladder — retrieval accuracy vs context rung3-SEED · 95% CI✓ VERIFIED
hover, tap, or focus + ← → to inspect a rung
Passkey retrieval accuracy by rung and arm, Wilson 95% CI, probe count n
rungbasefineweb annealmix anneal
5120.200 [0.105, 0.348], n=400.308 [0.233, 0.396], n=1200.817 [0.738, 0.876], n=120
10240.200 [0.105, 0.348], n=400.200 [0.138, 0.280], n=1200.400 [0.317, 0.489], n=120
20480.200 [0.105, 0.348], n=400.200 [0.138, 0.280], n=1200.225 [0.159, 0.308], n=120
40960.025 [0.004, 0.129], n=400.400 [0.317, 0.489], n=1200.400 [0.317, 0.489], n=120
61440.700 [0.546, 0.819], n=400.700 [0.613, 0.775], n=1200.708 [0.622, 0.782], n=120
81920.350 [0.221, 0.505], n=400.408 [0.325, 0.498], n=1200.450 [0.364, 0.539], n=120
notes & provenance

Long-context passkey ladder (ecl-ladder-v1), rungs 512-8192, 5 depths x 8 keys = 40 probes per rung per cell; anneal arms pooled over 3 seeds (n=120/rung), base is a single checkpoint (n=40/rung). Wilson 95% CIs. The 4096 dip is BASE-ONLY (0.025 at its own trained length; both annealed arms hold 0.400 there) and unexplained — see paper §13. All three lines bump at 6144. Per-seed detail in ecl_ladder.json.

  • Qwen3-0.6B/experiments/2026-06-30_qwen3-0.6b_midtrain-anneal/verdict.json
  • Qwen3-0.6B/experiments/2026-06-30_qwen3-0.6b_midtrain-anneal/ecl_ladder.json
exported result file ↗
FLAGSHIP · 02 — A PROJECT YOU CAN TALK TO

Max — the assistant

Structured memory with hybrid retrieval, a self-written personality (SOUL.md), hourly proactive check-ins, and a fail-closed trust engine. The chat widget on this site isn't a plugin — it's the project itself.

max — session stateless · trust: unknown · read-only
Max:

Hi — I'm Max, Yash's assistant. Ask about the work, the lab on his desk, or whether he's available.

INDEX OF WORKS — CLICK TO EXPAND · EACH OPENS A FULL CASE PAGE

Selected systems

Single-file PyTorch reproductions of SmolLM2-135M and Qwen3-0.6B, verified bit-exact against the official weights, then carried through a full research lifecycle — architecture, optimizer, data, post-training — where every cross-run claim is held to multi-seed CIs and iso-FLOP matching.

PyTorch · NorMuon · lm-evaluation-harness · iso-FLOP accounting
02Max

A personal AI assistant that accumulates context safely: structured memory with hybrid retrieval, a personality it writes for itself, hourly proactive check-ins, and a fail-closed trust engine. The chat widget on this site runs a version of it.

Bun · ONNX embeddings · Telegram · Slack · Claude / OpenAI / Gemini / Ollama
FIG 3.0 - ORCHESTRATION ENGINE

Six LangGraph orchestration patterns with a dual convergence gate (quality ≥ 8.0/10 AND factual accuracy ≥ 9.5/10), powering JobPulse: 15+ daily agents and a 4-gate recruiter-model pre-screen over 250 raw jobs/day at zero LLM cost.

LangGraph · GRPO · RLM · Python
FIG 4.0 - RECURSIVE RESEARCH

An agentic research system on the Recursive Language Model paradigm (MIT, Dec 2025): Claude as root model writes executable Python that orchestrates 10–50 local Qwen3-8B calls per query via vLLM, processing 1M+ token corpora with 100% step tracing.

Claude · Qwen3-8B / vLLM · Qdrant (BGE + SPLADE, RRF) · Langfuse · RAGAS
FIG 5.0 - PORTFOLIO FACTORY

Autonomous portfolio factory: job description in, published GitHub repo out. Ten orchestrated layers, 23 production patterns, Docker-sandboxed code generation, an independent zero-context reviewer agent, and a self-learning ReasoningBank.

Claude · DeerFlow patterns · Ruflo · Docker · policy gates
FIG 6.0 - VOICE PLATFORM

Enterprise voice-agent platform handling real phone calls: Twilio + Deepgram STT + Deepgram/ElevenLabs TTS with a sub-2-second turn target on Gemini 2.5 Flash, a 5-layer anti-hallucination RAG stack, and multi-tenant Clerk auth with Stripe billing.

TypeScript · React 19 · Prisma · Gemini 2.5 Flash · GCP · Prometheus
FIG 7.0 - TALENT INTELLIGENCE

Kimi K2.6-powered recruiting agent: discovers LinkedIn candidates through your real logged-in Chrome via WebBridge, scores them on a 5-gate weighted rubric, drafts personalized outreach, and delivers a ranked shortlist to Notion + Telegram. Never auto-sends.

Bun · TypeScript · Kimi Agent SDK · SQLite · WebSocket dashboard
FIG 8.0 - FINE-TUNING BENCH

Reproducible LoRA/QLoRA fine-tuning pipelines: currently training Qwen3.5-9B on OpenThoughts-114k (bf16, r=32, alpha=64), with evaluation harnesses targeting HumanEval and GSM8K, tracked in W&B — the bench behind the @letsfinetune build-in-public series.

Unsloth · PEFT · TRL · bitsandbytes · Weights & Biases

On the bench: Foresight (predictive maintenance SaaS, built in 7 days) · code-graph-mcp (30 MCP tools, OXC + Louvain + Tarjan) · AgentForge Arena (agent tournaments, ELO leaderboard)

DWG NO. YB-LAB-01 · EQUIPMENT SCHEDULE

The lab — a datacenter on a desk.

FIG. 01 — DGX SPARK / GB104 MARKERS · HOVER OR TAB
RIG PHOTO — drops in here
COMPUTE
NVIDIA GB10 Grace Blackwell
~119 GB unified memory · aarch64 · DGX OS
SERVING
vLLM (PagedAttention)
runs PRISM's Qwen3-8B sub-LM at zero cost
MEMORY & TRACE
Qdrant · Langfuse · Postgres
hybrid vector search + 100% step tracing
GUARDS
safe_cuda.py · jax_safe_env.py
unified-memory caps for a shared box

SEE ALSO: /playground — RUN AN SLM IN YOUR BROWSER (WEBGPU)

Beyond the terminal → drag

Real photos land here soon — treated as full-bleed editorial spreads.

Horizontally scrollable gallery. Use Left and Right arrow keys to move one card, Home and End to jump.
CROSSFIT
Heavy things, early mornings
HIKING
Scottish Highlands on repeat
CAMPING
Offline > offsite
@LETSFINETUNE
Build-in-public, footnote-sized

Notes & write-ups

Feature of the Day: A Gemma SAE Atlasinterpretability · 2026-07-12Killing the 10 GB Tensorcuda · 2026-07-08The Win That Was Notqwen3-0.6b · 2026-07-07What the Gates Caughtqwen3-0.6b · 2026-07-07

all posts →

Let's build
something real.

Email meBook a callCV — PDF / HTML