AI in MPEG: la compressione delle Reti Neurali

AI in MPEG: la compressione delle Reti Neurali
 

AI in MPEG: la compressione delle Reti Neurali

Oggi l’intelligenza artificiale ed in particolare le reti neurali permettono di riconoscere oggetti, video e persone, suggerire i contenuti più appropriati in base ai propri gusti e garantire una migliore user experience durante lo streaming di contenuti attraverso Internet. MPEG, il gruppo di lavoro ISO che ha sviluppato i più importanti standard per la compressione audio e video (MP3, AVC e HEVC), sta lavorando ad una nuova tecnologia per comprimere proprio le reti neurali. Sarà presto possibile il trasporto efficiente e l’impiego di interi modelli di reti neurali all’interno di applicazioni e dispositivi con risorse limitate. È possibile una nuova rivoluzione paragonabile a quella che ha cambiato per sempre il mercato dei contenuti oltre 20 anni fa?

 

Introduzione

MPEG (Moving Picture Experts Group), è un working group ISO (ISO/IEC JTC1/SC29 WG11) che si occupa di definire gli standard e le tecnologie legate alla codifica, distribuzione, memorizzazione, presentazione e fruizione dei contenuti multimediali, includendo video, audio, grafica, testo e metadati associati. MPEG ha definito, in oltre 30 anni di attività, numerosi tra i più importanti standard adottati dall’industria dei media, dal famoso formato audio MP3 alle codifiche video MPEG-4 AVC e HEVC usate, tra le altre applicazioni, per la televisione digitale ed i servizi di video streaming, come nel caso di TIMVISION. Negli ultimi anni stiamo assistendo alla diffusione di tecniche di intelligenza artificiale, il cui successo è dovuto in buona parte alle prestazioni raggiunte dalle reti neurali profonde (Deep Learning), modelli che riescono a svolgere compiti associati tradizionalmente a capacità cognitive umane. In MPEG, algoritmi basati sulle reti neurali sono stati proposti ed adottati dallo standard CDVA (Compact Descriptors for Video Analysis), per la ricerca ed analisi di immagini o video in database multimediali. TIM ha contribuito attivamente allo sviluppo di CDVA e lo standard include due tecnologie brevettate dalla nostra azienda. Altre iniziative sono volte allo studio e sperimentazione di nuovi tool basati su intelligenza artificiale per VVC (Versatile Video Coding), il nuovo codificatore video ibrido su cui stanno lavorando MPEG e ITU-T VCEG. In questo caso, l’obiettivo è di migliorare l’efficienza di compressione mantenendo allo stesso tempo la complessità computazionale ad un livello ragionevole. I tool in valutazione sono impiegati nello stadio di in-loop filtering con risultati interessanti ma con impatti ancora troppo significativi in termini di complessità in particolar modo sul decoder.
Tra le attività più recenti di MPEG figura la compressione delle reti neurali, che mira ad aumentarne la diffusione ed utilizzo attraverso la diminuzione delle risorse necessarie alla loro memorizzazione ed elaborazione. Il parallelo è suggestivo:  così  come la disponibilità di tecniche di compressione di immagini, audio e video ha permesso la creazione di una nuova industria dei media ed ha reso possibile l’accesso ai contenuti al grande pubblico attraverso le reti di telecomunicazione, così la compressione delle reti neurali promette di abilitare nuovi scenari di servizio nei quali componenti di intelligenza artificiale sono distribuiti, installati ed aggiornati all’interno delle applicazioni multimediali nei terminali degli utenti.

 

Dai data-center all’intelligenza artificiale distribuita  

Le tecniche di intelligenza artificiale ed in particolare le reti neurali sono oggi largamente utilizzate in servizi e prodotti commerciali. L’applicazione di queste tecnologie permette di riconoscere oggetti, luoghi o volti, di abilitare la guida assistita o autonoma di veicoli, di interagire in modo naturale con assistenti virtuali attraverso il parlato e di fornire suggerimenti sui contenuti da guardare sulla base delle preferenze dell’utente. Tuttavia, nella quasi totalità dei casi, si tratta di servizi che sono progettati e realizzati per utilizzare le risorse virtualmente infinite del cloud, o chip ad hoc progettati appositamente. Per sfruttare pienamente le potenzialità delle reti neurali è necessario pensare alla possibilità di trasferire, mediante le moderne reti di telecomunicazione, questi algoritmi dai data center all’edge della rete e sui terminali fissi e mobili, così da rendere possibile il loro utilizzo direttamente nelle applicazioni utente. Questi scenari vengono comunemente definiti come “Edge AI”.       

 

Figura 1 - Dimensione di alcuni modelli di reti neurali

L’approccio data-center centrico può non essere la soluzione più efficiente per servizi basati sull’uso di intelligenza artificiale quando la dimensione dei dati da inviare in cloud per le fasi di inferenza diventa un possibile collo di bottiglia per il funzionamento del servizio. Altre problematiche legate all’elaborazione in cloud possono essere i tempi di risposta particolarmente ridotti richiesti in alcuni scenari applicativi, o requisiti di sicurezza, privacy dei dati e aspetti regolatori particolarmente stringenti. Infine, con l’esplosione prevista del numero di sensori e dispositivi IoT operativi negli scenari smart city e industry 4.0, promossa dalle funzionalità fornite dalle reti 5G, diventano potenzialmente interessanti scenari in cui alcuni algoritmi di intelligenza artificiale vengono spostati all’interno degli edge gateway IoT dislocati sul territorio, o addirittura sui sensori stessi.
Un problema che oggi limita fortemente la distribuzione e aggiornamento di reti neurali attraverso la rete è la dimensione di questi modelli. Nella figura sotto riportata sono elencati alcuni dei modelli di reti neurali più utilizzati nel campo della image e video detection e classification e del riconoscimento del parlato e la relativa dimensione in megabyte.
Le reti neurali, ed in particolare le reti profonde, utilizzano un numero elevato di strati, con molte connessioni, parametri e pesi. Il numero di parametri, ed i relativi pesi, superano spesso le centinaia di milioni, con punte che superano il miliardo. Tipiche architetture, in funzione anche del tipo di rappresentazione scelto per i pesi, hanno dimensioni dell’ordine delle centinaia di MB, con esempi in letteratura che arrivano alle centinaia di GB.
Si pone quindi un problema di efficienza nel trasferimento e memorizzazione di questa mole di dati attraverso le reti ma anche un problema legato al processamento su terminali con risorse limitate.

 

Figura 2 - Esempio di architettura di una rete neurale profonda (GoogLeNet)

Compression of Neural Network for Multimedia Content Description and Analysis

Nel corso del 2018 in MPEG è stata avviata un’attività che ha l’obiettivo di definire uno standard per la compressione delle reti neurali per l’utilizzo in applicazioni legate all’analisi dei contenuti multimediali. Il risultato atteso è un formato compresso interoperabile per rappresentare i parametri e pesi di un modello di rete neurale, permettendone la distribuzione in rete e la loro ricostruzione, anche parziale, durante la fase di inferenza e processamento su dispositivi o apparati con capacità computazionali, di memoria o storage ridotte. L’iniziativa è complementare rispetto ai formati interoperabili di reti neurali in fase di definizione da altri consorzi industriali che si concentrano invece sull’interoperabilità della rappresentazione delle reti con diverse librerie ottimizzate di elaborazione. Esempi noti sono i file format NNEF e ONNX, che potranno in futuro adottare il formato compresso MPEG.
I lavori sullo standard MPEG vedono la stretta collaborazione con ISO/IEC SC42, il sub-committee ISO che si occupa specificamente di Intelligenza Artificiale. La roadmap di questa iniziativa, denominata Compression of neural networks for multimedia content description and analysis (ISO/IEC 15938-17), è riportata nella Figura 3.

 

Figura 3 - Cronologia dell'attività di standardizzazione di MPEG Compression of neural networks for multimedia content description and analysis (GoogLeNet)

Ad una prima fase di raccolta requisiti e scenari di utilizzo, è seguita la pubblicazione di una CfE (Call for Evidence), volta a valutare lo stato dell’arte della tecnologia in questo specifico ambito. Alla CfE è seguita una formale CfP (Call for Proposals) aperta sia a membri MPEG che ad aziende o enti di ricerca esterni. Nella Call for Proposals sono stati definiti i requisiti base da soddisfare, le architetture di reti neurali da utilizzare nel processo di compressione e il framework di valutazione dei risultati.
La catena di compressione e ricostruzione impiegata nella Call ed illustrata in Figura 4 è caratterizzata da metriche indipendenti dal modello di rete impiegato come rapporto di compressione della rete compressa rispetto alla rete originale, complessità computazione e requisiti di memoria per i processi di compressione e decompressione. Sono inoltre state definite una serie di metriche dipendenti dal modello di rete neurale utilizzato: come le prestazioni in termini di accuratezza del modello ricostruito rispetto a quello originale, che sono basate su Top-5 e Top-1 Error Rate.

 

Figura 4 - Catena di compressione e ricostruzione definita in MPEG e relative metriche

Le tipologie di reti neurali impiegate come input per valutare le proposte appartengono alle seguenti categorie: classificazione visuale di oggetti, componenti impiegati nello standard CDVA (Compact Descriptors for Video Analysis), tool specifici per compressione delle immagini e video e classificazione dei segnali audio. È infatti importante verificare che la soluzione di compressione sia applicabile ed efficace per un ampio spettro di modelli di reti diverse, anche utilizzate in diversi ambiti applicativi.

 

Tecniche di compressione e risultati

Le tecniche impiegate nelle proposte presentate alla Call for Proposals si basano su tre approcci principali:

  • Pruning/sparsificazione
  • Approssimazione dei pesi
  • Codifica entropica

La sparsificazione di una rete neurale prevede l’applicazione di tecniche che tendono a generare sottoinsiemi di pesi del modello con valore prossimo a zero, semplificando le operazioni da compiere (che sono in larga parte moltiplicazioni) e ottimizzando quindi i vari layer della rete.
Il pruning dei pesi è una famiglia di tecniche di sparsificazione che prevede l’eliminazione di alcuni pesi dal modello di rete neurale (un esempio è la tecnica di optimal brain damage) cercando di non penalizzare le performance della rete risultante. Dopo l’eliminazione dei pesi è utile procedere con una fase di raffinamento dell’addestramento in modo da sfruttare al meglio la struttura semplificata della rete neurale. È interessante notare come l’eliminazione di pesi e parametri possa inoltre influire positivamente sulle capacità di generalizzazione della rete neurale risultante, producendo in alcuni casi un incremento delle prestazioni della rete compressa ricostruita rispetto a quella originale. Questo effetto è dovuto al fatto che la semplificazione dei pesi rende la rete neurale meno incline all’overfitting, un noto problema nel campo del machine learning nel quale il modello si adatta eccessivamente bene ai dati usati per l’addestramento e non riesce a processare correttamente i nuovi dati.
Un’altra tecnica utilizzata per la compressione prevede la quantizzazione (o approssimazione) dei pesi, utilizzando una rappresentazione di questi valori che richieda meno bit. Si passa ad esempio a rappresentazioni integer a 8 bit, o si quantizzano i pesi relativi utilizzando distribuzioni non uniformi o rappresentazioni binarie (utilizzando cioè solo valori 0 e 1). Infine, è possibile applicare tecniche di codifica entropica derivate da quelle note ed utilizzate già da tempo per la codifica video, adattandole ai dati che rappresentano i pesi del modello a valle del primo stadio di compressione.
I risultati della valutazione delle proposte ricevute mostrano che è possibile raggiungere e superare fattori di compressione di 10 a 1 con diminuzioni delle prestazioni in termini di accuratezza nulle o trascurabili. In alcuni casi l’eliminazione di pesi ha inoltre permesso di migliorare leggermente le performance della rete ricostruita, proprio grazie a una migliore generalizzazione dell’algoritmo. 
Attualmente è in corso la fase di core experiments, nella quale, in modo collaborativo, vengono proposte ed analizzate nuove tecniche o combinazioni diverse di quelle esistenti con l’obiettivo di definire e quindi migliorare il test model software di riferimento. La finalizzazione dello standard è prevista per aprile 2021 con la successiva pubblicazione da parte di ISO ad ottobre.

 

Conclusioni

Le reti neurali si stanno dimostrando capaci di sostituire e migliorare molte delle componenti tecnologiche impiegate nei servizi oggi disponibili, anche nel caso di servizi basati sui contenuti. Esiste un forte interesse nel rendere disponibili e utilizzabili queste tecnologie ai bordi della rete (Edge AI) e direttamente sui terminali utente, nelle applicazioni multimediali, svincolandole da un uso confinato in cloud. MPEG sta lavorando ad uno standard di compressione delle reti neurali che abiliterà nuovi scenari di servizio in cui elementi intelligenti (modelli di reti neurali) potranno essere trasportati in modo efficace attraverso le reti di telecomunicazione, aggiornati ed utilizzati su un’ampia gamma di apparati e terminali fissi e mobili, anche con risorse computazionali, di memoria o storage limitate. Le tecniche in fase di sviluppo in MPEG permettono già oggi di utilizzare rappresentazioni compresse con dimensioni pari al 10% delle reti originali, senza richiedere la completa ricostruzione del modello in fase di inferenza. La compressione delle reti neurali rappresenta una tecnologia cruciale per i futuri scenari di Internet of Things, in cui miliardi di dispositivi intelligenti saranno messi in comunicazione tra loro attraverso la rete mobile 5G. La capacità di rendere disponibili e sfruttare algoritmi di AI alla periferia della rete diventerà sempre più un elemento importante per un operatore come TIM per gestire in modo automatico nuove capabilities orientate al Network-as-a-Service (per esempio il Network Slicing) e per garantire servizi innovativi e più efficienti per verticals e utenti consumer.