Inteligență artificială
GLM-130B: Un model pre-antrenat bilingv deschis

Framework-ul GLM-130B este un model de limbaj mare pre-antrenat bilingv cu peste 130 de miliarde de parametri, capabil să genereze ieșiri de text atât în engleză, cât și în chineză. Framework-ul GLM-130B este o încercare de a oferi un model de limbaj deschis la o scară de peste 100 de miliarde de parametri și de a discuta modul în care astfel de framework-uri de scară largă pot fi pre-antrenate, deoarece, în prezent, antrenarea unui model de o asemenea scară este adesea însoțită de probleme precum divergența și salturile de pierdere.
În acest articol, vom discuta despre framework-ul GLM-130B, care încearcă să conceapă o metodă pentru a pre-antrena eficient modele de limbaj mari cu sute de miliarde de parametri. Vom face o analiză mai profundă a funcționării și arhitecturii framework-ului GLM-130B, precum și a procesului de antrenare și a alegerilor de proiectare care nu numai că ajută la creșterea eficienței, dar și a stabilității. Experimentele inițiale efectuate pentru a testa funcționarea framework-ului GLM-130B pe o gamă largă de benchmark-uri în engleză au arătat că modelul GLM-130B a depășit actualul model de referință GPT-3 cu o marjă considerabilă. Așadar, să începem și să explorăm modul în care framework-ul GLM-130B oferă rezultate atât de consistente, precise și stabile.
Introducere în framework-ul GLM-130B
Modelele de limbaj mari capabile să funcționeze în setări cu puține exemple și zero exemple, în special cele cu peste 100 de miliarde de parametri, prezintă legi de scalare atractive, dintre care framework-ul GPT-3 este unul dintre cele mai bine performante, oferind îmbunătățiri considerabile de performanță față de predecesorul său, framework-ul BERT. Cu toate acestea, în ciuda popularității framework-ului GPT-3 și a aplicațiilor sale largi, procesul de antrenare și, în unele moduri, framework-ul GPT-3 în sine au fost nepublice. Mai mult, enumerarea empirică a tuturor proiectelor posibile pentru antrenarea modelelor de limbaj mari cu peste 100 de miliarde de parametri este computațional neacceptabil, ceea ce face și mai critică găsirea unei metode de pre-antrenare pentru framework-urile de limbaj mari.
Punctul de mai sus subliniază importanța partajării funcționării și a procesului de antrenare a framework-urilor de limbaj mari de înaltă calitate, cum ar fi GPT-3, și, cu aspectele etice în minte, framework-ul GLM-130B este o încercare de a pre-antrena un model de limbaj deschis și precis cu peste 100 de miliarde de parametri. În timpul încercării, echipa de dezvoltare a framework-ului GLM-130B a observat că pre-antrenarea unui framework de limbaj mare este adesea însoțită de o serie de provocări tehnice și inginerești în ceea ce privește stabilitatea, eficiența și convergența pre-antrenării.
Mai specific, GLM-130B este un framework dens bilingv și bidirecțional, cu peste 130 de miliarde de parametri, pre-antrenat pe 400 de miliarde de tokeni pe un cluster de 96 de noduri GPU NVIDIA DGX-A100, timp de aproape două luni. Mai mult, în loc să opteze pentru arhitectura GPT, framework-ul GLM-130B utilizează algoritmul GLM sau General Language Model, în încercarea de a valorifica obiectivele de umplere a golurilor autoregresive și avantajul atenției bidirecționale. Tabelul următor compară framework-ul GLM-130B cu alte modele cu peste 100 de miliarde de parametri, inclusiv GPT, BLOOM-176B și OPT-175B.

Conceptele de inginerie și dezvoltare implicate în framework-ul GLM-130B depășesc aproape toate framework-urile de limbaj mari, inclusiv GPT-3 și PaLM 540B, cu peste 500 de miliarde de parametri, în multe cazuri și pe o gamă largă de benchmark-uri. Figura următoare compară performanța framework-ului GLM-130B cu modele cu peste 100 de miliarde de parametri, și, așa cum se poate vedea, framework-ul GLM-130B are o toxicitate și o polarizare semnificativ mai mică decât omologii săi.

În final, GLM-130B a fost proiectat pentru a permite cât mai multor dezvoltatori să efectueze studii pe framework-uri cu peste 100 de miliarde de parametri, și există două moduri în care framework-ul GLM-130B realizează acest lucru. În primul rând, în loc să utilizeze peste 175 de miliarde de parametri, cum ar fi BLOOM și OPT, framework-ul GLM-130B utilizează 130 de miliarde de parametri, deoarece dimensiunea modelului suportă interferența chiar și pe un singur server A100. În al doilea rând, cerințele de GPU pentru a rula framework-ul GLM-130B sunt mai mici în comparație cu alte framework-uri de limbaj mari, și framework-ul GLM-130B realizează acest lucru prin cuantificarea framework-ului original în precizie INT4. Cuantificarea INT4 utilizată de framework-ul GLM-130B îmbunătățește performanța, menținând o degradare neglijabilă a performanței.
GLM-130B: Arhitectură
Polarizarea inductivă a unui model de învățare automată este descrisă de arhitectura sa, și nu este o surpriză când dezvoltatorii nu pot explora diverse proiecte arhitecturale pentru modele de limbaj mari, având în vedere fezabilitatea și viabilitatea computațională. Cu toate acestea, să aruncăm o privire asupra arhitecturii GLM-130B.
Framework-urile de limbaj mari, cum ar fi PaLM, GPT și altele, cu peste 100 de miliarde de parametri, sunt construite pe arhitectura convențională decoder-only GPT pentru modelarea limbajului autoregresiv. Pe de altă parte, framework-ul GLM-130B explorează posibilitatea de a utiliza un model de limbaj general bidirecțional sau GLM, un model de limbaj bazat pe transformator care încearcă să valorifice obiectivele de umplere a golurilor autoregresive, și avantajul atenției bidirecționale. Scurt spus, pentru o secvență de text dată, framework-ul GLM sampilează spațiile de text care sunt apoi înlocuite cu un singur token de mascare.
Atenția bidirecțională a modelului de limbaj general asupra contextelor necorupte sau nemascate este ceea ce separă framework-ul GLM-130B de abordarea GPT care utilizează o abordare unidirecțională. Mai mult, pentru a susține atât generarea, cât și înțelegerea datelor, framework-ul GLM combină două strategii de corupere, fiecare indicată de un token de mascare special și unic.
- [MASK] : [MASK] este o strategie de corupere care utilizează goluri scurte în propoziții, lungimile cărora se adună până la un anumit procent din intrare.
- [gMASK] : [gMASK] este o strategie de corupere care utilizează goluri aleatorii de lungime spre sfârșitul propoziției, cu contexte prefix.
Abordarea urmată de framework-ul GLM este ceea ce permite framework-ului să înregistreze un scor de acuratețe de peste 80% la modelarea limbajului LAMBADA zero-shot, și depășește atât framework-ul PaLM 540B, cât și framework-ul GPT-3.

Normalizarea stratului
Una dintre principalele provocări cu care se confruntă dezvoltatorii atunci când antrenează un framework de limbaj mare este instabilitatea antrenării, și utilizarea unei normalizări a stratului (LN) adecvate poate ajuta la antrenarea modelelor de limbaj mari. Framework-ul GLM-130B utilizează o abordare Post-LN, datorită performanței sale la sarcinile downstream.
FFN și codificarea pozițională
Rețelele neuronale feedforward (FFN) și codificarea pozițională sunt două abordări adoptate de framework-ul GLM-130B pentru a introduce performanțe de înaltă calitate și stabilitate de antrenare.
Configurarea pre-antrenării
Obiectivele de pre-antrenare ale framework-ului GLM-130B nu includ doar învățarea multi-sarcină pentru un număr mic de tokeni, ci și învățarea auto-supervizată GLM pentru umplerea golurilor autoregresive, cu așteptarea că această abordare va ajuta framework-ul GLM-130B în sarcinile downstream. Cu toate acestea, configurația de pre-antrenare a framework-ului GLM-130B arată astfel.
Umplerea golurilor auto-supervizate
Așa cum s-a menționat deja, framework-ul GLM-130B utilizează două strategii de corupere, și anume [MASK] și [gMASK], și una dintre aceste strategii este aplicată independent fiecărei secvențe de antrenare, una câte una. Pentru a umple golurile, strategia [MASK] maschează spații consecutive în 30% din secvența de antrenare, unde lungimile spațiilor se adună până la 15% din intrare, și urmează o distribuție Poisson. Pentru restul de 70% din secvență, prefixul fiecărei secvențe este păstrat ca context, și strategia [gMASK] ajută la mascarea restului, și lungimea mascată este apoi eșantionată utilizând distribuția Uniformă.
Pre-antrenarea instrucțiunilor multi-sarcină
S-a indicat că urmarea unei abordări de învățare multi-sarcină pentru pre-antrenarea modelelor poate oferi rezultate mai bune decât reglarea fină, pentru a îmbunătăți transferul de sarcină într-un cadru zero-shot. În consecință, framework-ul GLM-130B propune să utilizeze o serie de seturi de date cu instrucțiuni, inclusiv generarea limbajului, înțelegerea și extragerea informațiilor, în timpul pre-antrenării.
În comparație cu alte abordări pentru transferul de sarcină zero-shot care utilizează reglarea fină multi-sarcină, abordarea de pre-antrenare a instrucțiunilor multi-sarcină urmată de framework-ul GLM-130B reprezintă doar 5% din totalul tokenilor, și este setată în timpul fazei de pre-antrenare, în încercarea de a preveni alterarea altor capacități ale framework-ului de limbaj mare, sau, în alte cuvinte, generarea necondiționată liberă.
Strategia 3D paralelă
Există două practici de facto pentru antrenarea modelelor de scară largă cu miliarde de parametri, paralelismul modelului tensorial și paralelismul datelor. În încercarea de a minimiza utilizarea GPU și de a gestiona cerințele GPU imense, framework-ul GLM-130B implementează o strategie 3D paralelă care combină paralelismul modelului pipeline cu paralelismul tensorial și paralelismul datelor.
GLM-130B: Stabilitatea antrenării
Stabilitatea antrenării este un factor important atunci când se determină calitatea unui model de limbaj mare, și stabilitatea antrenării este influențată puternic de numărul de tokeni pe care îi parcurge. Mai mult, este esențial să se stabilească un compromis între stabilitate și eficiență în ceea ce privește formatele cu puncte flotante, având în vedere constrângerile de calcul. De exemplu, formatele cu puncte flotante de joasă precizie îmbunătățesc eficiența de calcul, dar adesea rezultă în colapsuri de antrenare, deoarece sunt predispuse la erori de sub- și supraplinare.
Precizie mixtă
În încercarea de a îmbunătăți acuratețea antrenării și de a reduce utilizarea memoriei, framework-ul GLM-130B urmează practica comună de a utiliza precizii mixte, adică FP16 pentru atât operațiunile forward, cât și cele backward, și FP32 pentru atât greutățile master, cât și stările optimizerului. La fel ca și alte framework-uri de limbaj mari populare, inclusiv BLOOM-176B și OPT-175B, faza de antrenare a framework-ului GLM-130B, utilizând strategia de precizie mixtă, se confruntă cu salturi frecvente de pierdere, și frecvența acestor salturi de pierdere tinde să crească pe măsură ce modelul continuă să se antreneze. Mai mult, există probleme majore cu care se confruntă dezvoltatorii atunci când scalează transformatorii.

În primul rând, scala valorică a ramurii principale a transformatorului poate fi vastă în straturile mai profunde atunci când se utilizează Pre-LN, și în framework-ul GLM-130B, aceasta este abordată prin utilizarea unei abordări DeepNorm bazate pe Pre-LN, care asigură că scala valorică rămâne limitată în orice moment. În al doilea rând, pe măsură ce modelul se scalează, scorurile de atenție cresc până la punctul în care depășesc intervalul FP16.
Reducerea gradientului stratului de încorporare sau EGS
Dezvoltatorii care lucrează la framework-ul GLM-130B au identificat faptul că norma gradientului poate acționa ca un indicator informativ pentru colapsurile de antrenare, și un colaps de antrenare este de obicei precedat de o creștere a normei gradientului. Cauza acestor salturi este reprezentată de gradientul anormal al stratului de încorporare, și dezvoltatorii au observat că, în comparație cu norma gradientului altor straturi, norma gradientului straturilor de încorporare este mai mare cu mai multe ordine de mărime, și tinde să fluctueze dramatic în timpul antrenării inițiale a framework-ului. Modelele de viziune se confruntă și ele cu această problemă, și este gestionată prin înghețarea stratului de proiecție a patch-ului. Cu toate acestea, aceeași abordare nu poate fi aplicată modelelor de limbaj, deoarece, în modelele de limbaj, nu se poate îngheța stratul de proiecție.

GLM-130B: Rezultate și performanță
Pentru a evalua performanța framework-ului GLM-130B pentru sarcinile în engleză, acesta implementează aceleași setări urmate de framework-urile de limbaj mari comune, inclusiv PaLM și GPT-3, și, deoarece GLM-130B este un framework bilingv, acesta este evaluat și pe o serie de benchmark-uri chinezești. Performanța framework-ului GLM-130B va fi măsurată pe multiple benchmark-uri, inclusiv modelarea limbajului, MMLU sau înțelegerea limbajului multitask masiv, BIG-Bench sau benchmark-ul dincolo de jocul de imitație, și CLUE sau evaluarea înțelegerii limbii chineze. Așadar, să începem.
Modelarea limbajului
Testul de modelare a limbajului pe framework-ul GLM-130B este efectuat pe două seturi de date: LAMBADA și Pile.
Setul de date LAMBADA este utilizat pentru a testa capacitățile de modelare a ultimului cuvânt ale modelelor de limbaj mare, și framework-ul GLM-130B obține un scor de acuratețe zero-shot de 80,2 într-un cadru bilingv, și, pe calea sa, stabilește un nou record de benchmark pe setul de date LAMBADA.
Pe de altă parte, Pile este un set de test care cuprinde o serie de benchmark-uri pentru modele de limbaj. În medie, în comparație cu GPT-3 și Jurassic-1, framework-ul GLM-130B oferă cea mai bună performanță pe 18 seturi de test comune, în ceea ce privește BPB-urile ponderate. Rezultatele demonstrează capacitățile lingvistice puternice ale framework-ului GLM-130B, și rezultatele sunt incluse în tabelul de mai jos.

MMLU sau înțelegerea limbajului multitask masiv
MMLU sau înțelegerea limbajului multitask masiv este un benchmark divers care cuprinde peste 50 de sarcini de răspuns la întrebări cu multiple opțiuni referitoare la inteligența și cunoștințele umane, de la nivelul școlar la nivelul expert, și este lansat după extragerea setului de test Pile, și, prin urmare, servește ca un test ideal pentru a evalua capacitățile de învățare cu puține exemple ale unui model de limbaj mare.

Așa cum se poate vedea, într-un cadru cu puține exemple (5 exemple), performanța framework-ului GLM-130B se apropie de performanța modelului GPT-3 după vizualizarea a aproximativ 300 de miliarde de tokeni. Performanța continuă să crească pe măsură ce antrenarea progresează, și, atunci când antrenarea se încheie, framework-ul obține un scor de acuratețe de 44,8 după vizualizarea a 400 de miliarde de tokeni.
BIG-Bench sau benchmark-ul dincolo de jocul de imitație
BIG-Bench sau benchmark-ul dincolo de jocul de imitație conține sarcini provocatoare care testează abilitatea unui model de a cunoaște, raționa și avea simțul comun. Așa cum se arată în figurile următoare, într-un cadru zero-shot, framework-ul GLM-130B depășește atât framework-ul PaLM 540B, cât și framework-ul GPT-3 175B, ceea ce se poate datora MIP și atenției bidirecționale pentru a îmbunătăți performanța GLM-130B în sarcinile nevizionate într-un cadru zero-shot. Mai mult, pe măsură ce numărul de exemple crește, performanța framework-ului GLM-130B se îmbunătățește și depășește framework-ul GPT-3 în mod constant.

CLUE sau evaluarea înțelegerii limbii chineze
Performanța zero-shot a framework-ului GLM-130B în limba chineză este evaluată pe sarcini de benchmark NLP stabilite, inclusiv CLUE și FewCLUE, și este comparată cu 260B ERNIE Titan 3.0, cel mai mare model de limbă chineză existent. Așa cum se poate observa, framework-ul GLM-130B depășește constant framework-ul 260B ERNIE Titan 3.0 pe 12 sarcini diferite și realizează o performanță de aproximativ 260% mai bună decât framework-ul ERNIE pe două seturi de date de extragere de informații abstracte.

Concluzie
În acest articol, am discutat despre GLM-130B, un model de limbaj mare pre-antrenat bilingv care își propune să promoveze cercetarea incluzivă a modelelor de limbaj mare. Arhitectura, ingineria și realizările tehnice au scopul de a oferi comunității de inteligență artificială o mai bună înțelegere a arhitecturii framework-urilor de limbaj mare, a eficienței și stabilității antrenării, a obiectivelor de pre-antrenare și a interferenței accesibile.










