7.0. LoRA Improvements in fine-tuning
Last updated
Last updated
Korišćenje LoRA značajno smanjuje računarske resurse potrebne za fino podešavanje već obučenih modela.
LoRA omogućava efikasno fino podešavanje velikih modela tako što menja samo mali deo modela. Smanjuje broj parametara koje treba obučiti, štedeći memoriju i računarske resurse. To je zato što:
Smanjuje broj obučivih parametara: Umesto da ažurira celu težinsku matricu u modelu, LoRA delimi težinsku matricu na dve manje matrice (nazvane A i B). To čini obuku bržom i zahteva manje memorije jer je potrebno ažurirati manje parametara.
To je zato što umesto da izračunava potpuno ažuriranje težine sloja (matrice), aproksimira ga kao proizvod 2 manje matrice, smanjujući ažuriranje za izračun:\
2. **Održava originalne težine modela nepromenjenim**: LoRA vam omogućava da zadržite originalne težine modela iste, i samo ažurira **nove male matrice** (A i B). To je korisno jer znači da je originalno znanje modela sačuvano, a vi samo prilagođavate ono što je neophodno. 3. **Efikasno fino podešavanje specifično za zadatak**: Kada želite da prilagodite model za **novi zadatak**, možete samo obučiti **male LoRA matrice** (A i B) dok ostavljate ostatak modela nepromenjenim. Ovo je **mnogo efikasnije** od ponovnog obučavanja celog modela. 4. **Efikasnost skladištenja**: Nakon finog podešavanja, umesto da sačuvate **novi model** za svaki zadatak, potrebno je da sačuvate samo **LoRA matrice**, koje su veoma male u poređenju sa celim modelom. To olakšava prilagođavanje modela mnogim zadacima bez prekomernog korišćenja skladišta.
Da biste implementirali LoraLayers umesto Linear slojeva tokom finog podešavanja, ovde je predložen ovaj kod https://github.com/rasbt/LLMs-from-scratch/blob/main/appendix-E/01_main-chapter-code/appendix-E.ipynb: