Utilizarea modelelor mari de limbaj pentru a construi aplicații AI generative vine cu provocări noi. O problemă esențială este asigurarea calității răspunsurilor (acuratețea și relevanța) în conținutul generat de model pentru o cerere specifică a utilizatorului. În lecțiile anterioare, am discutat tehnici precum ingineria promptului și generarea augmentată prin recuperare, care încearcă să rezolve problema prin modificarea inputului promptului către modelul existent.
În lecția de astăzi, discutăm o a treia tehnică, ajustarea fină, care încearcă să abordeze această provocare prin reuținerea modelului în sine cu date suplimentare. Să trecem la detalii.
Această lecție introduce conceptul de ajustare fină pentru modelele pre-antrenate de limbaj, explorează beneficiile și provocările acestei abordări și oferă ghiduri despre când și cum să folosești ajustarea fină pentru a îmbunătăți performanța modelelor tale AI generative.
La finalul acestei lecții, ar trebui să poți răspunde la următoarele întrebări:
- Ce este ajustarea fină pentru modelele de limbaj?
- 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.
Dorești să ai o privire de ansamblu asupra a ceea ce vom acoperi înainte să intrăm în detalii? Consultă acest ghid ilustrat care descrie traseul de învățare pentru această lecție – de la înțelegerea conceptelor cheie și a motivației 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 să verifici pagina Resurse pentru linkuri suplimentare care să susțină călătoria ta de învățare autodirijată!
Prin definiție, modelele mari de limbaj sunt pre-antrenate pe cantități mari de text provenind din surse diverse, inclusiv internetul. Așa cum am învățat în lecțiile anterioare, avem nevoie de tehnici ca ingineria promptului și generarea augmentată prin recuperare pentru a îmbunătăți calitatea răspunsurilor modelului la întrebările ("promptele") utilizatorului.
O tehnică populară de inginerie a promptului implică oferirea modelului mai multă îndrumare despre ce se așteaptă în răspuns fie prin furnizarea de instrucțiuni (ghidaj explicit), fie oferindu-i câteva exemple (ghidaj implicit). Aceasta se numește învățare cu puține exemple (few-shot learning), dar prezintă două limitări:
- Limitările de tokeni ale modelului pot restricționa numărul de exemple pe care le poți oferi și pot limita eficiența.
- Costurile legate de tokeni pot face scumpă adăugarea de exemple la fiecare prompt, limitând flexibilitatea.
Ajustarea fină este o practică comună în sistemele de învățare automată în care preluă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 de limbaj, putem ajusta fin modelul pre-antrenat cu un set selectat de exemple pentru o anumită sarcină sau domeniu de aplicație, pentru a crea un model personalizat care să fie mai precis și mai relevant pentru acea sarcină sau domeniu specific. Un beneficiu suplimentar al ajustării fine este că aceasta poate reduce și numărul de exemple necesare în învățarea cu puține exemple – reducând consumul de tokeni și costurile asociate.
În acest context, când vorbim despre ajustarea fină, ne referim la ajustarea fină supravegheată, unde reantrenarea se face prin adăugarea de date noi care nu au făcut parte din setul de date inițial de antrenament. Aceasta diferă de o abordare neasistată unde modelul este reantrenat pe datele originale, dar cu hiperparametri diferiți.
Aspectul cheie 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 făcută incorect, aceasta poate să nu ofere îmbunătățirile așteptate și chiar să degradeze performanța modelului pentru domeniul vizat.
Așadar, înainte să înveți „cum” să ajustezi fin modelele de limbaj, trebuie să știi „de ce” ar trebui să alegi această cale și „când” să începi procesul de ajustare fină. Începe prin a-ți pune următoarele întrebări:
- Cazul de utilizare: Care este cazul tău de utilizare pentru ajustarea fină? Ce aspect al modelului pre-antrenat actual vrei să îmbunătățești?
- Alternative: Ai încercat alte tehnici pentru a obține rezultatele dorite? Folosește-le pentru a crea un punct de referință pentru comparație.
- Ingineria promptului: Încearcă tehnici precum few-shot prompting cu exemple relevante de răspunsuri la prompturi. Evaluează calitatea răspunsurilor.
- Generarea augmentată prin recuperare: Încearcă să mărești prompturile cu rezultatele căutărilor în datele tale. Evaluează calitatea răspunsurilor.
- Costuri: Ai identificat costurile pentru ajustarea fină?
- Posibilitatea de ajustare – este modelul pre-antrenat disponibil pentru ajustare fină?
- Efort – pentru pregătirea datelor de antrenament, evaluarea și rafinarea modelului.
- Computație – pentru rularea joburilor de ajustare fină și pentru implementarea modelului ajustat.
- Date – acces la suficiente exemple de calitate pentru impactul ajustării fine.
- Beneficii: Ai confirmat beneficiile ajustării fine?
- Calitate – modelul ajustat fin a depășit baza de referință?
- Cost – reduce utilizarea tokenilor prin simplificarea prompturilor?
- Extensibilitate – poți reutiliza modelul de bază pentru noi domenii?
Răspunzând acestor întrebări, ar trebui să poți decide dacă ajustarea fină este abordarea potrivită pentru cazul tău de utilizare. Ideal, abordarea este valabilă numai dacă beneficiile depășesc costurile. Odată ce decizi să continui, este timpul să te gândești cum poți ajusta fin modelul pre-antrenat.
Vrei mai multe insight-uri despre procesul decizional? Vizualizează To fine-tune or not to fine-tune
Pentru a ajusta fin un model pre-antrenat, ai nevoie de:
- un model pre-antrenat pentru ajustare fină
- un set de date pentru ajustarea fină
- un mediu de antrenament pentru a rula jobul de ajustare fină
- un mediu de găzduire pentru a implementa modelul ajustat fin
Resursele următoare oferă tutoriale pas cu pas care te vor ghida printr-un exemplu real folosind un model selectat cu un set de date atent ales. Pentru a parcurge aceste tutoriale, ai nevoie de un cont la furnizorul specific, precum și acces la modelele și seturile de date relevante.
| Furnizor | Tutorial | Descriere |
|---|---|---|
| OpenAI | Cum să ajustezi fin modelele de chat | Învață să ajustezi fin un gpt-35-turbo pentru un domeniu specific („asistent de rețete”) prin pregătirea datelor de antrenament, rularea jobului de ajustare fină și folosirea modelului ajustat pentru inferență. |
| Azure OpenAI | Tutorial de ajustare fină GPT 3.5 Turbo | Învață să ajustezi fin un model gpt-35-turbo-0613 pe Azure parcurgând pași pentru crearea și încărcarea datelor de antrenament, rularea jobului de ajustare fină, implementarea și utilizarea noului model. |
| Hugging Face | Ajustarea fină a LLM-urilor cu Hugging Face | Acest articol explică cum să ajustezi fin un LLM open source (ex: CodeLlama 7B) folosind biblioteca transformers și Transformer Reinforcement Learning (TRL), împreună cu seturi de date deschise (datasets) 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 și ajustarea fină poate fi făcută în propriul tău cloud, pe Hugging Face Spaces sau local. Suportă interfață web GUI, CLI și antrenament prin fișiere de configurare yaml. |
| 🦥 Unsloth | Ajustarea fină a LLM-urilor cu Unsloth | Unsloth este un cadru open-source ce sprijină ajustarea fină a LLM-urilor și învățarea prin întărire (RL). Unsloth simplifică antrenamentul local, evaluarea și implementarea cu notebook-uri gata de folosit. Suportă de asemenea text-în-voce (TTS), BERT și modele multimodale. Pentru a începe, citește ghidul lor pas cu pas Fine-tuning LLMs Guide. |
Selectează unul dintre tutorialele de mai sus și parcurge-l. Este posibil să replicăm o versiune a acestor tutoriale în Jupyter Notebooks în acest depozit doar pentru referință. Te rugăm să folosești sursele originale direct pentru a obține cele mai recente versiuni.
După ce ai terminat această lecție, consultă colecția noastră de Învățare AI Generativ pentru a continua să-ți crești cunoștințele despre AI Generativ!
Felicitări!! Ai finalizat lecția finală din seria v2 a acestui curs! Nu te opri din a învăța și a construi. **Vezi pagina RESURSE pentru o listă de sugestii suplimentare doar pentru acest subiect.
Seria noastră v1 de lecții a fost de asemenea actualizată cu mai multe teme și concepte. Așadar ia-ți un minut pentru a-ți reîmprospăta cunoștințele – și te rugăm împărtășește întrebările și feedback-ul tău 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 automată AI Co-op Translator. Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un traducător uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot rezulta din utilizarea acestei traduceri.

