7.0. LoRA Improvements in fine-tuning
Last updated
Last updated
Matumizi ya LoRA hupunguza sana hesabu inayohitajika ili kuboresha mifano iliyofundishwa tayari.
LoRA inafanya iwezekane kuboresha mifano mikubwa kwa ufanisi kwa kubadilisha tu sehemu ndogo ya mfano. Inapunguza idadi ya vigezo unavyohitaji kufundisha, ikihifadhi kumbukumbu na rasilimali za kompyuta. Hii ni kwa sababu:
Inapunguza Idadi ya Vigezo Vinavyoweza Kufundishwa: Badala ya kuboresha matrix nzima ya uzito katika mfano, LoRA inahesabu matrix ya uzito kuwa matrices mbili ndogo (zinazoitwa A na B). Hii inafanya mafunzo kuwa ya haraka na inahitaji kumbukumbu kidogo kwa sababu vigezo vichache vinahitaji kuboreshwa.
Hii ni kwa sababu badala ya kuhesabu sasisho kamili la uzito wa safu (matrix), inakadiria kuwa ni bidhaa ya matrices 2 ndogo ikipunguza sasisho la kuhesabu:\
2. **Inahifadhi Uzito wa Mfano wa Asili Bila Kubadilika**: LoRA inakuwezesha kuhifadhi uzito wa mfano wa asili kuwa sawa, na inasasisha tu **matrices ndogo mpya** (A na B). Hii ni muhimu kwa sababu inamaanisha kuwa maarifa ya asili ya mfano yanahifadhiwa, na unabadilisha tu kile kinachohitajika. 3. **Uboreshaji wa Kazi Maalum kwa Ufanisi**: Unapotaka kuadaptisha mfano kwa **kazi mpya**, unaweza tu kufundisha **matrices ndogo za LoRA** (A na B) huku ukiacha sehemu nyingine ya mfano kama ilivyo. Hii ni **ya ufanisi zaidi** kuliko kufundisha upya mfano mzima. 4. **Ufanisi wa Hifadhi**: Baada ya kuboresha, badala ya kuhifadhi **mfano mpya mzima** kwa kila kazi, unahitaji tu kuhifadhi **matrices za LoRA**, ambazo ni ndogo sana ikilinganishwa na mfano mzima. Hii inafanya iwe rahisi kuadaptisha mfano kwa kazi nyingi bila kutumia hifadhi nyingi.
Ili kutekeleza LoraLayers badala ya zile za Linear wakati wa uboreshaji, msimbo huu unapendekezwa hapa https://github.com/rasbt/LLMs-from-scratch/blob/main/appendix-E/01_main-chapter-code/appendix-E.ipynb: