Citat:
Ursprungligen postat av
BeneathTheSurface
Jag har byggt en liten visualisering av hur språkmodellerna egentligen fungerar på ett konceptuellt plan.
Men för att kunna visualisera det så här har så klart det gjorts förenklingar, språkmodeller jobbar i mångdimensionell rymd och detta är av visualiserings anledningar reducerat till 3 dimensioner så det blir lättare att förstå konceptet, lika så är "sfärerna" inte exakt hur det går till men det är lättare att visualisera så, egentligen rör det sig om voronoi celler kan man väl säga och sannolikheten är avståndet till alla möjliga tokens i rymden.
Visualiseringen finns här:
https://copper-pearline-71.tiiny.site/
Jag har också utlämnat allt om träning, attention beräkning osv (det finns redan visualiseringar som tex
https://poloclub.github.io/transformer-explainer/ )
Om det är något oklart så kan jag försöka svara på detta, oseriösa frågor eller uppenbara troll kommer ignoreras.
Jag tycker det här är en rätt bra pedagogisk demo, särskilt för folk som aldrig har funderat på vad en språkmodell gör mellan inmatning och färdig text, eftersom man ser det viktigaste...alltså att texten växer steg för steg och att varje ny token påverkar nästa val.
Men jag tror du behöver skilja tydligare mellan pedagogisk bild och faktisk mekanik, för just nu kan man lätt få intrycket att modellen rör sig i en 3D-karta där ord ligger i olika kluster och där nästa ord väljs för att punkten hamnar nära rätt sfär.... och det är en användbar bild, men inte riktigt det som händer.
Det som egentligen händer är att texten delas upp i tokens, tokens görs om till vektorer, hela kontexten bearbetas genom flera transformerlager med attention och feed forward, och sedan används representationen för sista positionen för att räkna ut logits, alltså poäng för alla möjliga nästa tokens, som sedan görs om till sannolikheter med softmax och väljs eller samplas därifrån.
Så det jag främst saknar är en tydligare markering av att axlarna syntax, finans-domän och allmän-domän inte är verkliga modellaxlar, utan bara en förenklad projektion, och att sfärerna inte är platsen där modellen hittar orden, utan ett sätt att visa möjliga kandidater på ett begripligt sätt.
Samma sak med knapparna Kör attention, Kör FFN och Kör unembedding. Det är bra att visa stegen, men texten bör nog vara försiktig så den inte låter som att modellen kör attention för ett enskilt ord på det sättet. I praktiken bearbetas hela kontexten lager för lager, och först efter sista lagret får man poängen för nästa token.
Så bra idé och snyggt gjort, men jag hade lagt in en mycket tydligare förklaring typ..."Det här är inte modellens verkliga rum, utan en pedagogisk projektion. Själva valet av nästa token sker via hidden state, outputlager, logits, softmax och sampling, inte genom att hitta närmaste ord i en 3D-rymd."
Exempel:
https://limewire.com/d/cpAAx#Vqn66Ts43C