Tagliare i pesi insignificanti

Questo documento fornisce una panoramica sull'eliminazione del modello per aiutarti a determinare come si adatta al tuo caso d'uso.

Panoramica

L'eliminazione del peso basata sulla grandezza azzera gradualmente i pesi del modello durante il processo di training per ottenere la scarsità del modello. I modelli sparsi sono più facili da comprimere e possiamo saltare gli zeri durante l'inferenza per migliorare la latenza.

Questa tecnica apporta miglioramenti tramite la compressione del modello. In futuro, il supporto del framework per questa tecnica fornirà miglioramenti della latenza. Abbiamo riscontrato miglioramenti fino a 6 volte nella compressione del modello con una perdita minima di precisione.

La tecnica è in fase di valutazione in varie applicazioni vocali, come il riconoscimento vocale e la sintesi vocale, ed è stata sperimentata in vari modelli di visione e traduzione.

Matrice di compatibilità API

Gli utenti possono applicare l'eliminazione con le seguenti API:

  • Modellismo: keras con i soli modelli Sequenziale e Funzionale
  • Versioni TensorFlow: TF 1.x per le versioni 1.14+ e 2.x.
    • tf.compat.v1 con un pacchetto TF 2.X e tf.compat.v2 con un pacchetto TF 1.X non sono supportati.
  • Modalità di esecuzione di TensorFlow: sia grafica che entusiasta
  • Formazione distribuita: tf.distribute con sola esecuzione del grafico

È nel nostro piano d'azione aggiungere supporto nelle seguenti aree:

Risultati

Classificazione delle immagini

Modello Precisione Top-1 non scarsa Precisione sparsa casuale Sparsità casuale Precisione sparsa strutturata Sparsità strutturata
InceptionV3 78,1% 78,0% 50% 75,8% 2 per 4
76,1% 75%
74,6% 87,5%
MobilenetV1 224 71,04% 70,84% 50% 67,35% 2 per 4
MobilenetV2 224 71,77% 69,64% 50% 66,75% 2 per 4

I modelli sono stati testati su Imagenet.

Traduzione

Modello BLEU non sparso BLEU sparso Sparsità
GNMT EN-DE 26.77 26.86 80%
26.52 85%
26.19 90%
GNMT DE-EN 29.47 29.50 80%
29.24 85%
28.81 90%

I modelli utilizzano il set di dati WMT16 tedesco e inglese con news-test2013 come set di sviluppo e news-test2015 come set di test.

Modello di individuazione delle parole chiave

DS-CNN-L è un modello di individuazione delle parole chiave creato per dispositivi edge. Può essere trovato nel repository degli esempi del software ARM.

Modello Precisione non sparsa Precisione sparsa strutturata (modello 2 per 4) Precisione sparsa casuale (sparsità target 50%)
DS-CNN-L 95.23 94.33 94,84

Esempi

Oltre al tutorial Prune with Keras , vedere i seguenti esempi:

  • Addestra un modello CNN sull'attività di classificazione delle cifre scritte a mano MNIST con potatura: codice
  • Addestra un LSTM sull'attività di classificazione del sentiment IMDB con potatura: codice

Per informazioni generali, vedere Per potare o non potare: esplorare l'efficacia della potatura per la compressione del modello [ articolo ].