Imparare ONNX per il trading - pagina 11

 

Sfrutta la potenza del Machine Learning con ONNX - Ron Dagdag



Sfrutta la potenza del Machine Learning con ONNX - Ron Dagdag

In questo video, Ron Dagdag approfondisce l'importanza dei framework di machine learning, in particolare ONNX, che facilita l'interoperabilità tra i framework di deep learning e la distribuzione. Descrive i modi per ottenere modelli ONNX, inclusa la conversione di modelli esistenti, l'addestramento di modelli con l'apprendimento automatico di Azure e l'utilizzo del servizio di visione personalizzato di Azure. Dagdag sottolinea la decisione se implementare modelli di machine learning nel cloud o sull'edge e suggerisce di sfruttare ONNX per rendere il processo più fluido. Inoltre, illustra il processo di utilizzo di ML.NET di Microsoft per creare un modello di machine learning e dimostra come incorporare il modello ONNX in un'applicazione utilizzando il runtime ONNX per l'inferenza. Dagdag esplora anche ONNX come standard aperto per l'apprendimento automatico, le sue varie piattaforme e linguaggi e gli strumenti per ridurre le dimensioni dei modelli.

  • 00:00:00 In questa sezione, il relatore discute in che modo la programmazione tradizionale differisce dall'apprendimento automatico, poiché l'apprendimento automatico si concentra sull'addestramento dei computer per apprendere gli algoritmi mentre la programmazione tradizionale si concentra su input e calcoli. I dati di addestramento sono importanti nell'apprendimento automatico e questi dati vengono utilizzati per addestrare le macchine ad apprendere gli algoritmi come parte del processo. Il relatore sottolinea l'importanza dei framework di machine learning, come ONNX (Open Neural Network Exchange), che funge da ponte tra i framework di machine learning e la distribuzione. ONNX aiuta a spostare i modelli tra framework di deep learning, garantendo l'interoperabilità tra framework.

  • 00:05:00 In questa sezione, Ron Dagdag discute i diversi modi per ottenere un modello ONNX. I data scientist, simili agli chef, sono responsabili della creazione e del perfezionamento della ricetta per migliorare il modello di un'azienda, mentre i modelli ONNX sono come i PDF per la rappresentazione neurale di un grafico delle operazioni. Esistono quattro modi per ottenere i modelli ONNX, anche tramite GitHub, il servizio di visione personalizzato di Azure, convertire i modelli esistenti e addestrarli usando l'apprendimento automatico di Azure. Il processo per convertire i modelli in ONNX è semplice, poiché sono disponibili convertitori per modificare i modelli da TensorFlow, Keras o PyTorch a ONNX, con passaggi importanti tra cui il caricamento del modello esistente, l'esecuzione della conversione e il salvataggio. Nel complesso, ONNX può aiutare le aziende a integrare il machine learning nelle loro applicazioni in modo più fluido.

  • 00:10:00 In questa sezione, il relatore discute l'utilizzo di ONNX per i modelli di machine learning. ONNX consente agli sviluppatori di identificare quali sono i dati di input e output dei loro modelli durante la visualizzazione. Può essere utilizzato tramite la conversione della riga di comando e può scalare rapidamente con i cluster GPU nel cloud. ONNX offre anche un registro dei modelli che può aiutare con il controllo delle versioni dei modelli e l'assistenza durante la distribuzione. Il relatore sottolinea la differenza tra data scientist e ingegneri del software, dove il primo genera una ricetta segreta mentre il secondo capisce come renderla operativa integrandola con varie fonti, procurandosi dati e creando pipeline. ONNX può essere distribuito su vari dispositivi, inclusi i dispositivi Windows e gli endpoint IoT.

  • 00:15:00 In questa sezione, il relatore discute la decisione se implementare modelli di machine learning nel cloud o sull'edge, che si riferisce all'elaborazione più vicina all'utente. Spiega che l'implementazione all'edge può essere più conveniente, flessibile e avere una latenza inferiore, il che è l'ideale durante l'elaborazione di video o immagini. Inoltre, l'implementazione all'edge può essere necessaria quando le norme e i regolamenti impongono che i dati non debbano lasciare una rete o un paese specifico. Il relatore suggerisce di utilizzare ONNX, un formato intermedio in grado di convertire modelli da diversi framework di machine learning, per rendere il processo di distribuzione più fluido.

  • 00:20:00 In questa sezione, il relatore discute il framework ONNX e le sue potenziali applicazioni. ONNX consente la conversione di modelli in diversi formati, tra cui TensorFlow, Core ML e transfer learning, e dispone di un runtime ad alte prestazioni per l'esecuzione dei modelli, chiamato ONNX Runtime. ONNX Runtime è multipiattaforma e supporta le tradizionali operazioni di machine learning. Ha anche una versione GPU e un'API C#. Nel complesso, ONNX è uno strumento potente per gli sviluppatori e gli utenti possono iniziare a utilizzarlo tramite l'ecosistema ONNX utilizzando l'istanza del contenitore docker. Nella sua demo, il relatore mostra come scaricare e utilizzare diversi pacchetti ONNX in C# per manipolare i dati utilizzando frame di dati.

  • 00:25:00 In questa sezione, il relatore dimostra il processo di utilizzo di ML.NET di Microsoft per creare un semplice modello di machine learning che prevede lo stipendio in base ad anni di esperienza. Prima suddivide i dati in set di addestramento e test, crea una pipeline utilizzando il contesto ML e addestra il modello utilizzando il set di addestramento. Quindi valuta le metriche del modello e le salva in un modello ONNX. Successivamente, mostra come incorporare il modello ONNX in un'applicazione utilizzando il runtime ONNX per l'inferenza. Infine, crea un contenitore di input per l'applicazione ed esegue il modello per ottenere il punteggio.

  • 00:30:00 In questa sezione, il relatore discute i vantaggi dell'utilizzo del runtime ONNX, i diversi team Microsoft che lo hanno utilizzato in passato e come migliora i propri processi. Parla anche dell'utilizzo di Windows ML se stai distribuendo su dispositivi Windows, che è disponibile su tutti i dispositivi della famiglia Windows nelle applicazioni win32 e WinRT, e della connessione del runtime ONNX tramite API. Il relatore esplora quindi Direct ML, che è l'ideale per creare API di apprendimento automatico ad alto controllo in tempo reale ed è il migliore per i giochi. Evidenzia anche ONNX JS per l'esecuzione di modelli ONNX nel browser o in nodejs e Embedded Learning Library, che consente di iniziare a utilizzare dispositivi che non dispongono di un intero sistema operativo o Linux Mac.

  • 00:35:00 In questa sezione, Ron Dagdag discute l'uso di ONNX come standard aperto per l'apprendimento automatico e come può convertirsi in modo efficiente a piattaforme diverse. I modelli ONNX possono essere creati in diversi linguaggi come dotnet, JavaScript e Python. Le prestazioni possono essere raggiunte attraverso la distribuzione nel cloud o nell'edge. Il pubblico ha posto domande come, puoi importare il tuo modello ONNX in C#, qual è il footprint di memoria del runtime ONNX e come puoi convertire un modello di immagine di grandi dimensioni in un modello ONNX più piccolo adatto a dispositivi più piccoli. Dagdag ha suggerito di utilizzare la potatura o la quantizzazione per comprimere i modelli e ridurne le dimensioni. Ha anche sottolineato che le diapositive e i codici demo sono disponibili nel repository GitHub, insieme al raccoglitore per provare il codice.

  • 00:40:00 In questa sezione, il relatore discute il processo di riduzione delle dimensioni dei modelli ONNX. Il modello ONNX è composto da grafici di operazioni che identificano quali operazioni può eseguire. Anche se potrebbe non esserci un modo specifico per ridurre un modello ONNX, esiste un'utilità che può comprimerlo. Poiché si tratta di un software open source, è possibile che in futuro venga rilasciata una nuova funzionalità. Gli spettatori sono incoraggiati a inviare ulteriori domande a Ron tramite la chat o il sito Web di domande e risposte.
 

Sfrutta la potenza del machine learning con ONNX | Ron Lyle Dagdag | Apprendimento automatico Conf42 2021


Sfrutta la potenza del machine learning con ONNX | Ron Lyle Dagdag | Apprendimento automatico Conf42 2021

In questo video, Ron Dagdag illustra i vantaggi dell'utilizzo di ONNX (Open Neural Network Exchange) come formato aperto per i modelli di machine learning, in particolare quando si distribuiscono modelli a diversi endpoint come telefoni o infrastrutture cloud. Copre gli scenari in cui la conversione di un modello in ONNX può essere utile, ad esempio prestazioni ridotte o la combinazione di modelli addestrati su framework diversi, e descrive come è possibile scaricare modelli popolari come RestNet nel formato ONNX. Inoltre, discute i vantaggi dell'esecuzione di modelli di machine learning sull'edge, nonché l'importanza di gestire i modelli registrandoli nel cloud e controllandone le versioni. Dimostra come convertire un modello in ONNX e come utilizzare il runtime ONNX in Python per l'inferenza e conclude sottolineando il ruolo di ONNX nel consentire a data scientist e ingegneri del software di lavorare insieme in modo efficace.

  • 00:00:00 In questa sezione, Ron Dagdag di Spacy introduce ONNX (Open Neural Network Exchange) come un formato aperto per i modelli di machine learning in grado di gestire i tradizionali modelli di machine learning oltre alle reti neurali. Sottolinea che questo formato colma il divario tra la fase di addestramento dell'apprendimento automatico e dove distribuire il modello appreso, che può essere una varietà di endpoint dai telefoni all'infrastruttura cloud. ONNX ha stretto collaborazioni con un numero crescente di organizzazioni, in particolare Microsoft e Facebook.

  • 00:05:00 In questa sezione, il relatore descrive la crescente popolarità di ONNX, un framework che consente di implementare modelli di machine learning addestrati in un linguaggio di programmazione in un altro linguaggio o su hardware diverso, nonché le situazioni in cui può essere utile per convertire un modello in ONNX. Questi includono scenari in cui è presente un'elevata latenza o basse prestazioni, durante la distribuzione a IoT o dispositivi perimetrali o quando si combinano modelli addestrati su framework diversi. Il relatore paragona ONNX a un PDF in quanto consente di visualizzare i modelli su diversi tipi di dispositivi e prosegue illustrando come creare modelli ONNX, inclusa l'esportazione dallo zoo dei modelli ONNX o l'utilizzo di Azure Custom Vision.

  • 00:10:00 In questa sezione, il relatore discute di come i popolari modelli di machine learning, come RestNet, siano già convertiti in formati ONNX che possono essere facilmente scaricati per l'uso. Menziona anche come i modelli di rete neurale possono essere convertiti in ONNX utilizzando strumenti come Torch e SKL o tramite la riga di comando. Inoltre, parla di Netron, uno strumento che visualizza i modelli ONNX mostrando gli input e gli output del grafico delle operazioni senza la necessità del codice originale del data scientist. Infine, il relatore sottolinea l'importanza di gestire i modelli di machine learning registrandoli nel cloud e controllandone le versioni.

  • 00:15:00 In questa sezione, Ron Lyle Dagdag discute l'importanza di dove distribuire i modelli di machine learning e i diversi fattori da considerare per la distribuzione. Spiega che la distribuzione può essere eseguita in vari modi, ad esempio la distribuzione nel cloud o l'esecuzione di inferenze all'edge, più vicino all'utente. Inoltre, menziona l'importanza di creare un'immagine e creare una pipeline per la distribuzione, che può essere eseguita tramite un servizio o un contenitore Docker, e parla della disponibilità di immagini Docker ONNX che possono essere utilizzate per incorporare ONNX in un'applicazione.

  • 00:20:00 In questa sezione, il relatore discute i vantaggi dell'esecuzione di modelli di machine learning sull'edge anziché nel cloud. Uno dei principali vantaggi è la bassa latenza, poiché l'esecuzione del modello in locale sul dispositivo può fornire tempi di inferenza più rapidi. Un altro vantaggio è la scalabilità, in quanto può essere più efficiente distribuire il modello su milioni o miliardi di dispositivi anziché inviare i dati al cloud. L'ecosistema ONNX viene introdotto come soluzione per convertire i modelli esistenti in un formato che può essere eseguito sull'edge utilizzando diversi acceleratori hardware. Il runtime ONNX, un motore di inferenza ad alte prestazioni per i modelli ONNX, viene anche discusso come soluzione open source per l'esecuzione di modelli sull'edge.

  • 00:25:00 In questa sezione, il relatore discute il runtime ONNX e come può essere utilizzato con la piattaforma Windows AI, ad esempio con l'API WinML, per un'inferenza API basata su modello pratica e semplice. Inoltre, c'è l'API DirectML per la creazione di giochi, una libreria JavaScript chiamata ONNX.js per l'esecuzione di modelli in un browser e diversi modelli di driver robusti a seconda delle capacità del sistema. Il relatore procede quindi alla dimostrazione di come convertire un modello addestrato in ml.net in ONNX utilizzando i pacchetti nuget e l'applicazione C#.

  • 00:30:00 In questa sezione, Ron Lyle Dagdag mostra un semplice esempio di come creare un modello di apprendimento automatico che preveda lo stipendio in base all'input degli anni di esperienza di un revisore nell'utilizzo di ml.net. Una volta che il modello è stato addestrato, può essere convertito in un modello ONNX utilizzando la funzione `context.model.convert_to_onnx`. Il modello ONNX può quindi essere verificato e utilizzato per l'inferenza in un notebook Python utilizzando la libreria di runtime ONNX. L'input e l'output del modello vengono visualizzati utilizzando `netron.app`.

  • 00:35:00 In questa sezione, il relatore mostra come utilizzare il runtime ONNX in Python per l'inferenza di un modello creato in ML.NET ed esportato in un file ONNX. Il relatore mostra come ottenere il nome, la forma e il tipo degli input e degli output del modello ONNX e come passare i valori di input al modello per l'inferenza. Il relatore sottolinea inoltre l'importanza di utilizzare ONNX come standard aperto per l'integrazione di modelli di machine learning nelle applicazioni e come ONNX consente a data scientist e ingegneri del software di lavorare insieme in modo efficace. Infine, il relatore fornisce un riepilogo dei punti salienti della discussione, tra cui come creare e distribuire un modello ONNX e le varie piattaforme che supportano la distribuzione ONNX.

  • 00:40:00 In questa sezione, Ron Dagdag, Lead Software Engineer presso Spacy e Microsoft MVP, conclude il video ringraziando il pubblico e condividendo i modi per contattarlo se vogliono informarsi sul runtime ONNX, i notebook Jupyter, le panetterie , fornai e pane.
 

Inferenza in JavaScript con ONNX Runtime Web!



Inferenza in JavaScript con ONNX Runtime Web!

Il video illustra l'utilizzo di ONNX Runtime Web nel browser tramite un modello Next.js che offre un'interfaccia utente per eseguire l'inferenza su immagini preselezionate. Viene dimostrato il processo di conversione dei dati dell'immagine in un tensore utilizzando i valori RGB e la creazione delle dimensioni. Viene esplorata la funzione di supporto del modello, che passa i dati pre-elaborati alla sessione di inferenza ONNX utilizzando il percorso del modello, il provider di esecuzione e le opzioni della sessione. I feed per il modello vengono creati utilizzando il nome di input e l'oggetto tensore e vengono passati alla funzione session.run per ottenere i primi cinque risultati. Il primo risultato popola la visualizzazione dell'immagine mentre vengono fornite la configurazione del webpack e le istruzioni per l'inferenza lato server tramite ONNX Runtime Node.

  • 00:00:00 In questa sezione impareremo a utilizzare ONNX Runtime Web con JavaScript nel browser utilizzando un modello che fornisce tutta la pre-elaborazione necessaria per eseguire l'inferenza. Il modello è basato su Next.js, un framework React per la creazione di app pronte per la produzione, e offre una semplice interfaccia utente per eseguire l'inferenza su immagini di esempio preselezionate. L'autore ci guida attraverso il codice che imposta un elemento canvas HTML per visualizzare immagini e riporta varie statistiche sull'inferenza. L'immagine viene quindi convertita in un tensore utilizzando l'utility image helper e quindi passata attraverso la funzione predict nell'helper del modello che chiama l'API Web ONNX Runtime per eseguire l'inferenza.

  • 00:05:00 In questa sezione, il video descrive il processo di conversione dei dati dell'immagine in un tensore per l'inferenza utilizzando i valori RGB, il rimodellamento e la creazione di un tensore con dati e dimensioni utilizzando l'oggetto tensore in ONNX Runtime Web. Il video esplora anche la funzione di supporto del modello, che passa i dati pre-elaborati alla sessione di inferenza ONNX fornendogli il percorso del modello, il provider di esecuzione (WebGL o WebAssembly) e le opzioni di sessione. Il nome di input e l'oggetto tensore ORT sono necessari per creare feed per il modello, che vengono passati alla funzione session.run per ottenere il risultato. Vengono restituiti i primi cinque risultati e il primo risultato viene utilizzato per popolare la visualizzazione dell'immagine. Inoltre, viene fornita una configurazione del webpack, insieme alle istruzioni per l'utilizzo di ONNX Runtime Node per eseguire l'inferenza sul lato server con un framework API.
 

Ron Dagdag - Creazione di reti neurali nel browser con ONNX



Ron Dagdag - Creazione di reti neurali nel browser con ONNX

In questo video, Ron Dagdag spiega come utilizzare il framework di machine learning ONNX per eseguire reti neurali in un browser. Discute le basi dell'apprendimento automatico, la creazione e l'implementazione di modelli ONNX e l'ambiente di runtime ONNX. Dagdag dimostra l'uso di ONNX con vari esempi, inclusa la previsione degli stipendi in base all'esperienza lavorativa e il rilevamento delle emozioni nelle immagini. Copre anche l'implementazione di modelli ONNX su diverse piattaforme, come Android e iOS, e mette in evidenza le risorse e le demo disponibili per sperimentare con ONNX. Dagdag incoraggia la sperimentazione con ONNX e sottolinea l'importanza di un'inferenza efficiente sulle piattaforme target utilizzando il runtime ONNX.

  • 00:00:00 In questa sezione, Ron Dagdag, Director of Software Engineering e Microsoft MVP, discute le basi dell'apprendimento automatico e la differenza tra la programmazione tradizionale e l'apprendimento automatico. Spiega che, nell'apprendimento automatico, l'input è seguito dalla fornitura di una serie di esempi o risposte e l'obiettivo è addestrare il computer a creare un algoritmo per te. Discute anche ONNX , un framework di apprendimento automatico che sta guadagnando popolarità tra gli sviluppatori JavaScript in quanto consente loro di far funzionare le reti neurali nel browser.

  • 00:05:00 In questa sezione, Ron Dagdag parla di ONNX, un formato aperto per i modelli di machine learning che funge da ponte tra l'addestramento e l'incorporazione dei modelli nelle applicazioni. ONNX non si limita alle reti neurali, ma include anche l'apprendimento automatico tradizionale ed è disponibile su GitHub e ha numerosi contributori. È pronto per la produzione e ottimizzato per l'uso in produzione, rendendolo adatto a dispositivi edge con risorse limitate o dispositivi IoT. Inoltre, ONNX consente di combinare modelli costruiti in diversi framework, rendendolo uno strumento eccellente per collaborare con più team che utilizzano diversi framework di machine learning.

  • 00:10:00 In questa sezione, Ron Dagdag illustra il processo di creazione e distribuzione di un modello ONNX. Paragona il processo alla cottura del pane, affermando che proprio come la panificazione richiede una ricetta segreta, i data scientist sperimentano diverse combinazioni per creare il modello corretto che si adatta al set di dati specifico. Dagdag spiega che un modello ONNX è un grafico delle operazioni che possono essere visualizzate utilizzando l'app Netron. Cita tre modi per creare il modello, incluso l'uso dello zoo del modello ONNX, il servizio di visione personalizzato di Azure per la classificazione delle immagini e la conversione di un modello esistente. Dagdag suggerisce che il modo più semplice per sperimentare un modello è utilizzare il servizio di visione personalizzato, che consente di caricare, etichettare e utilizzare un set di dati per creare un modello ONNX personalizzato.

  • 00:15:00 In questa sezione, Ron Dagdag spiega come convertire i modelli di machine learning esistenti in ONNX e salvarli in file ONNX. Fornisce semplici esempi utilizzando PyTorch e Keras, nonché strumenti a riga di comando per TensorFlow e Scikit-learn. Parla anche dell'importanza di gestire e registrare i modelli per garantire che venga utilizzata la versione corretta nel processo di distribuzione. Dagdag sottolinea che gli ingegneri del software possono potenziare i data scientist fornendo le competenze necessarie per integrare i modelli di machine learning con le applicazioni esistenti, rendendoli così utili per le organizzazioni.

  • 00:20:00 In questa sezione, il relatore discute le opzioni di distribuzione per le reti neurali, inclusa la distribuzione su una macchina virtuale o un dispositivo come iOS o Android. Viene anche evidenziata la differenza tra l'implementazione cloud e edge, utilizzando l'analogia di McDonald's che cuoce il pane in una fabbrica rispetto a Subway che lo cuoce al ristorante. Il runtime ONNX viene introdotto come strumento open source che può essere utilizzato per l'inferenza sui modelli ONNX in JavaScript, Node e React Native. Il relatore fornisce quindi una demo su come visualizzare un modello ONNX in un'applicazione nodo e accenna brevemente a come hanno addestrato e convertito il modello in ONNX utilizzando .NET interattivo e un notebook Python.

  • 00:25:00 In questa sezione, Ron Dagdag spiega come crea un modello ONNX dai suoi pacchetti NuGet per addestrare un modello utilizzando Microsoft ML. Utilizza i dati forniti da Microsoft che prevedono un output basato su un fattore di input: in questo caso, l'esperienza dell'utente e lo stipendio basati su anni di esperienza. Dopo aver addestrato il modello, genera un file ONNX, che poi integra in un'applicazione JavaScript creando una sessione e trasmettendo i feed. Una volta impostati i feed nella sessione, lo esegue e utilizza il punteggio. output per visualizzare i risultati della previsione. Dagdag utilizza ONNX Runtime Node per l'ambiente di runtime per eseguire l'applicazione JavaScript.

  • 00:30:00 In questa sezione, Ron Dagdag spiega come eseguire modelli di machine learning nel browser utilizzando ONNX runtime web, che è una libreria in esecuzione JavaScript che utilizza le tecnologie web assembly e webGL. L'esecuzione di modelli nel browser è più veloce, più sicura ed economica poiché viene eseguita localmente e non si basa su una connessione Internet. Ron spiega anche che non dovresti eseguire modelli di grandi dimensioni nel browser e mostra come eseguire un modello ONNX esistente in una rete neurale utilizzando un semplice esempio in cui utilizza l'input per passarlo al modello e ottenere un output di previsione.

  • 00:35:00 In questa sezione, Dagdag illustra il processo di creazione e integrazione di un modello ONNX in un browser. Usa un modello ONNX in grado di distinguere le emozioni da un'immagine in scala di grigi 64x64 come esempio. Per utilizzare il modello su un'immagine, Dagdag prima ridimensiona e preelabora l'immagine, quindi la converte in un tensore. Carica il modello ONNX in tre passaggi, crea una sessione, invia l'input al modello ed elabora l'output per visualizzare le emozioni rilevate nell'immagine. Dagdag osserva che il processo di integrazione di un ONNX con un'applicazione browser comporta la creazione di una sessione, il suo passaggio a session.run e l'elaborazione dell'output.

  • 00:40:00 In questa sezione, Ron Dagdag discute le diverse risorse e demo disponibili per sperimentare con ONNX, come la demo MNIST che consente agli utenti di tracciare un numero per vedere se il modello può classificarlo accuratamente. Accenna inoltre al fatto che ONNX può essere utilizzato con React Native su piattaforme Android e iOS, ma deve essere convertito in un formato ottimizzato per i dispositivi mobili. ONNX è compatibile con varie piattaforme come Windows 10, Mac, Ubuntu, iOS, Android e può essere utilizzato con webassembly o webgl. Ron sottolinea l'importanza di utilizzare il runtime ONNX per eseguire il modello in modo efficiente sulla piattaforma di destinazione e per separare ciò che viene utilizzato per l'addestramento e l'inferenza. Accenna inoltre al fatto che ONNX può essere distribuito utilizzando Windows ML, Azure ML e può essere utilizzato con JavaScript e Python. Ron conclude dicendo che ONNX è in grado di funzionare su diversi dispositivi come gli occhiali Snapchat AR e incoraggia gli spettatori a sperimentare con ONNX utilizzando le risorse e le demo disponibili.
 

Far funzionare le reti neurali nel browser con ONNX - Ron Dagdag - NDC Melbourne 2022



Far funzionare le reti neurali nel browser con ONNX - Ron Dagdag - NDC Melbourne 2022

Ron Dagdag condivide la sua esperienza nel far funzionare le reti neurali nei browser con ONNX. Discute le basi della programmazione e come differisce dall'apprendimento automatico, la disponibilità di JavaScript e framework di apprendimento automatico e come i modelli di apprendimento automatico possono essere eseguiti su diversi dispositivi, inclusi telefoni, IoT e cloud. Introduce ONNX, un formato aperto per modelli di machine learning in grado di integrare modelli creati in diversi framework con applicazioni esistenti in diversi linguaggi di programmazione. Dagdag dimostra come creare, gestire e distribuire modelli ONNX, incorporando runtime ONNX, web assembly e tecnologie Web GL per eseguire modelli ONNX nei browser ottimizzando prestazioni, sicurezza e costi. Il video copre anche il punteggio di modelli pre-addestrati su dispositivi mobili, considerazioni sui costi e i vantaggi dell'esecuzione del rilevamento degli oggetti più vicino all'edge per l'elaborazione locale di grandi quantità di dati.

  • 00:00:00 In questa sezione, Ron Dagdag spiega le basi della programmazione e come si differenzia dall'apprendimento automatico. Discute i dati di addestramento e il framework necessari per creare un modello, che viene utilizzato nell'inferenza. Sottolinea inoltre la disponibilità di vari framework JavaScript e di apprendimento automatico. Infine, sottolinea che i modelli di machine learning possono essere eseguiti su diversi dispositivi, inclusi telefoni, IoT e cloud, e possono anche diventare un ciclo di feedback per migliorare il modello.

  • 00:05:00 In questa sezione, il relatore introduce ONNX (Open Neural Network Exchange), che è un formato aperto per i modelli di machine learning che è open source su GitHub. ONNX consente l'integrazione di modelli di machine learning creati in diversi framework, come PyTorch e Keras, con applicazioni esistenti in diversi linguaggi di programmazione come C#, Java e JavaScript. L'uso di ONNX è particolarmente utile quando hai bisogno di un'elevata latenza di inferenza e risultati rapidi, soprattutto quando si esegue su IoT o dispositivi perimetrali. Inoltre, ONNX consente di combinare diversi modelli e addestrare localmente invece di inviarlo in remoto. L'ordine del giorno della sessione include la creazione di modelli ONNX e la loro distribuzione.

  • 00:10:00 In questa sezione, il relatore discute diversi modi per creare un modello ONNX per la distribuzione. Un modo è attraverso il modello ONNX Zoo su GitHub, dove i modelli esistenti basati sulla classificazione delle immagini, tra gli altri, sono già disponibili per il download gratuito. Un altro modo è attraverso il servizio Custom Vision di Microsoft, in cui un'immagine o un set di dati può essere caricato, contrassegnato e addestrato per creare un modello personalizzato che può essere esportato in un modello ONNX. La conversione dei modelli esistenti è un'altra opzione, che può essere eseguita utilizzando librerie o strumenti come la libreria PyTorch o gli strumenti ONNX ML. Il relatore sottolinea l'importanza di un data scientist nello sperimentare e capire l'approccio migliore per creare il modello più efficace per i dati di un'azienda.

  • 00:15:00 In questa sezione, Ron Dagdag spiega il processo di creazione e gestione dei modelli di machine learning tramite Azure Machine Learning, dove i modelli possono essere registrati e gestiti come un repository Github per le modifiche al codice. Dimostra anche come creare un modello ML utilizzando ml.net in Visual Studio Code e come esportarlo in ONNX utilizzando un'interfaccia della riga di comando, che genera un file model.onnx che può essere aperto nell'app ONNX netron.

  • 00:20:00 In questa sezione, Ron Dagdag illustra come distribuire i modelli ONNX dopo che sono stati creati. Spiega che la distribuzione è fondamentale per integrare i modelli con le applicazioni e gli sviluppatori devono considerare se eseguire il modello nel cloud o all'edge. Quando si esegue nel cloud, gli sviluppatori devono decidere in quale data center distribuirlo, mentre la distribuzione all'edge significa che il modello viene eseguito più vicino all'utente, ad esempio su un telefono o un browser. Dagdag rileva i vantaggi dell'esecuzione del modello all'edge, come la flessibilità, e l'importanza di creare sistemi per raccogliere denaro o trasferire dati per elaborare e creare regole aziendali.

  • 00:25:00 In questa sezione, il relatore parla del runtime ONNX, un motore di inferenza ad alte prestazioni per i modelli ONNX open-source e completamente compatibile con le specifiche ONNX ML. Il runtime ONNX consente agli sviluppatori di selezionare varie piattaforme e architetture per eseguire i propri modelli, inclusi browser web, iOS, Android, Mac e diverse API. Il relatore dimostra come utilizzare il runtime ONNX con node.js e webassembly per caricare un modello ONNX in memoria, passare i dati di input e ottenere l'output. Spiegano inoltre come il runtime ONNX consenta un'elaborazione efficiente passando solo i dati necessari per il calcolo ignorando il resto.

  • 00:30:00 In questa sezione, Ron Dagdag spiega come incorporare un nodo, creato utilizzando ml.net ed esportato in ONNX, in un'applicazione JavaScript in esecuzione sul lato server. Utilizzando le tecnologie webassembly e webgl, il modello ONNX può essere eseguito sia sulla CPU che sulla GPU, con prestazioni più veloci, maggiore sicurezza, utilizzo offline e costi ridotti. Sebbene incorporare il modello nel browser abbia molti vantaggi, le dimensioni del modello e i requisiti hardware di grandi dimensioni possono influire sull'esperienza dell'utente, pertanto sono necessarie la semplificazione e la considerazione del dispositivo. È disponibile anche un modello di reazione da utilizzare per gli sviluppatori di reazioni.

  • 00:35:00 In questa sezione, Ron Dagdag mostra come eseguire una rete neurale nel browser utilizzando ONNX. Mostra una demo di un modello ONNX che ha scaricato dallo zoo del modello ONNX che rileva le emozioni in un'immagine. Il runtime web di ONNX viene utilizzato per caricare l'immagine ed elaborarla. Il modello richiede un'immagine di input di dimensioni 64x64, quindi Ron ridimensiona e converte l'immagine in scala di grigi prima di convertirla in un tensore utilizzando ort.tensor. L'output è un tensore di 1x8 contenente le emozioni rilevate nell'immagine.

  • 00:40:00 In questa sezione, il relatore discute su come far funzionare le reti neurali in un browser con ONNX. Spiega che i tre passaggi per caricare un modello ONNX in memoria sono caricarlo, creare parametri di input basati sul modello ed eseguire la sessione per ottenere risultati. Discute anche del processo di valutazione di un modello pre-addestrato su dispositivi mobili utilizzando React Native, che prevede la conversione del modello ONNX in un modello mobile ottimizzato chiamato mobile.ort. Il runtime ONNX è compatibile con varie piattaforme, tra cui Windows 10, Mac OS, Ubuntu, iOS, Android, Chrome, Edge, Safari ed Electron. Il relatore sottolinea che la comprensione dei casi d'uso per le diverse pipeline di inferenza e addestramento del modello è fondamentale e fornisce un collegamento al suo GitHub per coloro che sono interessati a saperne di più.

  • 00:45:00 In questa sezione, il relatore parla dell'utilizzo di ONNX per eseguire l'apprendimento automatico sugli occhiali di Snapchat, che hanno capacità di rilevamento e segmentazione degli oggetti. Discute anche su come incorporare i modelli PyTorch e TensorFlow nelle applicazioni che utilizzano ONNX, poiché funge da via di mezzo per la conversione tra diversi framework. Suggerisce di considerare il costo dell'elaborazione dei dati quando si decide se utilizzare un dispositivo o un dispositivo intelligente per le applicazioni IoT e osserva che l'invio di grandi quantità di dati può diventare costoso. Il relatore raccomanda l'ottimizzazione attraverso l'uso di modelli che possono essere convertiti in ONNX e menziona la necessità di ulteriore lavoro quando gli operatori personalizzati non sono ancora mappati.

  • 00:50:00 In questa sezione del video, Ron Dagdag spiega i vantaggi di eseguire il rilevamento degli oggetti più vicino al bordo, piuttosto che nel cloud. L'elaborazione avviene localmente, il che è l'ideale quando si lavora con grandi quantità di dati. Anche l'invio dei risultati dell'inferenza all'hub eventi o al flusso, invece dei dati non elaborati, può aiutare a ottimizzare il processo.
 

Linux Foundation Artificial Intelligence & Data Day - Riunione della comunità ONNX - 21 ottobre 2021

Emma Ning (Microsoft) ONNX Runtime Web per l'inferenza nel browser


001 ONNX 20211021 Ning ONNX Runtime Web per inferenza nel browser

Emma, product manager del team Microsoft AI Framework, presenta ONNX Runtime Web, una nuova funzionalità di ONNX Runtime che consente agli sviluppatori JavaScript di eseguire e distribuire modelli di machine learning in un browser, con due back-end, tra cui Web Assembly per CPU e WebGL per GPU. Il back-end dell'assembly Web può eseguire qualsiasi modello ONNX, sfruttare multi-threading e SIMD e supportare la maggior parte delle funzionalità supportate dal runtime ONNX nativo, mentre il back-end WebGL è una pura implementazione basata su JavaScript con API WebGL. Il relatore discute anche della compatibilità degli operatori ONNX con entrambi i back-end, fornisce frammenti di codice per la creazione di una sessione di inferenza e l'esecuzione di un modello e presenta un sito Web dimostrativo con diversi scenari di modelli di immagine nel browser basati sul modello MobileNet. Tuttavia, il relatore riconosce anche che c'è ancora spazio per migliorare le prestazioni del runtime Web ONNX e il consumo di memoria e per espandere gli operatori ONNX supportati.

  • 00:00:00 In questa sezione, Emma, product manager del team Microsoft AI Framework, presenta ONNX Runtime Web, una nuova soluzione per l'inferenza all'interno del browser. L'idea dell'apprendimento automatico all'interno del browser sta prendendo piede, in quanto consente la portabilità multipiattaforma con l'implementazione del sistema attraverso il browser, protegge la privacy degli utenti e accelera le prestazioni senza inviare dati al server. ONNX Runtime Web è una nuova funzionalità di ONNX Runtime che consente agli sviluppatori JavaScript di eseguire e distribuire modelli di machine learning in un browser, con prestazioni di inferenza, copertura del modello ed esperienza di sviluppo migliorate. L'architettura di ONNX Runtime Web comprende due back-end, tra cui Web Assembly per CPU e WebGL per GPU, che consentono a ONNX Runtime Web di accelerare l'inferenza su CPU e GPU. Il back-end dell'assembly Web può eseguire qualsiasi modello ONNX, sfruttare multi-threading e SIMD e supportare la maggior parte delle funzionalità supportate dal runtime ONNX nativo. Il backend WebGL, invece, è una pura implementazione basata su JavaScript con API WebGL che forniscono accesso diretto alla GPU del computer, consentendo a molte tecniche di ottimizzazione di spingere ulteriormente le prestazioni al massimo.

  • 00:05:00 In questa sezione, il relatore discute la compatibilità degli operatori ONNX con entrambi i backend WebAssembly e WebGL, che supportano le piattaforme più popolari nel mondo web. Forniscono un collegamento a una tabella che mostra le piattaforme compatibili e quali operatori ONNX sono supportati. Forniscono inoltre frammenti di codice che dimostrano come creare una sessione di inferenza ed eseguire un modello con il Web di runtime ONNX, che consente un'esperienza di sviluppo coerente per l'influenza lato server e lato client. Il relatore condivide quindi un sito Web dimostrativo con diversi interessanti scenari di visione all'interno del browser alimentati da modelli di immagini, come l'esecuzione del modello MobileNet in un browser con la possibilità di scegliere diversi backend. Il relatore riconosce che c'è ancora spazio per miglioramenti in termini di aggiunta di più operatori ONNX e ottimizzazione delle prestazioni Web di runtime ONNX e del consumo di memoria, oltre a lavorare su più demo per mostrare le sue capacità.
 

Workshop W3C su web e machine learning estate 2020

ONNX.js - Una libreria Javascript per eseguire modelli ONNX nei browser e Node.js



ONNX.js - Una libreria Javascript per eseguire modelli ONNX nei browser e Node.js

ONNX.js è una libreria JavaScript che consente agli utenti di eseguire modelli ONNX nei browser e Node.js. Ottimizza il modello su CPU e GPU con varie tecniche e supporta la profilazione, la registrazione e il debug per una facile analisi. La libreria supporta tutti i principali browser e piattaforme e consente la parallelizzazione utilizzando web worker per prestazioni migliori su macchine multicore. Utilizzando WebGL per accedere alle funzionalità della GPU, fornisce significativi miglioramenti delle prestazioni e riduce il trasferimento dei dati tra CPU e GPU. Sebbene sia necessaria un'ulteriore ottimizzazione e supporto da parte dell'operatore, il relatore incoraggia i contributi della community per migliorare ONNX.js.

  • 00:00:00 In questa sezione, Emma di Microsoft parla di ONNX.js, che è una libreria JavaScript utilizzata per eseguire modelli ONNX nei browser e Node.js. JavaScript è un linguaggio molto importante utilizzato dal 95% dei siti Web ed è il linguaggio lato client più popolare utilizzato per app elettroniche come GitHub Desktop e VS Code. Nonostante la percezione che JavaScript non sia progettato per il calcolo ad alte prestazioni, sono disponibili tecniche per far funzionare bene JavaScript e machine learning. Uno dei vantaggi dell'utilizzo dell'apprendimento automatico lato client include la protezione della privacy, consentendo al tempo stesso l'analisi in tempo reale, abilitando un'esperienza AI coerente su più piattaforme e accelerando le prestazioni utilizzando le GPU senza richiedere l'installazione di librerie o driver. ONNX.js è simile a TensorFlow.js e fornisce modelli di machine learning nel formato ONNX, che è un framework standard.

  • 00:05:00 In questa sezione, impariamo a conoscere la community ONNX, fondata nel 2017 da Microsoft e Facebook per fornire uno standard open-format indipendente dalle finestre. ONNX.js è un'implementazione JavaScript pura di ONNX che consente agli utenti di eseguire modelli ONNX in un browser e caricare JS. Ottimizza il modello su CPU e GPU con diverse tecniche tecnologiche avanzate e ha tre back-end abilitati, due per CPU che utilizzano JavaScript e WebAssembly e uno per GPU che utilizza WebGL. ONNX.js fornisce anche un profiler, un logger e altre utilità per facilitare il debug e l'analisi e supporta tutti i browser sulle principali piattaforme per creare facilmente applicazioni AI su più piattaforme. Infine, l'uso di web worker consente la parallelizzazione all'interno di operatori pesanti che migliora significativamente le prestazioni su macchine con multicore.

  • 00:10:00 In questa sezione, il relatore discute i vantaggi dell'utilizzo di WebGL, una popolare API standard per l'accesso alle funzionalità della GPU, per accelerare la creazione di grafica in JavaScript. L'uso di WebGL consente molte ottimizzazioni per ridurre il trasferimento dei dati tra CPU e GPU, oltre a ridurre i cicli di elaborazione della GPU, con conseguenti significativi miglioramenti delle prestazioni. Il relatore fornisce anche un esempio di flusso end-to-end sull'utilizzo di ONNX.js per eseguire un modello e dimostra come utilizzare ONNX.js con un esempio HTML e strumenti npm e boundary. Inoltre, il relatore discute la necessità di ulteriore ottimizzazione e supporto per più operatori ONNX e incoraggia i contributi della comunità per migliorare ONNX.js.
 

Come eseguire i modelli PyTorch nel browser con ONNX.js



Come eseguire i modelli PyTorch nel browser con ONNX.js

Il video spiega i vantaggi dell'esecuzione di un modello PyTorch in un browser utilizzando JavaScript e ONNX.js, inclusi tempi di risposta migliori, scalabilità, disponibilità offline e maggiore privacy degli utenti. Il video illustra anche il processo di conversione di un modello PyTorch in un modello ONNX, caricandolo in una sessione ONNX.js ed eseguendo l'inferenza nel browser. Vengono discussi anche la preparazione dei dati, il debug e gli aumenti e il relatore dimostra come rendere il modello più robusto utilizzando tecniche di aumento dei dati. Il video fornisce un codice di esempio e un sito Web dimostrativo per consentire agli utenti di provare il modello da soli.

  • 00:00:00 In questa sezione, Eliot Wait discute i vantaggi dell'esecuzione di un modello PyTorch in un browser utilizzando JavaScript. In primo luogo, l'esecuzione del modello nel browser fornisce tempi di risposta migliori ed evita la latenza dell'invio di dati da e verso un server. In secondo luogo, la configurazione di un sito Web con solo file statici semplifica la scalabilità e la gestione di più utenti. In terzo luogo, il modello funzionerà offline, quindi finché i file JavaScript sono già installati, possono comunque essere utilizzati senza accesso a Internet. In quarto luogo, l'hosting del modello nel browser migliora la privacy dell'utente in quanto i dati non vengono condivisi con nessun server. Tuttavia, se il modello è troppo grande o richiede troppo tempo per il calcolo sui dispositivi degli utenti, si consiglia di ospitarlo su un server. Infine, Eliot illustra come convertire facilmente i modelli PyTorch in JavaScript utilizzando un modello Mnest per il riconoscimento delle cifre scritte a mano.

  • 00:05:00 In questa sezione, il video spiega la differenza tra l'utilizzo di TensorFlow.js e ONNX.js e suggerisce di utilizzare TensorFlow.js per l'addestramento e ONNX.js per l'inferenza. ONNX sta per "open neural network exchange" e definisce un formato di file comune per i modelli di machine learning. Il video illustra quindi il processo di conversione di un modello PyTorch in un modello ONNX utilizzando il metodo torch.onnx.export e mostra come caricare il modello in una sessione di inferenza ONNX.js per eseguire l'inferenza su di esso nel browser. Il video fornisce un codice di esempio per la creazione della sessione, il caricamento del modello e l'esecuzione dell'inferenza su un input fittizio, che restituisce una mappa di output di sola lettura.

  • 00:10:00 In questa sezione, il video illustra come risolvere un errore che si verifica quando si tenta di eseguire il modello PyTorch nel browser utilizzando ONNX.js. Nello specifico, il messaggio di errore indica che l'operatore log-softmax non è attualmente supportato da ONNX.js, ma il presentatore video mostra che l'operatore softmax è invece supportato. Il video introduce anche un sito Web dimostrativo in cui gli utenti possono disegnare numeri e vedere le previsioni di output del modello PyTorch. Tuttavia, il relatore nota che esiste un problema con il caricamento del modello, che viene corretto assicurandosi che il modello sia stato caricato prima di eseguire i dati attraverso di esso. Infine, il video presenta una versione aggiornata del codice del modello che rimodella un elenco di dati immagine in un tensore 280x280x4, consentendo al modello di prevedere i valori delle cifre in base all'input dei pixel.

  • 00:15:00 In questa sezione del video, il relatore spiega come preparare i dati per un modello PyTorch che verrà eseguito nel browser utilizzando ONNX.js. Estraggono il quarto canale di un'immagine disegnata per rimodellarla nella forma prevista per le immagini PyTorch. Applicano anche l'operatore medio del pool e dividono il tensore per 255 per regolare i valori dell'immagine all'interno dell'intervallo previsto. Inoltre, spiegano come normalizzare i dati sottraendo la media del set di dati e dividendola per la deviazione standard. L'oratore identifica un errore dovuto alla vecchia forma dell'ingresso fittizio e spiega come risolverlo. Spiegano anche come eseguire il debug e applicare l'aumento dei dati per rendere il modello più accurato, ruotando e traducendo i dati dell'immagine prima di passarli attraverso il modello.

  • 00:20:00 In questa sezione, il relatore dimostra come rendere il modello più robusto aggiungendo l'aumento dei dati allo script di addestramento. Questi aumenti includono traduzioni, ridimensionamento e taglio delle cifre, producendo campioni più difficili da cui il modello può imparare. L'oratore quindi riaddestra il modello da zero e lo testa, notando che mentre potrebbe ancora migliorare, l'aumento dei dati aggiunto lo ha reso complessivamente più robusto. Il relatore invita gli spettatori a provare di persona il modello utilizzando il link nella descrizione del video.
 

Classificazione delle cifre sulla CPU con demo ONNX Runtime



Classificazione delle cifre sulla CPU con demo ONNX Runtime

Open Neural Network Exchange (ONNX) fornisce un formato open source per modelli di deep learning e machine learning. Possiamo addestrare i nostri modelli in qualsiasi framework preferiamo e quindi convertire il modello in formato ONNX. Con ONNX Runtime di Microsoft, possiamo eseguire una sessione di inferenza con modelli onnx su qualsiasi ambiente che ci offre un'implementazione leggermente più rapida. Ecco una semplice dimostrazione dello stesso. Il modello viene addestrato a riconoscere le cifre utilizzando il set di dati MNIST con PyTorch. Sto eseguendo una sessione di inferenza su CPU Linux.

https://github.com/NagarajSMurthy/Digit-recognizer

GitHub - NagarajSMurthy/Digit-recognizer: Digit recognition using CNN and testing on CPU with ONNX runtime.
GitHub - NagarajSMurthy/Digit-recognizer: Digit recognition using CNN and testing on CPU with ONNX runtime.
  • NagarajSMurthy
  • github.com
Digit recognition is a simple task of recognising digits from 0 to 9. A CNN is trained on the MNIST dataset which gave a good accuracy of around 98% on the test set. Choosing the proper model and employing suitable regularisation technique, the model also performed well during inference with an accuracy of close to 98%. The whole model is then...
 

Miliardi di inferenze NLP sulla JVM utilizzando ONNX e DJL



Miliardi di inferenze NLP sulla JVM utilizzando ONNX e DJL

Il CTO di una società di media intelligence discute di come usano JVM e DJL e Hugging Face per la tokenizzazione NLP nella pipeline di machine learning per estrarre il panorama dei media per vari casi d'uso. Man mano che le funzionalità del loro prodotto si sono spinte verso di essa, il loro sistema di apprendimento automatico e modellazione è diventato una parte essenziale per mantenere tutto in esecuzione poiché hanno raggiunto una scala in cui la CPU non poteva più essere sufficiente. Sono passati dall'utilizzo di un modello a virgola mobile a 32 bit a 16 bit, che ha portato a un aumento dell'efficacia del 3%, ma hanno riscontrato errori di conversione e rare perdite di memoria durante il processo, che hanno risolto sostituendo diverse implementazioni. Hanno investito in robustezza aggiungendo CI basato su GPU e impostando uno stack logico Prometheus avanzato che monitora la latenza di varie inferenze e la latenza di tokenizzazione. I loro piani futuri includono il miglioramento dell'efficienza della GPU e l'aggiunta di più modelli al sistema creando una configurazione multi-GPU.

  • 00:00:00 In questa sezione del video, Viet, il CTO di una società di media intelligence, discute di come l'infrastruttura della sua azienda sia basata sulla JVM e di come la utilizzino per estrarre il panorama dei media per vari casi d'uso come il lancio di un prodotto monitoraggio e monitoraggio della reputazione. Spiega che il loro sistema è alimentato da JVM e usano DJL e Hugging Face per la tokenizzazione NLP nella pipeline di machine learning. Il sistema di machine learning e modellazione dell'azienda non è più solo utile, ma è una parte essenziale per mantenere tutto attivo e funzionante man mano che le caratteristiche del prodotto lo guidano. Hanno raggiunto una scala in cui la CPU non poteva più essere sufficiente, quindi considerano Cubernates come un sistema per ridimensionarlo orizzontalmente. Il loro sistema sta producendo miliardi di inferenze al giorno e fanno l'accelerazione GPU e utilizzano 8 milioni di siti per costruire un intero sistema web crawler.

  • 00:05:00 In questa sezione, il relatore discute la propria esperienza lavorando con l'ecosistema ONNX. Parlano del passaggio dall'utilizzo del modello a virgola mobile a 32 bit a quello a 16 bit, che ha portato a un aumento dell'efficacia del 3%. Tuttavia, hanno riscontrato errori di conversione durante questo processo, che hanno prodotto un output imprevisto dal modello ONNX. Hanno anche riscontrato rare perdite di memoria che hanno risolto sostituendo diverse implementazioni. Il relatore spiega che hanno investito in robustezza aggiungendo CI basato su GPU e impostando uno stack logico Prometheus avanzato che monitora la latenza di varie inferenze e la latenza di tokenizzazione. Infine, discutono dei loro piani futuri, che includono il miglioramento dell'efficienza della GPU e l'aggiunta di più modelli al sistema creando una configurazione multi-GPU.