• Жариялау күні
    Ақпан 18, 2025
  • үлес

Бұл блог жазбасында мен мақаланы қарастыра отырып, LoRA (үлкен тілдік модельдердің төмен рангілі бейімделуі) әдісінің егжей-тегжейлері мен принциптері туралы айтатын боламын . Мақаланың негізгі мақсаты - модельді дәл баптау құнын төмендететін және оның өнімділігін арттыратын жаңа құрылымды ұсыну. Дәл баптау операциялары біраз уақыттан бері табиғи тілді өңдеу зерттеулерінде маңызды орынға ие болды. Айталық, сізде оқытылған модель бар және сіз оның білімін кеңейткіңіз келеді. Сіз мұны модельді нөлден бастап оқытпай-ақ, дәл баптау арқылы жасай аласыз.

Жаттығудан кейін модельде n параметрі бар және оны дәл баптау керек делік. Толық дәлдеу әдісін пайдалансаңыз, үлгінің барлық параметрлері жаңартылады. Миллиардтаған параметрлері бар үлгілерді қарастырғанда, барлық параметрлерді жаңарту уақыт пен сақтау мәселелерін тудырады. Жұмыста LoRA әдісін қолдану арқылы RoBERTa, DeBERTa, GPT-2 және GPT-3 үлгілері үшін жақсы немесе тең өнімділік нәтижелеріне баса назар аударылады.

Қағазда LoRA әдісі Ли және оның зерттеулерінен шабыттандырылғаны айтылған. ал (2018a) және Агажанян және т.б. (2020). Бұл зерттеулер шамадан тыс параметрленген үлгілердің жетістігі шын мәнінде төмен ішкі өлшемге негізделгенін атап көрсетеді. Бұл LoRA әдісінің гипотезасын қалыптастырған нүкте болды.

LoRA әдісі толығымен дәрежені факторизациялауға негізделген зерттеу болып табылады. Бұл әдісте 1-суретте көрсетілгендей нейрондық желілердегі кейбір тығыз қабаттарға параллель екі ретті матрица қосылады. Бұл ретті матрицалар берілген ранг конфигурациясы арқылы құрылады. Төмендегі суретте ретті дәрежелі матрицаларды қосқаннан кейін тығыз қабаттың қалай көрінетіні көрсетілген. Енгізілетін айнымалылар бастапқы алдын ала дайындық салмақ матрицасы және ретті матрицалардың бірінші матрицасы арқылы жіберіледі. Содан кейін шығыс мәндері осы екі параллель матрицаның шығыстарын қорытындылау арқылы есептеледі.

 

Ekran Resmi 2024-12-26 15.25.36.png
Ақпарат көзі: https://arxiv.org/abs/2106.09685

LoRA әдісі

Нейрондық желілерде матрицалық көбейтуді орындайтын көптеген тығыз қабаттар бар. Бұл қабаттардағы салмақтық матрицалар шын мәнінде толық рангілі матрицалар болып табылады (барлық жолдар мен бағандар тәуелсіз). Бірақ Агаджанян және т.б. өз мақалаларында алдын ала дайындалған тілдік модельдердің «ішкі өлшемі» төмен екенін атап өтті. Бұл LoRA гипотезасын осы аспектіде қалыптастырды. Осылайша, LoRA гипотезасы модельдер белгілі бір тапсырмаға бейімделу кезінде салмақтық матрицадағы төмен өлшемді өзгерістермен үйрене алады дегенге айналды.

Бұл матрицаның жаңартулары матрицалар арқылы жасалды 

Ekran_Resmi_2024_12_26_15_32_57_6efdebb733.png

төмен разрядпен бөлінеді. Мұнда B - dxr матрицасы, А - rxk матрицасы, ал r (ранғы) d және k-ден әлдеқайда аз. Нақты баптау кезінде Wo-ға градиент жаңартуларына жол берілмейді. Wo және ∆W матрицалары бірдей кіріс мәндеріне көбейтіледі және нәтижелер жинақталады және h= w0 + ∆Wx = w0 +BAx шығысы жасалады.

Тренингтің басында олар А матрицасының мәндері үшін кездейсоқ Гаусс инициализациясын және В матрицасының мәндері үшін толық нөлдік инициализацияны қолданды. Басқаша айтқанда, BA басында нөлге тең.

Трансформатор сәулетіндегі LoRA қолданбасы

Өзіне көңіл бөлу модулінде 4 салмақ матрицасы Wq, Wk, Wv, Wo және трансформатор архитектурасында MLP модулінде 2 салмақ матрицасы бар. LoRA бейімделуі кезінде олар MLP модуліндегі салмақтарды қатырды және жаттығуды қарапайым ету үшін зейін салмақтарына әдісті қолданды.

артықшылықтары   

  • LoRA ұсынатын ең үлкен ыңғайлылықтар жад пен жадты пайдалану болып табылады. Мысалы, мақалада Адаммен үйретілген үлкен трансформатор үлгісі үшін VRAM пайдалануы << r d болса, 2/3-ке дейін төмендейтіні айтылған. Бұл оңтайландыру күйлері бекітілген параметрлер үшін сақталмағандықтан.
  • GPT-3 175B моделі үшін VRAM тұтынуы 1.2 ТБ-дан 350 ГБ-қа дейін төмендеді.
  • r=4 және тек мән мен сұрау матрицаларының салмақтары өзгертілген сценарийде бақылау нүктесінің өлшемі 350 ГБ-тан 35 МБ-қа дейін қысқарды. Бұл жаттығуды аз графикалық процессорлармен орындауға мүмкіндік берді.
  • Сонымен қатар, параметрлердің көпшілігінде градиент жаңартуы болмағандықтан, толық дәл реттеу процесімен салыстырғанда GPT-25 3B LoRA көмегімен жаттығу кезінде 175% жеделдетуге қол жеткізілді.

Сондай-ақ мақалада дәл баптау процесі басқа тіл үшін қажет болса, LoRA орнына бүкіл үлгіні пайдалану керектігі айтылған.

Қосымша білім

Дәреже дегеніміз не

Ранг - матрицаның сызықтық тәуелсіз бағандарының немесе жолдарының жалпы саны. n бағанынан тұратын және барлық бағандары бір-бірінен тәуелсіз матрица бар деп есептейік, онда бұл матрицаның баған рангісі n деп айта аламыз. Тағы да, егер n жолынан тұратын матрицаның барлық жолдары бір-бірінен тәуелсіз болса, онда матрицаның жол рангісі n деп айта аламыз.

Матрицаның жол және баған дәрежесі тең болуы керек. Мысал ретінде төмендегі матрицаны қарастыруға болады.

А матрицасы = [[1,2,5], [ 2, 4, 10] ]

Егер матрицаны мұқият қарасақ, 2-ші қатар 1-ші қатардан екі есе көп екенін көреміз. Сол сияқты матрицаның 2-ші және 3-ші бағандары сәйкесінше 2-ші бағанның 5 және 1-іне тең. Басқаша айтқанда, матрицада жол негізінде бір жолда екі вектор және баған негізінде басқа жолда үш түрлі вектор болса, әрбір жол және баған негізінде бір ғана бірегей вектор бар. Бұл матрицаның дәрежесі 1 дегенді білдіреді.

Рангты табу үшін матрицаны оның эшелондық түріне түрлендіреміз, содан кейін кем дегенде бір нөлдік емес мәннен тұратын жолдар санын есептейміз.

Төмен дәрежелі матрица дегеніміз не

Матрицаларда дәреже бағандар немесе жолдар санына тең немесе одан аз болуы мүмкін. Ағымдағы жолдар немесе бағандар санынан кіші сызықтық тәуелсіз жолдар немесе бағандар бар матрицалар төмен дәрежелі матрицалар деп аталады. Барлық жолдар немесе бағандар тәуелсіз матрицалар толық дәрежелі матрицалар деп аталады.

Дәрежелік факторизация/декомпозиция дегеніміз не

r рангілі матрицаны L және R матрицаларына жіктеу арқылы B=LR^T ретінде қайта жаза аламыз. Мұндағы L - mxr өлшемдерінің матрицасы, ал R^T - rxn өлшемдерінің матрицасы. Бұл процесс рангілі жіктеу деп аталады.

Дәрежені факторизациялаудың маңыздылығы:

Ранг факторизациялау процесінің маңыздылығы - матрицаны кішірек матрицаларға, L және R матрицаларына бөлуге және оларды аз орынға сақтауға мүмкіндік береді. Бұл B-ны оның L және R факторларын сақтау арқылы сақтауға болатынын білдіреді. Бұл B-ны сақтау талаптарын mn сандарынан (m+n)r сандарына дейін азайтады. Мұнда айта кететін тағы бір мәселе, матрицаны осы екі кіші матрицаға бөлгеннен кейін, сол матрицаны қайтадан шығармай-ақ, матрица туралы көптеген есептеулер жүргізуге мүмкіндік береді. Осы себепті, төмен рангті матрицамен жұмыс істегенде, ранг факторизациялау әрқашан маңызды алғашқы қадам ретінде қарастырылады. Ранг факторизациялаудан кейін есептеулерді әлдеқайда жылдам және аз жадты пайдалануға болады.

Сонымен қатар

Төменгі рангті матрицалар туралы толығырақ ақпарат алу үшін Этан Р. Эпперлидің блогын және LoRA мақаласын оқи аласыз . Сонымен қатар, LoRA кодқа негізделген қолданбаларын microsoft/LoRA github репозиторийінде егжей-тегжейлі қарастыра аласыз.

Гизем АБАЛИ, магистр. / Топ жетекшісі