Pruning — neural networkdagi kam foydali weight, neuron, channel, head yoki boshqa strukturani olib tashlash orqali modelni kichraytirish va hisoblashni kamaytirish usuli. Pruning modelning barcha parameterlari bir xil darajada muhim emasligi g‘oyasiga tayanadi.
Pruningdan keyin model ko‘pincha fine-tuning qilinadi. Aks holda keskin parameter olib tashlash sifatni sezilarli pasaytirishi mumkin.
Unstructured pruning
Alohida weightlar nolga aylantiriladi.
Masalan, absolute qiymati kichik weightlar olib tashlanadi.
Natijada sparse matrix hosil bo‘ladi.
Parameter soni kamayadi, lekin umumiy dense hardware sparse hisoblashni qo‘llamasa tezlik oshmasligi mumkin.
Structured pruning
Butun strukturali bloklar olib tashlanadi:
Output matrix o‘lchami kichrayadi.
Oddiy dense kernel bilan ham real tezlik olish osonroq.
Sifatga ta’siri unstructured usuldan kuchliroq bo‘lishi mumkin.
Magnitude pruning
Weight absolute qiymati muhimlik signali sifatida ishlatiladi.
Kichik weightlar avval olib tashlanadi.
Bu sodda va ko‘p modelda ishlaydi.
Kichik weight har doim foydasiz degani emas, chunki boshqa weightlar bilan interaction mavjud.
Global pruning
Barcha layer weightlari bitta umumiy threshold bilan baholanadi.
Model bo‘ylab eng kichik weightlar olinadi.
Ba’zi layerlar juda ko‘p, boshqalari kam prune qilinishi mumkin.
Layerlar scale’i farqli bo‘lsa normalization talab qilinadi.
Layer-wise pruning
Har layer uchun alohida sparsity darajasi belgilanadi.
Sezgir layer kamroq, redundant layer ko‘proq qisqartiriladi.
Sensitivity analysis layerlar kesilganda metric qanday o‘zgarishini o‘lchaydi.
Iterative pruning
Parameterlar birdan katta miqdorda emas, bosqichma-bosqich olib tashlanadi.
Har bosqichdan keyin model fine-tuning qilinadi.
Bu sifatni yaxshiroq saqlashi mumkin.
Training va hisoblash vaqti ko‘proq.
One-shot pruning
Model bir marta tahlil qilinadi va ma’lum sparsity darajasiga bir qadamda kesiladi.
Tez va sodda.
Yuqori sparsityda iterative usulga qaraganda sifat yomonlashishi ehtimoli bor.
Pruning mask
Unstructured pruningda binary mask qaysi weight active ekanini belgilaydi.
Trainingda masklangan weightlar nol bo‘lib qoladi.
Artifactda mask alohida saqlanishi yoki sparse formatga aylantirilishi mumkin.
Dense matrix va maskni saqlash hajm tejamini to‘liq bermaydi.
Sparse format
Sparse matrix faqat non-zero qiymat va indexlarni saqlaydi.
Keng formatlar:
- CSR;
- CSC;
- block sparse;
- hardware-specific packing.
Sparsity past bo‘lsa index metadata tejamni yo‘qotishi mumkin.
N:M sparsity
Har M weight guruhida faqat N tasi non-zero bo‘lishi talab qilinadi.
Masalan, 2:4 sparsity.
Bu structured va unstructured usul orasidagi muvozanat.
Ayrim acceleratorlar bunday patternni maxsus tezlashtiradi.
Channel pruning
CNNda butun output channel yoki filter olib tashlanadi.
Keyingi layerning mos input channeli ham qisqaradi.
Model dimensionlari haqiqiy kichrayadi.
Channel importance norm, activation yoki gradient bilan baholanishi mumkin.
Head pruning
Transformer attention headlarining ayrimlari olib tashlanadi.
Ko‘p headlar redundant bo‘lishi mumkin.
Biroq headlarning foydasi task va layerga bog‘liq.
Pruned architecture serving framework tomonidan qo‘llanishi kerak.
Layer dropping
Butun Transformer yoki residual block olib tashlanadi.
Depth kamayadi va latency sezilarli pasayishi mumkin.
LayerDropga o‘xshash training usuli modelni keyin turli chuqurlikda ishlashga tayyorlaydi.
Lottery Ticket Hypothesis
Katta random network ichida training uchun samarali kichik subnet mavjud bo‘lishi mumkin degan g‘oya.
Pruning va weight initialization orqali shunday “winning ticket” topishga oid tadqiqotlar mavjud.
Amaliy katta modelda uni topish qimmat bo‘lishi mumkin.
Pruning during training
Model training vaqtida sparsityga majburlanadi.
Regularization yoki dynamic sparse training active connectionlarni o‘zgartirishi mumkin.
Bu to‘liq dense pretrained model yaratmasdan sparse model olishga intiladi.
Implementation murakkabroq.
Fine-tuningdan keyingi tiklash
Pruningdan keyin loss oshadi.
Fine-tuning qolgan parameterlarni yangi strukturaga moslashtiradi.
Learning rate odatda kichikroq.
Qattiq pruned model original sifatga to‘liq qaytmasligi mumkin.
Pruning va quantization
Pruning parameterlar sonini kamaytiradi.
Quantization qolgan parameterlarning bit hajmini kamaytiradi.
Ikkalasi birga qo‘llanishi mumkin.
Sparse low-bit kernel va artifact formati target hardware bilan mos bo‘lishi kerak.
Real tezlik
90% weight nol bo‘lsa ham model 10 baravar tezlashmasligi mumkin.
Sabablar:
- sparse index overhead;
- memory access;
- kernel support;
- batch size;
- layerlar orasidagi bottleneck;
- dense operationlar qolishi.
End-to-end latency target qurilmada o‘lchanadi.
Sensitivity analysis
Har layer ma’lum foizga prune qilinib, validation metricdagi o‘zgarish o‘lchanadi. Sifat tez pasayadigan layer sezgir hisoblanadi va kamroq qisqartiriladi. Bu bir xil global sparsitydan ko‘ra moslashuvchan schedule yaratadi. Analysis faqat kichik sample’da bajarilsa haqiqiy production tasklarni yetarli ifodalamasligi mumkin.
Reparameterization
Structured pruningdan keyin nol channelni faqat mask bilan yopish o‘rniga model graphidan butunlay chiqarish mumkin. Keyingi layer weightlari ham yangi shape’ga kesiladi. Shunda artifact, FLOP va memory haqiqiy kamayadi. Graph rewrite’dan keyin normalization statisticasi va residual dimensionlari moslashtiriladi.
Fine-tuning jadvali
Pruned model dastlab kichik learning rate bilan tiklanadi. Sparsity bir necha bosqichda oshirilsa har bosqich orasida stabilization davri beriladi.
Bog‘liq tushunchalar
Model pruning, Unstructured pruning, Structured pruning, Sparsity, Magnitude pruning, Channel pruning, Attention head pruning, Sparse matrix, Model compression, Fine-tuning