Why Training Loss Sawtooths Across Epochs

Why does training loss creep up within each epoch and drop at the next? Not the optimizer, but what the loss measures: the expected gap since a sample was last trained on follows a sawtooth, and it explains every sampling ablation.

October 15, 2026 · 14 min · liqq

From 1000 Steps to 1: Building Diffusion and Flow Models from Scratch

Clean, minimal PyTorch implementations of diffusion and flow models, from 1000-step DDPM to 1-step generators, on one backbone with one set of conventions.

October 9, 2026 · 37 min · liqq