Imparare ONNX per il trading - pagina 3

 

Netron è uno strumento per la visualizzazione di modelli di reti neurali, deep learning e machine learning





 

Una rapida occhiata a Netron



Una rapida occhiata a Netron

Nel video, il presentatore fornisce una panoramica di Netron, uno strumento per la visualizzazione e l'analisi dei modelli di machine learning . Netron supporta vari formati e può essere installato su più piattaforme. Il presentatore dimostra come avviare Netron e navigare attraverso diversi modelli di esempio, evidenziando le capacità ei limiti dello strumento. Sebbene Netron sia utile per esplorare architetture di rete più semplici, il presentatore suggerisce che potrebbe trarre vantaggio da funzionalità aggiuntive per la visualizzazione di modelli più complessi. Nel complesso, il relatore consiglia Netron come strumento utile per esaminare e comprendere i modelli di machine learning.

 

Netron - Strumento di visualizzazione della rete | Apprendimento automatico | Magia dei dati



Netron - Strumento di visualizzazione della rete | Apprendimento automatico | Magia dei dati

Netron è una libreria Python che aiuta gli utenti a esplorare visivamente ed esaminare la struttura e i parametri dei modelli di deep learning. È una libreria open source che fornisce modelli di esempio per l'analisi e ha un semplice processo di installazione. Con solo due righe di codice, gli utenti possono installare Netron e utilizzarlo per visualizzare la struttura della rete neurale, le funzioni di attivazione, i livelli di pooling, i livelli convoluzionali e tutti gli attributi passati a ciascun livello di un determinato modello di machine learning. Netron fornisce un'interfaccia di facile utilizzo che consente agli utenti di esportare visualizzazioni come file PNG ed esplorare diverse funzionalità e opzioni.

  • 00:00:00 In questa sezione impariamo a conoscere Netron, una libreria Python che ci aiuta a visualizzare la struttura interna dei modelli di deep learning. Possiamo utilizzare Netron per esaminare i livelli e i parametri specifici della rete neurale utilizzati all'interno di un determinato modello. Netron è una libreria open source che fornisce modelli di esempio per l'analisi e ha un semplice processo di installazione. Una volta installato, gli utenti possono importare la libreria Netron e utilizzare il metodo "start" per passare un file modello di machine learning. Netron creerà quindi una rappresentazione visiva della struttura del modello, consentendo agli utenti di esplorare visivamente ogni livello e i suoi parametri.

  • 00:05:00 In questa sezione del video, il presentatore mostra come utilizzare Netron, uno strumento di visualizzazione della rete per i modelli di machine learning. Lo strumento può visualizzare la struttura della rete neurale, le funzioni di attivazione, i livelli di pooling, i livelli convoluzionali e tutti gli attributi passati a ciascun livello di un determinato modello di machine learning. Con solo due righe di codice, lo strumento può essere installato su un computer locale o accessibile online sul sito web netron.app. Gli utenti possono esportare le visualizzazioni come file PNG ed esplorare diverse funzionalità e opzioni disponibili nell'interfaccia dello strumento.
 

PyTorch, TensorFlow, Keras, ONNX, TensorRT, OpenVINO, conversione file modello AI



[Video didattico] PyTorch, TensorFlow, Keras, ONNX, TensorRT, OpenVINO, conversione file modello AI

Il relatore nel video discute i vantaggi e i compromessi di diversi framework AI, come PyTorch, TensorFlow, Keras, ONNX, TensorRT e OpenVINO, e consiglia PyTorch come framework preferito per l'addestramento e la conversione dei dati. Il relatore spiega il processo di conversione, inclusa la conversione dei modelli PyTorch in ONNX e quindi in TensorRT o OpenVINO, e mette in guardia contro l'utilizzo di TensorFlow PB file e Cafe. Il relatore discute anche l'importanza di impostare correttamente il formato in virgola mobile e consiglia di utilizzare FP 32 per la maggior parte dei modelli. Il video fornisce esempi di conversione del modello e incoraggia gli spettatori a visitare il sito Web ufficiale per altri video educativi.

  • 00:00:00 In questa sezione, il relatore discute i diversi framework AI, tra cui PyTorch, TensorFlow, Keras e Cafe, e spiega il metodo preferito della loro azienda di utilizzare PyTorch per salvare il modello come file ONNX, che controllano due volte con il proprio set di dati utilizzando ONNX Runtime. Se il test viene superato, convertono il modello ONNX nei formati TensorRT e OpenVINO. Il relatore mette in guardia contro l'utilizzo del file TensorFlow PB e di Cafe e consiglia invece di utilizzare Python con dati originali e PyTorch per l'addestramento. Infine, il relatore afferma che a volte i motori di inferenza richiedono che la virgola mobile sia impostata correttamente.

  • 00:05:00 In questa sezione, il relatore spiega come la scelta del formato in virgola mobile influisce sulla velocità e sulla precisione della conversione del modello. Spiega che mentre l'utilizzo di FP 16 può aumentare la velocità, può portare a una minore precisione, mentre l'utilizzo di FP 64 si traduce in una velocità inferiore ma in una maggiore precisione. Il relatore consiglia di utilizzare FP 32 per la maggior parte dei modelli e discute come diversi formati possono essere utilizzati per tipi specifici di set di dati, come FP 32 e FP 64 per l'analisi di immagini mediche. Spiega inoltre che la conversione di un modello da FP 32 a FP 16 può portare a una perdita di precisione, che può essere mitigata utilizzando la calibrazione, l'eliminazione o il riaddestramento con FP 16 per migliorare la precisione del modello.

  • 00:10:00 In questa sezione del video, il relatore discute i compromessi tra velocità, precisione e informazioni sui dati quando si utilizzano diversi framework AI come PyTorch, TensorFlow, Keras, ONNX, TensorRT e OpenVINO. Il relatore consiglia di utilizzare PyTorch e di convertire i modelli da PyTorch a ONNX utilizzando una soluzione fornita. Quindi, spiegano come convertire i modelli da ONNX a TensorRT utilizzando un'altra soluzione fornita. Il relatore dimostra il processo di conversione eseguendo il codice in Jupiter Lab e mostra come individuare i file del modello convertito.

  • 00:15:00 In questa sezione del video, il relatore discute la facilità di conversione dei modelli AI da PyTorch a ONNX e poi a TensorRT o OpenVINO, sottolineando che si tratta di un processo semplice. Tuttavia, per coloro che utilizzano TensorFlow o Keras, il relatore consiglia di utilizzare PyTorch per riaddestrare il set di dati in quanto sarà più semplice eseguire conversioni di modelli. L'oratore avverte che potrebbero esserci problemi nell'utilizzo di Keras poiché i dati del file del modello contengono solo parametri e che è necessario creare l'architettura di rete prima di importare il file dei parametri H5. L'oratore suggerisce che la soluzione definitiva a tali problemi sia Café, ma con gli sviluppatori di Café migrati a Café 2 e nessuno che lo mantenga, l'oratore consiglia di utilizzare PyTorch come framework AI principale.

  • 00:20:00 In questa sezione, il relatore discute i vantaggi dell'utilizzo di PyTorch e la facilità di migrazione grazie alla sua elevata velocità e all'architettura migliorata. Il relatore fornisce anche un esempio di utilizzo di una soluzione per convertire un modello di peso v3 in un modello OpenVINO AIA e la soluzione più potente per il rilevamento di oggetti, Euro v4. Per utilizzare l'esempio, sono necessari due file per la conversione, un file dei pesi Euro v4 CPP e un file di configurazione della rete Euro v4 CFG. Dopo la conversione, viene generato un file Haitatsu PTH da utilizzare nell'immagine di inferenza per verificare i risultati. Il relatore consiglia di utilizzare Python per eseguire l'addestramento AI e quindi convertire in ONNX e quindi TensorRT o OpenVINO. Infine, il relatore incoraggia gli spettatori a visitare il sito Web ufficiale per altri video educativi ea diventare un membro gratuito per ricevere l'elenco dei video ogni settimana.
 

Come utilizziamo ONNX in Zetane per completare i progetti di machine learning più velocemente con meno tentativi ed errori



Come utilizziamo ONNX in Zetane per completare i progetti di machine learning più velocemente con meno tentativi ed errori

Patrick Saitama, co-fondatore e CTO di Zetane Systems, discute il valore dell'utilizzo di ONNX nel nuovo prodotto della sua azienda per affrontare le questioni relative al problema della scatola nera dell'IA. Il motore di Zetane consente l'esplorazione e l'ispezione dei modelli ONNX, fornendo approfondimenti sull'interazione del modello con i dati e portando a strategie più decisive per migliorarne la qualità. L'esempio fornito mostra come il motore di Zetane ha aiutato a eseguire il debug di un modello di treno autonomo ispezionando il livello radio e aggiungendo più immagini di tunnel etichettati come non ostacoli. Zetane include anche strumenti per l'ispezione dinamica dei tensori interni e l'acquisizione di istantanee del modello per indagini successive. Inoltre, il nuovo motore di Zetane consente l'installazione di modelli più grandi come YOLOv3.

  • 00:00:00 Patrick Saitama, co-fondatore e CTO di Zetane Systems, spiega come trarre maggior valore da ONNX per abbreviare il tempo del ciclo di sviluppo e ridurre le congetture. La sua azienda, Zetane Systems, con sede a Montreal, ha recentemente rilasciato un nuovo prodotto, indipendente dal settore, e mira ad affrontare alcune delle questioni relative al problema della scatola nera dell'IA. Passando i dati di input ai modelli ONNX e quindi proiettando i modelli nel motore Zetane, i modelli possono essere esplorati e ispezionati, inclusa la sua architettura e il grafico di calcolo, nonché tutti i tensori contenuti in ciascun nodo operatore, al fine di eseguire il debug e ottimizzare il modello.

  • 00:05:00 Il relatore spiega come l'utilizzo di ONNX in Zetane consenta una visione più approfondita del modello e della sua interazione con i dati, che a sua volta porta a strategie più decisive per migliorare la qualità del modello. L'esempio fornito è di un modello di treno autonomo e come guardando lo strato radio nel motore sostenuto ha mostrato che il modello stava rilevando il tunnel come un ostacolo, portando all'aggiunta di più immagini di tunnel etichettati come non ostacoli. Zetane include anche strumenti per ispezionare dinamicamente i tensori interni e scattare istantanee del modello in determinati momenti per indagare e migliorare in seguito. Inoltre, è stato recentemente lanciato il motore di detain, che consente l'installazione di modelli più grandi come YOLOv3.
 

Novità del runtime ONNX



Novità del runtime ONNX

Questo discorso condividerà i punti salienti delle versioni ONNX Runtime 1.10-1.12, inclusi dettagli su notevoli miglioramenti delle prestazioni, funzionalità e piattaforme, inclusi dispositivi mobili e Web. Ryan Hill è stato con il team di AI Frameworks negli ultimi 4 anni, dove ha lavorato principalmente su kernel di operatori, API C e fornitori di esecuzione a caricamento dinamico. In precedenza ha lavorato nel team di Office PowerPoint, dove il suo lavoro più visto è rappresentato da molte delle transizioni di diapositive della presentazione. Per divertimento gli piace provare a utilizzare le ultime funzionalità C++ e riscontrare errori interni del compilatore.

Nel video, l'ingegnere del software Ryan Hill discute le varie funzionalità e gli aggiornamenti di ONNX Runtime, un runtime multipiattaforma ampiamente utilizzato che può essere indirizzato a più architetture di CPU. Mette in evidenza le ultime funzionalità aggiunte a ONNX Runtime, come la possibilità di chiamare direttamente i kernel operativi e miglioramenti delle prestazioni come l'ottimizzatore di trasposizione e l'ottimizzazione delle dimensioni ridotte. Hill parla anche dei fornitori di esecuzione di ONNX Runtime, che consentono prestazioni ottimali su vari hardware, e del rilascio di pacchetti mobili che supportano la conversione NHWC in fase di esecuzione. Il video copre anche il supporto dell'operatore sensibile al layout, il supporto Xamarin per app multipiattaforma, ONNX Runtime Web e la libreria di estensioni ONNX Runtime che si concentra sul lavoro di pre-post-elaborazione del modello, comprese le conversioni di testo e le operazioni matematiche, e attualmente si concentra su PNL, visione e domini testuali.

  • 00:00:00 In questa sezione, Ryan Hill, un ingegnere del software che lavora su ONNX Runtime da circa quattro anni, illustra le funzionalità di ONNX Runtime e le sue nuove versioni. Sottolinea che ONNX Runtime è un runtime multipiattaforma che può essere indirizzato a più architetture di CPU e ha collegamenti linguistici per diversi linguaggi di programmazione. È ampiamente utilizzato da più settori, tra cui Microsoft, con oltre 160 modelli in produzione. Ryan discute anche delle nuove funzionalità aggiunte nelle ultime versioni, come la possibilità di chiamare op kernel direttamente dall'esterno di una chiamata di esecuzione del modello e la possibilità di alimentare inizializzatori esterni come array di byte per l'inferenza del modello. Inoltre, Ryan parla dei miglioramenti delle prestazioni dell'ultima versione, come un ottimizzatore di trasposizione e una funzione di ottimizzazione di piccole dimensioni. Infine, evidenzia i provider di esecuzione di ONNX Runtime che gli consentono di funzionare in modo ottimale su vari hardware e il rilascio dei suoi pacchetti mobili, che ora supporta la conversione NHWC in fase di esecuzione.

  • 00:05:00 In questa sezione, il video copre le nuove funzionalità e gli aggiornamenti nel runtime ONNX, incluso il supporto dell'operatore sensibile al layout e il supporto Xamarin per le app multipiattaforma su Android e iOS. Inoltre, ONNX Runtime web offre un'unica base di codice C++, compilata in web assembly, che è più veloce e utilizza meno memoria, ed è ora disponibile una libreria di estensioni ONNX Runtime che si concentra sul lavoro di pre-post-elaborazione del modello, consentendo agli utenti di eseguire questo funziona interamente all'interno della chiamata di esecuzione del modello. La libreria include conversioni di testo, operazioni matematiche e attualmente si concentra su NLP, visione e domini di testo. Il team di Microsoft Office sta attualmente utilizzando questa libreria di estensioni.
 

Runtime ONNX v1.12.0 - Revisione della versione



Runtime ONNX v1.12.0 - Revisione della versione

La versione v1.12.0 di ONNX Runtime (ORT) si concentra sull'inferenza ma include anche continui investimenti nella formazione, con l'integrazione con Hugging Face Optimum che ha portato all'accelerazione di diversi modelli Hugging Face. Le nuove funzionalità includono la possibilità di utilizzare operazioni ORT native in operazioni personalizzate e chiamare direttamente un operatore nativo o di runtime senza creare un grafico. La versione include anche il supporto per .NET 6 e l'interfaccia utente dell'app multipiattaforma (MAUI) e provider di esecuzione per piattaforme specifiche come Neural Processing Unit su Android e Core ML su iOS. Sono stati apportati miglioramenti alle prestazioni riducendo le allocazioni di memoria durante l'inferenza ed eliminando la registrazione non necessaria. Sono previsti miglioramenti futuri per migliorare la località della cache e l'utilizzo del pool di thread.

  • 00:00:00 In questa sezione vengono discusse le nuove funzionalità e gli aggiornamenti della versione 1.12 di ONNX Runtime. Questi includono la deprecazione del supporto .net standard 1.1 e l'aggiunta del supporto per ONNX offset 17 e su xml offset 3. Una nuova funzionalità è la capacità di richiamare singole operazioni senza creare un grafico separato e il supporto per l'alimentazione di inizializzatori esterni per l'inferenza è stato aggiunto anche. Altri aggiornamenti includono il supporto per python 310 e l'abilitazione del supporto mac m1 nelle librerie python e java, oltre all'aggiunta del supporto .net 6 maui nel pacchetto c-sharp. sono stati inoltre apportati miglioramenti alle prestazioni e alla quantizzazione e sono stati introdotti nuovi provider di esecuzione, tra cui Qualcomm Snappy e l'infrastruttura generale per l'incident pack ep, con lavori in corso per aggiungere più kernel per scenari mobili e web.

  • 00:05:00 In questa sezione, il relatore discute gli aggiornamenti apportati a ONNX Runtime (ORT) e menziona che l'attenzione si è concentrata principalmente sull'inferenza. Tuttavia, sono stati effettuati continui investimenti nella formazione ORT per accelerare la formazione di modelli di grandi dimensioni. La recente integrazione con Hugging Face Optimum ha portato all'accelerazione di diversi modelli Hugging Face. Il relatore presenta quindi Randy, che discute una nuova funzionalità che consente agli utenti di utilizzare operazioni runtime ONNX native in operazioni personalizzate. Randy spiega che questa funzionalità è nata dalle richieste dei clienti per rendere gli operatori personalizzati più performanti e versatili utilizzando le potenti capacità di calcolo della matrice del runtime ONNX.

  • 00:10:00 In questa sezione, il relatore discute una nuova funzionalità che consente ai clienti di chiamare direttamente un operatore nativo o di runtime senza creare un grafico o qualcosa di simile, rendendo molto più semplice l'esecuzione di funzioni di calcolo matriciale. Questa funzionalità è stata proposta alla comunità perché un altro gruppo di clienti stava lavorando all'elaborazione audio e desiderava ottenere la gestione delle dichiarazioni, nel senso che desideravano memorizzare nella cache alcuni input o output passati, combinarli con l'input più recente e fornire all'operatore una combinazione di dati alterati ingresso. In precedenza era difficile da ottenere, ma con la nuova funzionalità, i clienti possono aggiungere un wrapper attorno all'operatore nativo del runtime ONNX per eseguire la gestione delle dichiarazioni, semplificando la vita e raggiungendo il loro scopo. Esempi di come utilizzare questa funzione sono disponibili sul sito Web della comunità.

  • 00:15:00 In questa sezione, Scott McKay, responsabile di ONNX Runtime Mobile, illustra le nuove funzionalità aggiunte nella v1.12.0 di ONNX Runtime. La versione include il supporto per .NET 6 e l'interfaccia utente dell'app multipiattaforma (MAUI), consentendo agli sviluppatori di creare un'app utilizzando una base di codice condivisa che può essere eseguita su Android, iOS, macOS, Windows e Linux. ONNX Runtime include anche provider di esecuzione per piattaforme specifiche come Neural Processing Unit su Android e Core ML su iOS, che possono ottimizzare la velocità di esecuzione del modello e l'efficienza energetica. McKay spiega che gli sviluppatori possono utilizzare gli stessi collegamenti C# per interagire con la libreria ONNX Runtime in tutti questi framework, ma potrebbe essere necessario un codice specifico della piattaforma per gestire le differenze nelle dimensioni dello schermo del dispositivo e nell'elaborazione delle immagini. Per aggiungere ONNX Runtime in un progetto .NET 6, gli sviluppatori possono utilizzare il pacchetto microsoft.ml.onnxruntime e il pacchetto microsoft.ml.onnxruntime.managed, che forniscono l'implementazione C++ per l'esecuzione del modello e le associazioni C# per interagire con il nativo biblioteca.

  • 00:20:00 In questa sezione, il relatore discute la disponibilità di esempi per gli utenti per imparare a utilizzare le nuove librerie. È disponibile un repository Github con un'app Xamarin di esempio per dimostrare la funzionalità della nuova versione. Inoltre, il team aggiornerà l'app per includere un'app Maui che sarà simile nel design. Infine, il pubblico esprime interesse per un tutorial approfondito poiché il nuovo supporto Maui sarà super utile e gli esempi sarebbero eccellenti. Il relatore che segue spiega il concetto alla base dell'estensibilità del team ONNX Runtime e fornisce aggiornamenti sui provider di esecuzione. L'aggiornamento per questa sezione si concentra sull'integrazione con l'hardware tramite l'interfaccia del provider di esecuzione. In questa versione, il team si è concentrato sull'inferenza dei carichi di lavoro e la collaborazione con fornitori come Nvidia, Intel e Qualcomm ha prodotto molti miglioramenti. Un miglioramento è un'opzione per condividere la memoria del contesto di esecuzione che riduce il sovraccarico dell'accesso a più sottografi con TensorRT. Un'altra ottimizzazione riguarda il supporto della memorizzazione nella cache del motore, in cui la creazione di motori in anticipo riduce il tempo necessario per ricostruire i motori al momento dell'inferenza.

  • 00:25:00 In questa sezione viene discussa la revisione del rilascio di v1.12.0 ONNX Runtime, in particolare il provider di esecuzione chiamato Snappy, che sta per Snapdragon Neural Processing Engine di Qualcomm. Questo è il runtime di Qualcomm utilizzato per accelerare i carichi di lavoro AI sui SOC Snapdragon mobili. Il supporto per Snappy è nuovo di zecca ed è stato annunciato alla conferenza Microsoft Build del mese scorso. Oltre al supporto per Snappy, Intel ha anche iniziato a creare pacchetti Python ospitati su PyPI con ONNX Runtime con OpenVINO abilitato. Ciò semplifica la configurazione per gli sviluppatori e consente un migliore supporto per i modelli con forme di input dinamiche. I collegamenti alla documentazione e agli esempi sono forniti anche nelle note di rilascio.

  • 00:30:00 In questa sezione, Dmitry Smith, uno dei principali ingegneri del software di Microsoft, discute i miglioramenti delle prestazioni apportati nella versione 1.12.0 di ONNX Runtime. I clienti si erano rivolti a Microsoft chiedendo una latenza e un utilizzo della CPU inferiori per l'inferenza, il che ha richiesto i miglioramenti. Il team si è concentrato sulla riduzione delle allocazioni di memoria durante l'inferenza e sull'eliminazione della registrazione non necessaria, con modifiche apportate al modo in cui il codice è stato scritto. I miglioramenti hanno comportato una riduzione della latenza in alcuni scenari di un fattore di due o più e ulteriori miglioramenti come il miglioramento della località della cache e l'utilizzo del pool di thread sono previsti per le versioni future.
 

Runtime ONNX v1.13 - Revisione della versione



Runtime ONNX v1.13 - Revisione della versione

La versione 1.13 del runtime ONNX è stata recentemente rilasciata con patch di sicurezza, correzioni di bug e miglioramenti delle prestazioni. L'aggiornamento si concentra sull'ottimizzazione dei modelli Transformer per la quantizzazione GPU e aggiunge il supporto per i provider di esecuzione ML diretta che sono indipendenti dal dispositivo e supportano oltre 150 operatori. Inoltre, la versione include aggiornamenti all'infrastruttura mobile ORT per la compatibilità con i nuovi EPS, come il pacchetto XNN. Viene discusso anche l'uso della quantizzazione per migliorare le prestazioni dei modelli basati su Transformer, con l'ottimizzazione del provider di esecuzione CUDA per eseguire il modello BERT quantizzato e l'uso dell'addestramento consapevole quantizzato per massimizzare la precisione ottimizzando al contempo il motore di esecuzione del runtime ONNX.

  • 00:00:00 In questa sezione, il relatore discute la versione 1.13 recentemente rilasciata del runtime ONNX, che include patch di sicurezza, correzioni di bug e miglioramenti delle prestazioni. L'aggiornamento si è concentrato sull'ottimizzazione dei modelli Transformer per la quantizzazione GPU e ha aggiunto il supporto per i provider di esecuzione ML diretta. Quest'ultima è un'API di machine learning che supporta oltre 150 operatori diversi ed è indipendente dal dispositivo. L'oratore menziona anche il nuovo provider di esecuzione can EP, che è stato fornito da Huawei per supportare l'hardware Ascend 310. Inoltre, sono stati apportati aggiornamenti all'infrastruttura mobile ORT, che ha consentito la compatibilità con nuovi EPS come il pacchetto XNN.

  • 00:05:00 In questa sezione, i relatori discutono della versione del runtime ONNX v1.13 e di come funziona con qualsiasi GPU che supporti fino a DirectX 12, semplificando l'ottimizzazione per le macchine Windows. Discutono anche dei nuovi operatori e degli aggiornamenti agli offset ONNX nella versione 1.12. I relatori sottolineano come la nuova versione abbia ampliato il supporto per diverse architetture di modelli per semplificare l'utilizzo del provider di esecuzione all'interno del runtime ONNX. Discutono anche del nuovo provider di esecuzione, Excellent Impact, e di come colma le lacune prestazionali sui dispositivi mobili in cui i kernel scritti a mano non sono disponibili. La funzionalità è attualmente abilitata per Android, ma il team sta cercando di aggiungere il supporto per le build iOS e Xamarin o Maui nella versione successiva. Infine, discutono della nuova funzionalità della versione chiamata ottimizzazioni per la quantizzazione del modello BERT.

  • 00:10:00 In questa sezione, il relatore discute l'uso della quantizzazione per migliorare le prestazioni dei modelli basati su Transformer come BERT. Spiegano come hanno ottimizzato il provider di esecuzione CUDA per eseguire il modello BERT quantizzato e l'uso dell'addestramento consapevole quantizzato per massimizzare la precisione ottimizzando al contempo il motore di esecuzione del runtime ONNX. Il relatore fornisce esempi su come eseguire l'addestramento quantizzato consapevole del modello BERT ed esportare il modello con gli strumenti disponibili nel runtime ONNX per un'ulteriore ottimizzazione. Supportando meglio l'addestramento consapevole quantizzato, il runtime ONNX può offrire un'ulteriore ottimizzazione delle prestazioni mantenendo la massima precisione. Dicono che dopo che l'utente ha seguito gli esempi per esportare il modello, gli strumenti offline disponibili nella nuova versione del runtime ONNX possono ottimizzare il modello per una maggiore velocità.
 

Cos'è ONNX Runtime (ORT)?



Cos'è ONNX Runtime (ORT)?

ONNX Runtime (ORT) è una libreria che ottimizza e accelera l'inferenza di machine learning, consentendo agli utenti di addestrare i propri modelli in qualsiasi libreria di machine learning supportata, esportare in formato ONNX ed eseguire l'inferenza nella lingua preferita. Il relatore evidenzia un esempio di esecuzione dell'inferenza utilizzando PyTorch con ONNX Runtime e sottolinea che gli utenti possono visitare ONNXRuntime.ai per esplorare le diverse API e gli strumenti richiesti per la loro configurazione preferita.

 

Discussione sulla roadmap ONNX 2020 n. 1 20200903



Discussione sulla roadmap ONNX 2020 n. 1 20200903

Il documento della roadmap ONNX, che è stato aperto ai contributi del pubblico, è un argomento chiave in questo video. La discussione riguarda l'estensione di ONNX su una pipeline di machine learning, inclusa l'evoluzione dei dati, la pre-elaborazione e l'estensione di ONNX su pipeline orizzontali come QFLO. I suggerimenti avanzati dai contributori includono il supporto di frame di dati e l'adozione di nuovi operatori per la pre-elaborazione. I relatori discutono anche dell'adozione dello standard Python data API per espandere il supporto di ONNX e garantire l'interoperabilità tra le altre librerie. Inoltre, i relatori discutono dell'integrazione di ONNX in Kubernetes e Kubeflow per semplificare lo sviluppo ML per gli utenti. Il gruppo prevede di continuare a valutare l'impatto della proposta e accoglie con favore il feedback attraverso la tabella di marcia o il comitato direttivo.

  • 00:00:00 In questa sezione, il relatore discute il documento della roadmap ONNX che è stato aperto ai contributi del pubblico e sottolinea l'importanza di questi contributi per l'implementazione dei cambiamenti. Il relatore afferma che ci saranno sei discussioni sulla tabella di marcia, ospitate settimanalmente, con un incontro della comunità previsto per il 14 ottobre. La discussione è divisa in tre parti principali, con la seconda parte incentrata sull'estensione di ONNX su una pipeline di machine learning. Nello specifico, la discussione riguarda l'evoluzione dei dati e la loro pre-elaborazione, nonché l'estensione di ONNX a pipeline orizzontali come QFLO. Il relatore riassume anche alcuni dei suggerimenti avanzati dai contributori, come il supporto dei frame di dati e l'adozione di nuovi operatori per la pre-elaborazione.

  • 00:05:00 In questa sezione, la discussione si concentra sulla roadmap ONNX e su vari suggerimenti, come il supporto dell'elaborazione dello spettrogramma audio e l'espansione del supporto del layout dei dati. La conversazione riguarda anche l'estensione proposta dell'influenza di ONNX sulla pipeline ML e i potenziali vantaggi del supporto dei frame di dati all'interno di ONNX. I partecipanti esprimono le loro opinioni, con un membro che condivide approfondimenti sugli sforzi del Python Data API Consortium per costruire uno standard API di dati per l'interoperabilità di array e frame di dati. Il gruppo sembra concordare sul fatto che l'espansione delle capacità di ONNX in queste aree sia una buona cosa e si allinei con iniziative di settore più ampie.

  • 00:10:00 In questa sezione, i relatori discutono dell'adozione dello standard Python data API come modo per espandere il supporto di ONNX e garantire l'interoperabilità tra tutte le altre librerie dello stesso standard. Il relatore afferma che l'adozione dello standard renderebbe più facile lo scambio di modelli e allineare il programma temporale con il consorzio più grande sarebbe meglio per gli utenti che utilizzano ONNX. Discutono anche della differenza tra l'ONNX e la struttura dati tradizionale come il data frame e la necessità di adottare lo stesso standard da parte di altre biblioteche.

  • 00:15:00 può integrare ONNX nella pipeline Kuflow per semplificare lo sviluppo ML per gli utenti finali. Chen menziona il concetto di pipeline in cui tutti i componenti lavorano insieme per orchestrare lo sviluppo ML end-to-end. Kuflow combina il contenuto di modelli e dati con l'infrastruttura per fornire un'esperienza senza soluzione di continuità agli utenti finali. Chen sta esplorando come ONNX può essere integrato in questa pipeline per ampliarne l'utilizzo e renderlo più semplice per gli sviluppatori ML.

  • 00:20:00 In questa sezione, i relatori discutono l'idea di rendere più facile per gli utenti che utilizzano Kubernetes e Kubeflow sfruttare ONNX per la loro infrastruttura e i loro ambienti. L'obiettivo è sviluppare un'API di facile accesso per prendere i modelli dallo zoo modello e creare una pipeline end-to-end utilizzando ONNX. I relatori mostrano un esempio in cui usano ONNX per descrivere la parte di inferenza di un processo di apprendimento automatico in Kubeflow e delineano idee per lo sviluppo di componenti ONNX per coprire più fasi, tra cui l'elaborazione dei dati e la formazione distribuita. L'idea è di sfruttare la potenza di Kubernetes coprendo anche più passaggi nel processo di apprendimento automatico.

  • 00:25:00 In questa sezione, i relatori discutono dell'espansione di QFlow per avere un lavoro ONNX per consentire l'addestramento distribuito e l'aggiunta di elaborazione e trasformazione dei dati per arrivare alla parte di addestramento del modello. Il runtime ONNX stesso supporta l'addestramento dei modelli di trasformatore da PyTorch oggi, ma ci sono ancora progressi da fare con l'addestramento del modello ONNX. I relatori suggeriscono di iniziare con i modelli nello zoo modello per vedere come i dati devono essere pre-elaborati e trasformati per i modelli, ma si noti che questo non è puramente all'interno del progetto principale ONNX e richiede un framework di livello superiore per la definizione dei componenti come CoolFlow.

  • 00:30:00 In questa sezione, i partecipanti discutono una proposta che è stata fatta per la roadmap ONNX e suggeriscono di collegare le diapositive al documento. Il gruppo prevede di continuare a valutare l'impatto della proposta nelle riunioni successive e spera di avere una maggiore chiusura sull'attuazione. Accolgono inoltre con favore il feedback e incoraggiano gli utenti a inviarlo tramite la roadmap o il comitato direttivo. La discussione si conclude con un saluto e un invito a futuri incontri.
Motivazione: