Utilizarea modelelor lingvistice mari pentru a construi aplicații de AI generativ vine cu noi provocări. O problemă cheie este asigurarea calității răspunsurilor (precizie și relevanță) în conținutul generat de model pentru o cerere specifică a utilizatorului. În lecțiile anterioare, am discutat despre tehnici precum ingineria prompturilor și generarea augmentată prin recuperare, care încearcă să rezolve problema prin modificarea intrării promptului în modelul existent.
În lecția de astăzi, discutăm despre o a treia tehnică, ajustarea fină, care încearcă să abordeze provocarea prin reantrenarea modelului însuși cu date suplimentare. Să intrăm în detalii.
Această lecție introduce conceptul de ajustare fină pentru modelele lingvistice pre-antrenate, explorează beneficiile și provocările acestei abordări și oferă îndrumări despre când și cum să folosiți ajustarea fină pentru a îmbunătăți performanța modelelor voastre de AI generativ.
Până la sfârșitul acestei lecții, ar trebui să puteți răspunde la următoarele întrebări:
- Ce este ajustarea fină pentru modelele lingvistice?
- Când și de ce este utilă ajustarea fină?
- Cum pot ajusta fin un model pre-antrenat?
- Care sunt limitările ajustării fine?
Gata? Să începem.
Doriți să aveți o imagine de ansamblu a ceea ce vom acoperi înainte de a intra în detalii? Consultați acest ghid ilustrat care descrie parcursul de învățare pentru această lecție - de la învățarea conceptelor de bază și motivația pentru ajustarea fină, până la înțelegerea procesului și a celor mai bune practici pentru executarea sarcinii de ajustare fină. Este un subiect fascinant de explorat, așa că nu uitați să verificați pagina Resurse pentru linkuri suplimentare care să vă sprijine parcursul de învățare autodidact!
Prin definiție, modelele lingvistice mari sunt pre-antrenate pe cantități mari de text provenit din surse diverse, inclusiv internetul. Așa cum am învățat în lecțiile anterioare, avem nevoie de tehnici precum ingineria prompturilor și generarea augmentată prin recuperare pentru a îmbunătăți calitatea răspunsurilor modelului la întrebările utilizatorului ("prompturi").
O tehnică populară de inginerie a prompturilor implică oferirea modelului mai multă îndrumare cu privire la ceea ce se așteaptă în răspuns, fie prin furnizarea de instrucțiuni (ghidare explicită), fie oferindu-i câteva exemple (ghidare implicită). Aceasta este denumită învățare cu puține exemple, dar are două limitări:
- Limitele de token ale modelului pot restricționa numărul de exemple pe care le puteți oferi și pot limita eficiența.
- Costurile token-urilor modelului pot face costisitor adăugarea de exemple la fiecare prompt și pot limita flexibilitatea.
Ajustarea fină este o practică comună în sistemele de învățare automată, unde luăm un model pre-antrenat și îl reantrenăm cu date noi pentru a-i îmbunătăți performanța pe o sarcină specifică. În contextul modelelor lingvistice, putem ajusta fin modelul pre-antrenat cu un set curat de exemple pentru o sarcină sau un domeniu de aplicație specific pentru a crea un model personalizat care poate fi mai precis și mai relevant pentru acea sarcină sau domeniu specific. Un beneficiu secundar al ajustării fine este că poate reduce numărul de exemple necesare pentru învățarea cu puține exemple - reducând utilizarea token-urilor și costurile aferente.
În acest context, când vorbim despre ajustare fină, ne referim la ajustarea fină supervizată, unde reantrenarea se face prin adăugarea de date noi care nu au făcut parte din setul de date original de antrenament. Acest lucru este diferit de abordarea ajustării fine nesupervizate, unde modelul este reantrenat pe datele originale, dar cu hiperparametri diferiți.
Lucrul esențial de reținut este că ajustarea fină este o tehnică avansată care necesită un anumit nivel de expertiză pentru a obține rezultatele dorite. Dacă este realizată incorect, poate să nu ofere îmbunătățirile așteptate și poate chiar să degradeze performanța modelului pentru domeniul vizat.
Așadar, înainte de a învăța "cum" să ajustați fin modelele lingvistice, trebuie să știți "de ce" ar trebui să urmați această cale și "când" să începeți procesul de ajustare fină. Începeți prin a vă pune aceste întrebări:
- Caz de utilizare: Care este cazul de utilizare pentru ajustarea fină? Ce aspect al modelului pre-antrenat actual doriți să îmbunătățiți?
- Alternative: Ați încercat alte tehnici pentru a obține rezultatele dorite? Folosiți-le pentru a crea o bază de comparație.
- Ingineria prompturilor: Încercați tehnici precum prompturi cu puține exemple, cu exemple de răspunsuri relevante. Evaluați calitatea răspunsurilor.
- Generarea augmentată prin recuperare: Încercați să augmentați prompturile cu rezultate ale interogărilor obținute prin căutarea datelor voastre. Evaluați calitatea răspunsurilor.
- Costuri: Ați identificat costurile pentru ajustarea fină?
- Ajustabilitate - este modelul pre-antrenat disponibil pentru ajustare fină?
- Efort - pentru pregătirea datelor de antrenament, evaluarea și rafinarea modelului.
- Resurse de calcul - pentru rularea sarcinilor de ajustare fină și implementarea modelului ajustat fin.
- Date - acces la suficiente exemple de calitate pentru impactul ajustării fine.
- Beneficii: Ați confirmat beneficiile ajustării fine?
- Calitate - modelul ajustat fin a depășit baza de comparație?
- Cost - reduce utilizarea token-urilor prin simplificarea prompturilor?
- Extensibilitate - poate fi reutilizat modelul de bază pentru noi domenii?
Răspunzând la aceste întrebări, ar trebui să puteți decide dacă ajustarea fină este abordarea potrivită pentru cazul vostru de utilizare. Ideal, abordarea este validă doar dacă beneficiile depășesc costurile. Odată ce decideți să continuați, este timpul să vă gândiți cum puteți ajusta fin modelul pre-antrenat.
Doriți mai multe informații despre procesul de luare a deciziilor? Urmăriți Să ajustăm fin sau nu?
Pentru a ajusta fin un model pre-antrenat, aveți nevoie de:
- un model pre-antrenat pentru ajustare fină
- un set de date pentru ajustare fină
- un mediu de antrenament pentru a rula sarcina de ajustare fină
- un mediu de găzduire pentru a implementa modelul ajustat fin
Următoarele resurse oferă tutoriale pas cu pas pentru a vă ghida printr-un exemplu real folosind un model selectat cu un set de date curat. Pentru a parcurge aceste tutoriale, aveți nevoie de un cont la furnizorul specific, împreună cu acces la modelul și seturile de date relevante.
| Furnizor | Tutorial | Descriere |
|---|---|---|
| OpenAI | Cum să ajustați fin modelele de chat | Învățați să ajustați fin un gpt-35-turbo pentru un domeniu specific ("asistent de rețete") prin pregătirea datelor de antrenament, rularea sarcinii de ajustare fină și utilizarea modelului ajustat fin pentru inferență. |
| Azure OpenAI | Tutorial de ajustare fină GPT 3.5 Turbo | Învățați să ajustați fin un model gpt-35-turbo-0613 pe Azure parcurgând pașii pentru a crea și încărca datele de antrenament, a rula sarcina de ajustare fină. Implementați și utilizați noul model. |
| Hugging Face | Ajustarea fină a LLM-urilor cu Hugging Face | Acest articol de blog vă ghidează în ajustarea fină a unui LLM deschis (ex: CodeLlama 7B) folosind biblioteca transformers și Transformer Reinforcement Learning (TRL) cu seturi de date deschise pe Hugging Face. |
| 🤗 AutoTrain | Ajustarea fină a LLM-urilor cu AutoTrain | AutoTrain (sau AutoTrain Advanced) este o bibliotecă Python dezvoltată de Hugging Face care permite ajustarea fină pentru multe sarcini diferite, inclusiv ajustarea fină a LLM-urilor. AutoTrain este o soluție fără cod, iar ajustarea fină poate fi realizată în propriul nor, pe Hugging Face Spaces sau local. Suportă atât o interfață web, CLI, cât și antrenament prin fișiere de configurare yaml. |
Selectați unul dintre tutorialele de mai sus și parcurgeți-l. Este posibil să replicăm o versiune a acestor tutoriale în Jupyter Notebooks în acest depozit doar pentru referință. Vă rugăm să folosiți sursele originale direct pentru a obține cele mai recente versiuni.
După ce ați finalizat această lecție, consultați Colecția de învățare AI generativă pentru a continua să vă dezvoltați cunoștințele despre AI generativ!
Felicitări!! Ați finalizat ultima lecție din seria v2 a acestui curs! Nu vă opriți din învățare și construire. **Consultați pagina RESURSE pentru o listă de sugestii suplimentare doar pentru acest subiect.
Seria noastră de lecții v1 a fost, de asemenea, actualizată cu mai multe teme și concepte. Așadar, luați un minut pentru a vă reîmprospăta cunoștințele - și vă rugăm să împărtășiți întrebările și feedback-ul vostru pentru a ne ajuta să îmbunătățim aceste lecții pentru comunitate.
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de oameni. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.

