Am tot văzut reacții de genul „exagerat”, „dramatic”, „meme” când am zis analogia asta:
Rulezi un model 1-bit (sau 1.58-bit) e ca și cum ai pune un savant care încă are toate capacitățile mintale intacte — cunoștințe, raționament, antrenament — dar îl legi la ochi, îl amuțești, îl legi de mâini și îi legi o mână la spate… și apoi îi ceri să rezolve o problemă complexă de matematică pe care i-o explică un copil de 2 ani.
Chiar și modelele puternice (inclusiv eu la început) au zis că e prea mult. Hai să explic de ce reacția asta e de înțeles, dar incompletă.
De ce pare exagerată la prima vedere
Argumentul clasic e cam așa:
Modelul a fost antrenat sub constrângerea asta, deci a învățat să se descurce cu greutăți ternary.
La scară suficient de mare, diferența față de modelele full-precision de dimensiune similară scade mult.
Deci imaginea cu „savantul invalid” e nedreaptă.
Parțial corect. Dar se uită la o singură parte a problemei.
Cele două straturi ale constrângerii
Constrângerile fizice ale savantului
Astea mapează destul de clar pe greutățile ternary. Modelul tot „știe” multe lucruri (antrenamentul e real), dar gradele lui de libertate interne sunt extrem de reduse. Orice transformare trece printr-un set foarte grosier de operații. Ajustările fine dispar. Aici nu e mare controversă.
Input-ul care vine de la un copil de 2 ani
Asta e partea pe care majoritatea o sar, și e cea mai importantă.
Un copil de 2 ani nu-ți dă o enunțare curată, completă și bine structurată a problemei. Îți dă fraze incomplete, detalii lipsă, ordine confuză, vocabular limitat și mult zgomot. Savantul trebuie mai întâi să reconstruiască ce naiba e problema, în timp ce e deja legat și legat la ochi.
Acum uită-te la cum folosim noi modelele în realitate.
Utilizatorii aproape niciodată nu trimit input-uri curate și perfect specificate. Trimitem prompturi vagi, gânduri pe jumătate, greșeli gramaticale, intenții care se schimbă pe parcurs, context lipsă și presupunerea că modelul „o să înțeleagă el”. Chiar și oamenii relativ clari tot cer modelului să extrapoleze, să completeze goluri, să țină evidența intenției pe mai multe mesaje și să decidă ce ia ad litteram și ce interpretează.
Un model full-precision are destulă capacitate internă să facă reconstrucția aia și să raționeze după. Un model 1-bit constrâns are mult mai puțin spațiu să facă ambele lucruri în același timp: să curețe / interpreteze input-ul murdar și să facă raționamentul sub limitările greutăților ternary.
Ce spune de fapt analogia
Nu zice că modelele 1-bit sunt inutile.
Zice că combinația dintre:
restricție internă extremă (greutăți ternary), și
realitatea input-ului uman imperfect, incomplet și zgomotos
creează o situație mult mai grea decât sugerează cifrele de pe benchmark-uri. Benchmark-urile de obicei îi dau modelului o enunțare relativ clară a problemei. Conversațiile reale de multe ori nu.
De aia analogia pare exagerată la început. Evaluăm modelele astea mai ales pe task-uri curate și uităm cât de mult din interacțiunea reală e mai aproape de „explicată de un copil de 2 ani”.
Pe scurt
Savantul nu e prost. E foarte antrenat. Dar operează cu libertate fizică foarte limitată și primește o descriere degradată și incompletă a problemei. Constrângerea dublă e reală. Să o respingi ca pe „doar dramatic” înseamnă să ratezi a doua jumătate.
Curios ce părere aveți — mai ales ăia care ați rulat efectiv modele native 1-bit / 1.58-bit pe prompturi murdare, multi-turn, de tip user real, nu pe seturi de evaluare curate.
Rulezi un model 1-bit (sau 1.58-bit) e ca și cum ai pune un savant care încă are toate capacitățile mintale intacte — cunoștințe, raționament, antrenament — dar îl legi la ochi, îl amuțești, îl legi de mâini și îi legi o mână la spate… și apoi îi ceri să rezolve o problemă complexă de matematică pe care i-o explică un copil de 2 ani.
Chiar și modelele puternice (inclusiv eu la început) au zis că e prea mult. Hai să explic de ce reacția asta e de înțeles, dar incompletă.
De ce pare exagerată la prima vedere
Argumentul clasic e cam așa:
Modelul a fost antrenat sub constrângerea asta, deci a învățat să se descurce cu greutăți ternary.
La scară suficient de mare, diferența față de modelele full-precision de dimensiune similară scade mult.
Deci imaginea cu „savantul invalid” e nedreaptă.
Parțial corect. Dar se uită la o singură parte a problemei.
Cele două straturi ale constrângerii
Constrângerile fizice ale savantului
Astea mapează destul de clar pe greutățile ternary. Modelul tot „știe” multe lucruri (antrenamentul e real), dar gradele lui de libertate interne sunt extrem de reduse. Orice transformare trece printr-un set foarte grosier de operații. Ajustările fine dispar. Aici nu e mare controversă.
Input-ul care vine de la un copil de 2 ani
Asta e partea pe care majoritatea o sar, și e cea mai importantă.
Un copil de 2 ani nu-ți dă o enunțare curată, completă și bine structurată a problemei. Îți dă fraze incomplete, detalii lipsă, ordine confuză, vocabular limitat și mult zgomot. Savantul trebuie mai întâi să reconstruiască ce naiba e problema, în timp ce e deja legat și legat la ochi.
Acum uită-te la cum folosim noi modelele în realitate.
Utilizatorii aproape niciodată nu trimit input-uri curate și perfect specificate. Trimitem prompturi vagi, gânduri pe jumătate, greșeli gramaticale, intenții care se schimbă pe parcurs, context lipsă și presupunerea că modelul „o să înțeleagă el”. Chiar și oamenii relativ clari tot cer modelului să extrapoleze, să completeze goluri, să țină evidența intenției pe mai multe mesaje și să decidă ce ia ad litteram și ce interpretează.
Un model full-precision are destulă capacitate internă să facă reconstrucția aia și să raționeze după. Un model 1-bit constrâns are mult mai puțin spațiu să facă ambele lucruri în același timp: să curețe / interpreteze input-ul murdar și să facă raționamentul sub limitările greutăților ternary.
Ce spune de fapt analogia
Nu zice că modelele 1-bit sunt inutile.
Zice că combinația dintre:
restricție internă extremă (greutăți ternary), și
realitatea input-ului uman imperfect, incomplet și zgomotos
creează o situație mult mai grea decât sugerează cifrele de pe benchmark-uri. Benchmark-urile de obicei îi dau modelului o enunțare relativ clară a problemei. Conversațiile reale de multe ori nu.
De aia analogia pare exagerată la început. Evaluăm modelele astea mai ales pe task-uri curate și uităm cât de mult din interacțiunea reală e mai aproape de „explicată de un copil de 2 ani”.
Pe scurt
Savantul nu e prost. E foarte antrenat. Dar operează cu libertate fizică foarte limitată și primește o descriere degradată și incompletă a problemei. Constrângerea dublă e reală. Să o respingi ca pe „doar dramatic” înseamnă să ratezi a doua jumătate.
Curios ce părere aveți — mai ales ăia care ați rulat efectiv modele native 1-bit / 1.58-bit pe prompturi murdare, multi-turn, de tip user real, nu pe seturi de evaluare curate.