TLa metrica più comunemente utilizzata per definire le prestazioni dell’intelligenza artificiale è TOP (Tera Operations Per Second), che indica la capacità di calcolo ma semplifica eccessivamente la complessità dei sistemi di intelligenza artificiale. Quando si tratta di progettare un sistema di casi d'uso reali dell'IA, è necessario considerare anche molti altri fattori oltre i TOP, tra cui le dimensioni della memoria/cache e la larghezza di banda, i tipi di dati, l'efficienza energetica, ecc.
Inoltre, ogni caso d’uso dell’IA ha le sue caratteristiche e richiede un esame olistico dell’intera pipeline dei casi d’uso. Questo esame approfondisce il suo impatto sui componenti del sistema ed esplora le tecniche di ottimizzazione per prevedere le migliori prestazioni della pipeline.
In questo post, scegliamo un caso d'uso dell'intelligenza artificiale: una funzionalità di zoom infinito in tempo reale end-to-end con un modello di inpainting diffusion-v2 stabile e studiamo come costruire un sistema di intelligenza artificiale corrispondente con le migliori prestazioni/Watt. Questo può servire come proposta, sia con tecnologie consolidate che con nuove idee di ricerca che possono portare a potenziali caratteristiche architettoniche.
Sfondo sullo zoom video end-to-end
- Come mostrato nel diagramma seguente, per rimpicciolire i fotogrammi video (immagine del pesce), ridimensioniamo e applichiamo una maschera di bordo ai fotogrammi prima di inserirli nella pipeline di pitturazione a diffusione stabile. Oltre a una richiesta di testo di input, questa pipeline genera frame con nuovo contenuto per riempire l'area mascherata dal bordo. Questo processo viene applicato continuamente a ciascun fotogramma per ottenere l'effetto di zoom indietro continuo. Per risparmiare potenza di calcolo, possiamo Campionare scarsamente i fotogrammi video per evitare di ridipingere ogni fotogramma(ad esempio, generando 1 fotogramma ogni 5 fotogrammi) se offre comunque un'esperienza utente soddisfacente.
- Verniciatura stabile con diffusione v2 la pipeline è pre-addestrata sul modello di diffusione stabile-2, che è un modello di diffusione latente da testo a immagine creato da Stability AI e LAION. La casella blu nel diagramma seguente mostra ciascun blocco funzione nella pipeline di inpainting
- Il modello di diffusione stabile-2 genera immagini con risoluzione 768*768, è addestrato a eliminare il rumore casuale in modo iterativo (50 passaggi) per ottenere una nuova immagine. Il processo di rimozione del rumore è implementato da Unet e dallo scheduler che è un processo molto lento e richiede molto calcolo e memoria.
Ci sono 4 modelli utilizzati nella pipeline come di seguito:
- VAE (codificatore di immagini). Converti l'immagine in una rappresentazione latente a bassa dimensionalità (64*64)
- CLIP (codificatore di testo). Architettura del trasformatore (77*768), 85MP
- UNet (processo di diffusione). Elaborazione iterativa di denoising tramite un algoritmo schedulare, 865M
- VAE (decodificatore di immagini). Trasforma la rappresentazione latente in un'immagine (512*512)
Le operazioni di diffusione più stabili (98% dei modelli autoencoder e codificatore di testo e 84% di U-Net) sono convoluzioni. La maggior parte delle restanti operazioni di U-Net (16%) sono dense moltiplicazioni di matrici dovute ai blocchi dell'autoattenzione. Questi modelli possono essere piuttosto grandi (varia a seconda degli iperparametri) e richiedono molta memoria. Per i dispositivi mobili con memoria limitata, è essenziale esplorare le tecniche di compressione del modello per ridurre le dimensioni del modello, inclusa la quantizzazione (riduzione della dimensione in modalità 2–4x e 2 -3 volte l'accelerazione da FP16 a INT4), potatura, scarsità, ecc.
Ottimizzazione dell'efficienza energetica per funzionalità AI come lo zoom video end-to-end
Per le funzionalità AI come lo zoom video, l'efficienza energetica è uno dei fattori principali per un'implementazione di successo su dispositivi edge/mobili. Questi dispositivi edge alimentati a batteria immagazzinano la loro energia nella batteria, con una capacità di mW-H (milliWatt ore, 1200WH significa 1200 watt in un'ora prima di scaricarsi, se un'applicazione consuma 2 W in un'ora, la batteria può alimentare l'apparecchio per 600 ore). L'efficienza energetica viene calcolata come IPS/Watt dove IPS sono le inferenze al secondo (FPS/Watt per applicazioni basate su immagini, TOPS/Watt )
È fondamentale ridurre il consumo energetico per ottenere una lunga durata della batteria dei dispositivi mobili, ci sono molti fattori che contribuiscono all'elevato consumo energetico, tra cui grandi quantità di transazioni di memoria dovute alle grandi dimensioni del modello, calcoli pesanti di moltiplicazioni di matrici, ecc., prendiamo un guarda come ottimizzare il caso d'uso per un utilizzo efficiente dell'energia.
- Ottimizzazione del modello.
Oltre alla quantizzazione, alla potatura e alla scarsità, esiste anche la condivisione del peso. Nella rete sono presenti molti pesi ridondanti mentre solo un numero limitato di pesi è utile; il numero di pesi può essere ridotto consentendo a più connessioni di condividere lo stesso peso mostrato di seguito. la matrice di peso originale 4*4 viene ridotta a 4 pesi condivisi e una matrice a 2 bit, i bit totali vengono ridotti da 512 bit a 160 bit.
2. Ottimizzazione della memoria.
La memoria è un componente critico che consuma più energia rispetto alle moltiplicazioni di matrici. Ad esempio, il consumo energetico di un'operazione DRAM può essere di ordini di grandezza superiore a quello di un'operazione di moltiplicazione. Nei dispositivi mobili, ospitare modelli di grandi dimensioni nella memoria locale del dispositivo è spesso impegnativo. Ciò porta a numerose transazioni di memoria tra la memoria del dispositivo locale e la DRAM, con conseguente maggiore latenza e aumento del consumo energetico.
L’ottimizzazione dell’accesso alla memoria off-chip è fondamentale per migliorare l’efficienza energetica. L'articolo (Ottimizzazione dell'accesso alla memoria off-chip per Deep Neural Network Accelerator (4)) ha introdotto un algoritmo di pianificazione adattivo progettato per ridurre al minimo l'accesso alla DRAM. Questo approccio ha dimostrato un sostanziale consumo energetico e una riduzione della latenza, compresi tra il 34% e il 93%.
Un nuovo metodo (romanzi (5)) si propone di ridurre al minimo l'accesso alla memoria per il risparmio energetico. L'idea principale è ottimizzare la giusta dimensione del blocco della partizione del livello CNN per abbinare le risorse DRAM/SRAM e massimizzare il riutilizzo dei dati, nonché ottimizzare la pianificazione dell'accesso ai riquadri per ridurre al minimo il numero di accessi DRAM. La mappatura dei dati su DRAM si concentra sulla mappatura di un riquadro dati su diverse colonne nella stessa riga per massimizzare i riscontri del buffer di riga. Per porzioni di dati più grandi, è possibile utilizzare lo stesso banco in chip diversi per il parallelismo a livello di chip. Inoltre, se viene riempita la stessa riga in tutti i chip, i dati vengono mappati nelle diverse banche nello stesso chip per il parallelismo a livello di banca. Per la SRAM è possibile applicare un concetto simile di parallelismo a livello di banca. Il flusso di ottimizzazione proposto può far risparmiare energia del 12% per AlexNet, del 36% per VGG-16 e del 46% per MobileNet. Di seguito è mostrato un diagramma di flusso di alto livello del metodo proposto e un'illustrazione schematica della mappatura dei dati DRAM.
3. Scalabilità dinamica della potenza.
La potenza di un sistema può essere calcolata da P=C*F*V², dove F è la frequenza operativa e V è la tensione operativa. Tecniche come DVFS (ridimensionamento dinamico della frequenza della tensione) sono state sviluppate per ottimizzare la potenza di autonomia. Ridimensiona la tensione e la frequenza in base alla capacità del carico di lavoro. Nell'apprendimento profondo, il DVFS a livello non è appropriato poiché il ridimensionamento della tensione ha una lunga latenza. D'altra parte, il ridimensionamento della frequenza è abbastanza veloce da tenere il passo con ogni livello. UN ridimensionamento dinamico della frequenza a strati (DFS)(6) viene proposta una tecnica per NPU, con un modello di potenza per prevedere il consumo di energia per determinare la frequenza massima consentita. È dimostrato che DFS migliora la latenza del 33% e risparmia energia del 14%
4. Architettura dedicata dell'acceleratore HW AI a basso consumo. Per accelerare l’inferenza del deep learning, gli acceleratori IA specializzati hanno mostrato un’efficienza energetica superiore, ottenendo prestazioni simili con un consumo energetico ridotto. Ad esempio, il TPU di Google è progettato su misura per accelerare la moltiplicazione delle matrici riutilizzando i dati di input più volte per i calcoli, a differenza delle CPU che recuperano i dati per ogni calcolo. Questo approccio risparmia energia e riduce la latenza del trasferimento dei dati.
Fonte: towardsdatascience.com