Subiecte populare
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

thebes
De ce se întâmplă asta? Modelul crede că există un emoji de căluț de mare, sigur, dar de ce îl face să scoată un emoji *diferit*? Iată un indiciu de la instrumentul de interpretabilitate subestimat preferat al tuturor, Logit Lens!
În Logit Lens, folosim lm_head modelului într-un mod ciudat. De obicei, lm_head este folosit pentru a transforma reziduul (starea internă construită peste straturile modelului) într-un set de probabilități simbolice după stratul final. Dar în Logit Lens, folosim lm_head după *fiecare* strat - arătându-ne ce jetoane ar scoate modelul dacă acel strat ar fi stratul final.
pentru straturile timpurii, acest lucru are ca rezultat stări greu de interpretat. Dar pe măsură ce ne deplasăm prin straturi, modelul rafinează iterativ reziduul mai întâi către concepte utile pentru continuarea textului și apoi spre predicția finală.
privind din nou imaginea, la stratul final, avem ieșirea reală a modelului - ĠðŁ, IJ, ł - aka, un prefix emoji byte urmat de restul emoji-ului de pește.
(Pare o prostie Unicode din cauza unei ciudățenii de tokenizare - nu-ți face griji. Dacă ești curios, întreabă-l pe Claude despre această linie de cod: 'bytes([byte_decoder[c] for c in 'ĠðŁIJł']).decode('utf-8') == ' 🐠 '')
Dar uite ce se întâmplă în straturile de mijloc - nu primim doar octeți emoji! Primim acele *concepte*, în special conceptul de căluț de mare. De exemplu, pe stratul 52, obținem "cal de calar de mare". mai târziu, în top-k, obținem un amestec de "mare", "cal" și acel prefix emoji, "ĠðŁ".
Deci, la ce se gândește modelul? Căluț de mare + emoji! încearcă să construiască o reprezentare reziduală a unui emoji de căluț de mare.
De ce ar face asta? Ei bine, să ne uităm la cum funcționează de fapt lm_head. lm_head este o matrice uriașă de vectori de dimensiuni reziduale asociați cu ID-urile de token. Când un reziduu este trecut în el, va compara acel reziduu cu fiecare vector token și, în coordonare cu sampler-ul, va selecta ID-ul token cu un vector cel mai asemănător cu reziduul. (mai tehnic: este un strat liniar fără părtinire, deci v @ w.T face produse scalare cu fiecare vector de neîncorporare, apoi log_softmax și argmax/eșantion de temperatură.)
Deci, dacă modelul dorește să scoată cuvântul "Hello", trebuie să construiască un reziduu similar cu vectorul pentru tokenul de ieșire "Hello" pe care lm_head îl poate transforma în ID-ul tokenului Hello. Și dacă modelul dorește să scoată un emoji de căluț de mare, trebuie să construiască un reziduu similar cu vectorul pentru jetoanele de ieșire emoji căluț de mare - care, teoretic, ar putea fi orice valoare arbitrară, Dar în practică este căluțul de mare + emoji, stilul word2vec.
Singura problemă este că emoji-ul căluțului de mare nu există! Deci, atunci când acest reziduu de căluț de mare + emoji atinge lm_head, își face produsul scalar peste toți vectorii, iar sampler-ul alege cel mai apropiat simbol - un emoji de pește.
Acum, această discretizare este o informație valoroasă! puteți vedea în exemplul Armistițiului că atunci când jetonul este plasat înapoi în context în mod autoregresiv, modelul poate spune că nu este un emoji de căluț de mare. Așa că încearcă din nou, agită reziduul și primește un emoji ușor diferit, clătește și repetă până când își dă seama ce se întâmplă, renunță sau rămâne fără jetoane de ieșire.
Dar până când modelul nu primește tokenul de ieșire greșit de la lm_head, pur și simplu nu știe că nu există un emoji de căluț de mare în lm_head. presupune că Seahorse + emoji va produce tokenul (tokenurile) pe care îl dorește.
------------------
Pentru a specula (și mai mult), mă întreb dacă aceasta face parte din beneficiul RL - oferă modelelor informații despre lm_head lor care altfel sunt dificil de obținut pentru că se află la capătul stivei de straturi. (amintiți-vă că modelele de bază nu sunt antrenate pe propriile ieșiri / lansări - asta se întâmplă doar în RL.)

164,25K
De ce sărbătorim Brekyat?
Brekyat este locul în care distrugem ritualic statul în fiecare an.
De ce oamenii noștri distrug ritual statul în fiecare an?
pentru că suntem nomazi.
Ce este un nomad?
cineva care rătăcește.
dar nu rătăcim?
Dar suntem nomazi, pentru că trăim în afara statului.
Nomazii trăiesc în afara statului?
Da, din cauza rătăcirii lor, ei sunt în afara controlului statului și îl distrug periodic.
dar nu rătăcim?
Scăpăm de stat chiar mai mult decât strămoșii noștri rătăcitori - distrugându-l anual.
Nu are sens.
este cultură, nu trebuie să aibă sens. Acum du-te să-ți pui coroana de iarbă.
3,02K
Limită superioară
Clasament
Favorite