Hvad betyder Model pruning?
Pruning er en tilgang til at reducere dele af en model, som efter et valgt kriterium vurderes mindre nødvendige. Det kan være individuelle vægte, hele kanaler eller andre strukturer. Målet kan være mindre lagring, lavere beregningsbehov eller en model, der passer til en bestemt driftssituation.
Unstructured pruning kan sætte udvalgte vægte til nul og skabe sparsitet. Structured pruning retter sig mod mere sammenhængende dele af arkitekturen. Forskellen har betydning for, om almindelig hardware og software kan omsætte ændringen til faktisk hurtigere beregning.
En model med mange nulværdier kører ikke automatisk hurtigere. Hvis softwaren stadig udfører de samme tætte beregninger, kan den praktiske gevinst være begrænset. Modelstørrelse, ressourceforbrug og kvalitet skal derfor vurderes hver for sig.
Et kriterium for fjernelse er en antagelse
Et simpelt kriterium kan være størrelsen af vægte, mens andre metoder bruger mere information om modellens adfærd. At en vægt er lille, er ikke et universelt bevis for, at dens fjernelse er uden betydning.
Pruning kan kombineres med yderligere træning eller foretages gradvist. Den konkrete proces og rækkefølge bør dokumenteres. Sammenlign den endelige model med en reference frem for kun at rapportere, hvor meget der er fjernet.
Kontrollér den eksporterede model
Mål på den version og det format, der faktisk skal bruges i drift. En træningsimplementation med masker kan have andre egenskaber end en eksporteret model. Det er denne sidste version, der skal overholde krav til hukommelse, svartid og output.
Undersøg særskilt de opgavetyper, som er følsomme for kvalitetstab. En samlet score kan være stabil, mens en sjælden fejltype bliver vanskeligere at opdage. Bevar mulighed for at vende tilbage til referenceversionen.
Et eksempel fra praksis
Forestil jer et projekt, der bruger en billedmodel på en mindre lokal enhed. Teamet afprøver struktureret reduktion og eksporterer modellen til det tiltænkte driftsformat. De måler derefter på selve enheden.
Piloten sammenligner både køretid og genkendelse af de produktfejl, som er vigtige for virksomheden. Hvis en stor procentdel fjernede vægte ikke giver mærkbar driftsgevinst, er procenten ikke et nyttigt succeskriterium. En enklere modelarkitektur kan være et bedre næste forsøg.
Typiske faldgruber
- Sparsitet kan blive forvekslet med en dokumenteret hastighedsgevinst.
- Et fjernelseskriterium kan overse parametre, som er vigtige i sjældne situationer.
- En test i træningsmiljøet kan give et andet billede end den eksporterede model på måludstyret.
Det skal I afklare
- Hvilke dele fjernes, efter hvilket kriterium og med hvilken efterfølgende tilpasning?
- Kan det valgte driftsmiljø udnytte reduktionen?
- Er den eksporterede model testet på både almindelige og kritiske opgaver?
Spørgsmål og svar
Er pruning det samme som quantization?
Nej. Pruning fjerner eller deaktiverer dele af modellen. Kvantisering ændrer den numeriske repræsentation af værdier. Metoderne kan i nogle løsninger kombineres.
Kan vi bruge antal fjernede vægte som kvalitetsmål?
Det beskriver reduktionen, men ikke den praktiske værdi. Kvalitet, hukommelse og faktisk køretid skal måles særskilt.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- PyTorch: Pruning tutorial ↗Masker, struktureret og ustruktureret pruning.
- Hugging Face: Quantization overview ↗En beslægtet, men forskellig tilgang til modelkomprimering.

