struktureret beskæring
Teknik til modelkomprimering hvor hele strukturer, såsom kanaler, filtre eller lag, fjernes fra en neuralnetværksmodel for at reducere størrelse og beregningsomkostninger, samtidig med at den overordnede arkitektur bevares.
Kort fortalt
Struktureret beskæring gør en AI-model mindre og hurtigere ved at fjerne hele dele af den, i stedet for at fjerne enkelte vægte.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Teknik inden for modelkomprimering, hvor man fjerner hele kanaler, filtre eller lag fra et neuralt netværk for at reducere antallet af parametre og beregningsomkostninger, mens modellens arkitektur forbliver intakt (f.eks. antallet af lag).
- Efter struktureret beskæring af de mindst vigtige kanaler i et convolutional neural network blev modellen 40% mindre uden signifikant fald i nøjagtighed. — Eksempel fra praksis
- Struktureret beskæring kan implementeres lagvis ved at beregne en vigtighedsscore for hver kanal baseret på f.eks. L1-normen af vægtene. — Eksempel fra praksis
Hvornår bruges det
Anvendes typisk efter træning for at optimere en model til deployment på hardware med begrænsede ressourcer. Kræver ofte efterfølgende genoptræning for at genvinde tabt nøjagtighed. Beskæringsraten bestemmes ofte ud fra en vigtighedsmåling for hver struktur.
Kodeeksempel
import torch
import torch.nn as nn
def structured_prune_conv(layer, keep_mask):
"""
Beskær en Conv2d ved at beholde kun kanaler hvor keep_mask er True.
"""
layer.weight.data = layer.weight.data[keep_mask]
if layer.bias is not None:
layer.bias.data = layer.bias.data[keep_mask]
layer.out_channels = keep_mask.sum().item()
layer.in_channels = layer.weight.shape[1]
return layerFunktion der beskærer kanaler i et convolutional lag baseret på en boolsk maske. Masken angiver hvilke output-kanaler der skal beholdes.
Oprindelse
Begrebet 'beskæring' lånt fra havebrug, hvor grene beskæres. I maskinlæring overført til at fjerne overflødige dele af en model. 'Struktureret' angiver, at beskæringen sker på hel strukturer (kanaler, lag) frem for individuelle vægte.