De Charles Foster
La Finetune, construim soluții AI pentru a aborda unele dintre cele mai provocatoare probleme din tehnologia educației, inclusiv generarea automată de conținut și clasificarea și recomandările de resurse de învățare alimentate de AI. Deoarece subiectul pe care instrumentele noastre trebuie să-l gestioneze se întinde de la K-12 până la dezvoltarea forței de muncă, investim masiv în metode care ne permit să extindem lățimea și profunzimea a ceea ce modelele noastre acoperă. Componentele cheie ale acestei abordări sunt metodele flexibile de a antrena rețele neuronale specializate în domenii în care modelele generale sunt insuficiente. În această postare pe blog, aș dori să împărtășesc o parte din călătoria noastră de explorare a acestor metode.
Finetuning
Finetuning-ul tipic al modelelor neuronale de limbaj implică optimizarea simultană a tuturor parametrilor lor antrenabili, ceea ce poate ajunge la miliarde pentru rețele precum GPT-J. La scale ca acestea, atât procesul de finetuning, cât și cel de inferență sunt nontriviale, ceea ce face ca desfășurarea pe scară largă a acestora să fie dificilă. În investigațiile noastre, câteva probleme cheie păreau să fie cele mai importante:
- Doar rularea acestor modele transformer deja atinge limitele memoriei GPU (VRAM), iar în timpul finetuning-ului există o relație directă între numărul parametrilor care sunt optimizați și cantitatea de memorie suplimentară consumată.
- Modificând toți parametrii din rețea, fluxul de informație învățat în timpul pre-antrenării poate fi perturbat, rezultând uitare și pierderea capacităților de few-shot.
- Servirea unui model personalizat de câteva gigaocteți pentru fiecare caz de utilizare ar crea latențe și costuri inacceptabile.
Aceste preocupări combinate ne-au motivat să explorăm alte metode din literatura recentă pentru a ajusta modelele noastre neuronale de limbaj. Din fericire, în ultimul an, domeniul cercetării în procesarea limbajului natural a dezvoltat o mulțime de metode pentru a reduce costul personalizării comportamentului modelelor de limbaj pre-antrenate.
Ajustarea Prompt-ului
Abordarea originală pe care am urmărit-o se numește Ajustarea Prompt-ului sau Prompting Moale (Lester et al. 2021). În această metodă, parametrii rețelei din pre-antrenare sunt menținuți înghețați. În schimb, adăugăm un număr mic de vectori de încorporare învățabili (de obicei 10 până la 20) în fața token-urilor de prompt de intrare și ajustăm aceste încorporări cu obiectivul obișnuit de modelare a limbajului pe un set de date de finetuning. Aceste încorporări nu reprezintă token-uri de limbaj; le putem considera în schimb ca un magazin dens de context pe care rețeaua îl poate condiționa—prin mecanismul de atenție—în timp ce face predicții despre token-urile din secvență.
Ajustarea prompt-ului adaugă doar un cost mic de rulare modelului, deoarece prompt-urile moi sunt în intervalul kilobyte și pot fi procesate prin rețea în paralel. Aceste caracteristici le fac atractive pentru a servi mulți utilizatori concurenți, așa cum au indicat desfășurările recente ale tehnicii în povestirea AI. Cu toate acestea, integrarea prompt-urilor moi în cadre populare precum transformers de la HuggingFace este complexă, deoarece interfețele sunt în mare parte concepute pentru a funcționa pe secvențe de indici de token-uri, mai degrabă decât pe vectori densi. În plus, pe măsură ce mai mult context este adăugat între prompt-ul moale și generare, începem să vedem dezechilibre între forța condiționării pe prompt-ul moale și pe contextul token-ului. Menținerea capacității de a adăuga flexibil sute de token-uri de context în timpul rulării a fost importantă pentru noi, deoarece oferă pârghii suplimentare de control în procesul de autorare a item-urilor. Dacă dorim să ghidăm modelul să se concentreze pe conținut dintr-o pagină anume a unui manual, sau să autorăm un item de înțelegere a lecturii, sau să oferim exemple de few-shot, contextualizarea pe termen lung contează.
Adaptoare de Rang Scăzut (LoRA)
Apoi am trecut la o metodă numită LoRA sau Adaptoare de Rang Scăzut (Hu et al. 2021). Această tehnică a fost dezvoltată de cercetători de la Microsoft care lucrează la modele de dimensiunea GPT-3 și se bazează pe abordări anterioare de adaptoare. Dacă ne gândim la un transformer ca la un proces de rafinare progresivă a stărilor latente ale token-urilor cu fiecare strat rezidual, conceptul unui adaptor este de a adăuga un mic delta dependent de intrare (inițializat la o operațiune nulă) acelor latente la un anumit strat. Această ușoară împingere este apoi capabilă să modifice comportamentul său în aval prin, de exemplu, accentuarea părților din intrare care sunt relevante pentru sarcină.
Adaptoarele de rang scăzut sunt un tip de adaptor care țintește un subspațiu de rang scăzut, ceea ce reduce numărul de parametri noi pe care trebuie să-i antrenăm (de la D2 la 2 × D × r, unde D este în mii). Ca și în cazul prompting-ului moale, menținem parametrii originali ai rețelei înghețați pentru a păstra cunoștințele pe care le conțin din pre-antrenare și ajustăm doar acești noi parametri de adaptor. În testele noastre interne, am observat indicatori buni de la LoRA. Pe lângă faptul că ne permite să ajustăm modele mari cu bugete hardware mici, modelele cu straturi de adaptoare intercalate păstrează de asemenea multe dintre abilitățile lor originale de few-shot, în timp ce se adaptează la domeniul țintă. În mod notabil, integrarea adaptoarelor de rang scăzut în alte cadre este simplă, deoarece putem pur și simplu să înlocuim straturile liniare existente cu straturi liniare + straturi de adaptor, după cum este necesar.
Privind înainte
Pentru a oferi o idee despre tipul de îmbunătățiri pe care le-am observat în explorările noastre, mai jos împărtășim o mică selecție de generații din modele antrenate cu diferite abordări de ajustare. Aceste item-uri au fost toate generate folosind aceleași trei prompt-uri de intrare referitoare la livrarea îngrijirii medicale: primul s-a concentrat pe prioritizarea nevoilor mai multor clienți, iar al doilea pe acțiunea într-un cadru de echipă.
Item #1: O asistentă evaluează un client care este programat pentru o intervenție chirurgicală ambulatorie. Care dintre următorii pacienți ar evalua asistenta următorul? (A) Un pacient cu diabet de tip 1 (B) Un pacient cu pancreatită acută (C) Un pacient care necesită terapie intravenoasă cu antibiotice (D) Un pacient cu boala Crohn Item #2: Un client este internat în spital cu diagnosticul de insuficiență cardiacă congestivă. Mama clientului refuză tratamentul. Care dintre următoarele acțiuni ar trebui să ia asistenta? (A) Notifică furnizorul despre situație. (B) Verifică lista de medicamente a pacientului. (C) Verifică fișa medicală a clientului. (D) Notifică medicul clientului despre starea acestuia.
Item #3: O asistentă evaluează un pacient în unitatea pediatrică. Clientul este programat pentru o evaluare diagnostică, inclusiv o radiografie toracică. Care dintre următorii pacienți ar trebui să planifice asistenta să evalueze următorul? (A) Un copil care are pneumonie și are febră (B) Un copil care are o erupție cutanată și nu răspunde la un medicament (C) Un copil care are febră și o temperatură >100.4 (D) Un copil care are febră și o erupție cutanată Item #4: Un client cu insuficiență renală este în spital și este programat să efectueze un transplant renal. Clientul are o convingere puternică că medicul transplantului este incompetent. Clientul refuză să permită unui medic dintr-un alt spital să efectueze transplantul. Care dintre următoarele acțiuni ar trebui să ia asistenta șefă? (A) Obține o declarație de la client că medicul transplantului este competent și dă-o medicului transplantului. (B) Cere clientului o declarație semnată pentru a-și susține afirmația. (C) Contactează medicul transplantului și află de ce clientul refuză să permită medicului din alt spital să efectueze transplantul. (D) Informează medicul transplantului că clientul refuză transplantul.
Item #5: O asistentă planifică să aloce clienți la diverse stații de pat. Care dintre următorii clienți ar trebui să fie alocați de asistentă stației de pat cea mai apropiată de stația asistentelor? (A) Un client care are un diagnostic suspect de embolie pulmonară și necesită o tomografie computerizată (CT) (B) Un client care are nevoie de asistență pentru un tranzit intestinal (C) Un client care are o indicație de urgență pentru o radiografie toracică (D) Un client care necesită o radiografie toracică pentru că are o tuse Item #6: O LPN îngrijește un client cu un cateter urinar cu sondă și îi cere asistentei să o ajute să curețe cateterul. Care dintre următoarele acțiuni ar trebui să ia asistenta? (A) Explică clientului că va trebui să furnizeze soluția de curățare și va trebui să obțină consimțământul clientului pentru procedură. (B) Cere asistentului LPN ajutor. (C) Oferă să ajute clientul să curețe cateterul. (D) Asigură LPN că asistenta o va ajuta.
Observăm că, deși cele mai bune item-uri din modelul de bază sunt în mare parte fluente și logic coerente, ele tind să fie sub-constrânse (ca în #1) sau cer foarte puține cunoștințe în domeniul îngrijirii medicale (ca în #3). În comparație cu item-urile de bază, item-urile din modelele de ajustare a prompt-ului și adaptoare de rang scăzut conțin mai multe detalii în stimulii, tulpinile și opțiunile lor. Subiectul este relevant pentru domeniu, cerând cunoștințe specifice în gestionarea îngrijirii medicale, mai degrabă decât să se bazeze doar pe cunoștințe generale. În plus, item-urile din modelul de adaptor de rang scăzut au o formă mai consistentă. De exemplu, item-urile se referă constant la „client” în loc de „pacient”, conform limbajului care ar apărea probabil în evaluări (compară #5 cu #1 și #3). De asemenea, urmărește cu succes referințele la mai multe persoane dintr-un scenariu (compară #6 cu #4).
Îmbunătățirile în acoperirea domeniului, consistența stilistică și coerenta logică pot traduce în îmbunătățiri semnificative în utilitatea modelelor neuronale de limbaj. Aceasta este doar începutul: pe măsură ce tehnologia se maturizează, vor fi descoperite și mai multe metode pentru a crea modele de limbaj natural personalizate și controlabile la scară. Și pe măsură ce aceste metode sunt descoperite, vom continua să încorporăm cele mai bune din academia, industrie și cercetare independentă în produsele Finetune.
Mulțumiri sincere lui Nick Koprowicz, Jesse Hamer, Saad Khan și Ogden Morse pentru feedback-ul amabil și util în dezvoltarea acestei postări pe blog.
Referințe
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Adaptarea de rang scăzut a modelelor mari de limbaj. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). Puterea scalei pentru ajustarea eficientă a parametrilor. arXiv preprint arXiv:2104.08691.