Bosh sahifa Wiki Pruning

Pruning

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