Trevligt, kort inlägg som illustrerar hur enkel text (diskret) diffusion kan vara. Diffusion (d.v.s. parallell, itererad nedtoning, överst) är det genomgripande generativa paradigmet i bild/video, men autoregression (d.v.s. gå från vänster till höger nederst) är det dominerande paradigmet i text. När det gäller ljud har jag sett lite av båda. Många diffusionspapper ser lite täta ut, men om man tar bort den matematiska formalismen får man enkla baslinjealgoritmer, t.ex. något som är mycket närmare flödesmatchning i kontinuerlig, eller något liknande i diskret. Det är din vaniljtransformator men med dubbelriktad uppmärksamhet, där du iterativt samplar om och maskerar om alla tokens i din "tokenduk" baserat på ett brusschema tills du får det slutliga provet i det sista steget. (Dubbelriktad uppmärksamhet är mycket kraftfullare, och du får mycket starkare autoregressiva språkmodeller om du tränar med den, tyvärr gör det träningen mycket dyrare eftersom du nu inte kan parallellisera över sekvensdim). Autoregression gör därför en ".append(token)" till token-arbetsytan medan den bara deltar bakåt, medan diffusionen uppdaterar hela token-arbetsytan med en ".setitem(idx, token)" när den deltar dubbelriktat. Mänskligt tänkande känns naivt nog lite mer som autoregression, men det är svårt att säga att det inte finns fler diffusionsliknande komponenter i något latent tankerum. Det känns fullt möjligt att man kan interpolera dem ytterligare, eller generalisera dem ytterligare. Och det är en komponent i LLM-stacken som fortfarande känns lite fungibel. Nu måste jag motstå frestelsen att gå in i träning nanochat med diffusion.