Imparare ONNX per il trading - pagina 6

 

Apprendimento automatico applicato con runtime ONNX



Apprendimento automatico applicato con runtime ONNX

Jennifer Looper, Principal Education Cloud Advocate di Microsoft, discute la convergenza tra creazione di app, machine learning e data science in questo video. Raccomanda di creare app intelligenti per il Web ed esplora varie API JavaScript, tra cui ml5.js, Magenta.js, PoseNet e Brain.js, per incorporare la tecnologia di apprendimento automatico nelle app. Looper sottolinea l'utilità di scikit-learn per l'apprendimento automatico classico e lo raccomanda come uno strumento potente senza la pesante soluzione delle reti neurali. Discute anche Onnx Runtime, che ottimizza l'addestramento e l'inferenza definendo un insieme comune di operatori per la creazione di modelli di machine learning e deep learning, e ricava i dati da Kaggle per spiegare il processo di esecuzione di un'attività di classificazione di base utilizzando l'apprendimento automatico supervisionato. Il relatore mostra quindi come creare un motore di raccomandazione utilizzando modelli di machine learning e suggerisce di visitare le risorse online di Microsoft per saperne di più sull'apprendimento automatico. Conclude che Onnx Runtime è adatto ai principianti come parte del loro curriculum o a chiunque voglia saperne di più sull'apprendimento automatico.

  • 00:00:00 In questa sezione, Jen Looper, Principal Education Cloud Advocate presso Microsoft, discute la convergenza tra la creazione di app, l'apprendimento automatico e la scienza dei dati. Spiega le sfide della creazione di app mobili oggi, in particolare di fronte a nuove app che sono intrise di intelligenza ed eseguono algoritmi di apprendimento automatico in background. Looper sostiene che questa nuova richiesta di esperienze intelligenti abbia contribuito in primo luogo alle sfide che devono affrontare gli sviluppatori di app indipendenti.

  • 00:05:00 In questa sezione, il relatore discute su come creare app intelligenti e quali decisioni architettoniche e stack tecnico guiderebbero questo processo. Le opzioni includono la creazione di un'app nativa, la creazione per il Web o la creazione per il desktop. Il relatore consiglia di attenersi al Web per creare app intelligenti e spiega che, nonostante le differenze nelle competenze tra sviluppatori Web e ingegneri di machine learning, ci sono modi per far convergere questi campi. Il relatore illustra la collaborazione tra sviluppatori e ingegneri del machine learning, citando l'uso di devops, l'approvvigionamento e la pulizia dei dati, la formazione e l'iterazione, nonché il team ML Ops che garantisce la consegna accurata e il miglioramento continuo dei modelli di machine learning.

  • 00:10:00 aneddoti personali, il relatore spiega come colmare le divisioni nell'ingegneria dell'apprendimento automatico e creare app web può essere meno scoraggiante che superare la paura dei ponti. Il relatore introduce vari strumenti per incorporare la tecnologia di apprendimento automatico nelle app Web, tra cui TensorFlow.js, Brain.js e ONNX. Sottolinea i vantaggi di ogni strumento e incoraggia gli spettatori a esplorare il sito Web di TensorFlow per scoprire le fantastiche demo che offrono. Si concentra anche su ONNX Runtime e sulla sua capacità di portare modelli basati su ONNX nelle app web. Nel complesso, il relatore mira a fornire agli sviluppatori di app la conoscenza degli strumenti disponibili per migliorare le loro app con la tecnologia di apprendimento automatico.

  • 00:15:00 In questa sezione del video, il relatore discute varie API Javascript che possono essere utilizzate con modelli pre-addestrati per esplorare e creare intelligenza artificiale nel browser. Uno di questi è ml5.js che è basato su Tensorflow e fornisce esempi sul riconoscimento delle immagini e sull'analisi del suono. Un'altra API menzionata è Magenta.js che utilizza modelli pre-addestrati per creare musica e arte nel browser. L'oratore parla anche di PoseNet che può essere utilizzato per stimare pose singole o multiple per tutto il corpo, il viso o solo la mano. Infine, il relatore introduce Brain.js che consente alle reti neurali di funzionare in Javascript su browser e Node.js.

  • 00:20:00 In questa sezione, il relatore discute i limiti dell'utilizzo di JavaScript e del browser per l'addestramento dei modelli di machine learning, suggerendo che non è un ottimo ambiente per questo scopo ed è più adatto per l'esecuzione di modelli preconfezionati o riqualificazione di quelli esistenti. Raccomandano che per modelli di machine learning più solidi e adeguati, Python sia la strada da percorrere e che i programmatori possano imparare abbastanza Python da essere pericolosi e lavorare con Jupyter Notebook per addestrare i loro modelli. Discutono anche dell'utilizzo di servizi come loeb.ai per la formazione su immagini e altri media.

  • 00:25:00 In questa sezione, il relatore discute un'alternativa all'utilizzo di TensorFlow per l'apprendimento automatico, scikit-learn. Il relatore spiega che non tutti i problemi di apprendimento automatico richiedono reti neurali e hanno creato un curriculum su GitHub che non utilizza reti neurali. Mostrano anche come hanno utilizzato scikit-learn per creare un'applicazione di raccomandazione di cucina, alimentata da un runtime ONNX, che consente agli utenti di inserire ingredienti e ricevere suggerimenti per un tipo di cucina che possono realizzare con quegli ingredienti. Il relatore sottolinea l'utilità di scikit-learn per il classico machine learning e lo consiglia come potente strumento senza la pesante soluzione delle reti neurali.

  • 00:30:00 In questa sezione del video, il relatore introduce scikit-learn, un framework di apprendimento automatico open source che fornisce esempi e documentazione per attività di apprendimento automatico di base come classificazione, regressione e clustering. Spiegano che scikit-learn è un framework popolare tra i data scientist ed è accessibile a tutti poiché viene fornito in bundle con numpy, scipy e matplotlib. Il relatore discute quindi di Onnx Runtime, un prodotto di Open Neural Network Exchange (Onnx) che ottimizza l'addestramento e l'inferenza definendo un insieme comune di operatori per la creazione di modelli di machine learning e deep learning. Onnx Runtime supporta una varietà di framework, strumenti e runtime e consente agli sviluppatori di intelligenza artificiale di utilizzare il loro framework preferito con il motore di inferenza scelto. Il relatore delinea un tipico flusso di lavoro di machine learning che prevede la pulizia dei dati tramite Python, l'addestramento dei modelli tramite scikit-learn e la conversione dei modelli per l'utilizzo con Onnx Runtime utilizzando la libreria da skl a Onnx.

  • 00:35:00 In questa sezione del video, l'oratore raccoglie dati da Kaggle su diversi tipi di cucine e spiega come pulire e bilanciare i dati. Il set di dati contiene 100 potenziali ingredienti classificati come indiani, tailandesi, coreani, giapponesi o cinesi. Per costruire il modello, il relatore spiega che è necessario scegliere un algoritmo, un classificatore e un risolutore per ottimizzare i risultati. Il set di dati è piccolo, con solo circa 700 punti dati. I dati sono etichettati, il che significa che è possibile utilizzare l'apprendimento supervisionato e il relatore sottolinea l'importanza di comprendere i dati prima di modellarli e pulirli per l'uso nelle applicazioni di apprendimento automatico.

  • 00:40:00 In questa sezione, il relatore discute il processo di esecuzione di un'attività di classificazione di base utilizzando l'apprendimento automatico supervisionato e la scelta di un algoritmo di classificazione multiclasse. Il relatore presenta un cheat sheet per la classificazione multiclasse ed esclude le reti neurali a causa della natura del set di dati e dell'addestramento locale. I due algoritmi di classificazione multiclasse che rimangono sono la regressione logistica e le foreste decisionali. Il relatore sceglie la regressione logistica e opta per uno contro resto per gestire la classificazione multiclasse. Il presentatore spiega quindi l'importanza di scegliere il risolutore corretto e sceglie il risolutore liblineare. Il presentatore addestra il modello utilizzando lr fit e ne verifica l'accuratezza utilizzando una ricetta con coriandolo, cipolle, piselli, patate, pomodori e oli vegetali, riportando un'accuratezza del 71%. Il relatore presenta anche il cheat sheet dell'algoritmo di Scikit-learn per facilitare la selezione di un algoritmo appropriato in base alla quantità di dati e di etichette disponibili.

  • 00:45:00 In questa sezione, il relatore discute l'importanza di scegliere il giusto algoritmo di classificazione quando si costruisce un modello di machine learning. Dimostrano come hanno sperimentato diversi classificatori e risolutori per vedere quale ha dato la migliore accuratezza. Dopo aver scelto il Support Vector Classifier (SVC), hanno ricostruito il modello e ne hanno testato l'accuratezza. Una volta soddisfatti dell'accuratezza del modello, lo hanno convertito in un file Onyx e hanno utilizzato il runtime Onyx per creare un'applicazione web. Il relatore spiega come hanno creato una semplice applicazione web con una serie di caselle di controllo per fornire i dati degli ingredienti a un modello importato e hanno utilizzato una funzione asincrona per avviare l'inferenza. Hanno quindi dimostrato l'app Web e verificato ciò che suggeriva il modello.

  • 00:50:00 Questa sezione del video mostra come creare un motore di consigli utilizzando modelli di machine learning. Inserendo un elenco di ingredienti, il modello suggerisce che tipo di cucina si potrebbe creare. Inoltre, il relatore invita gli spettatori a saperne di più sull'apprendimento automatico attraverso le risorse online di Microsoft che offrono contenuti gratuiti su vari argomenti tra cui clustering, regressione, classificazione, apprendimento per rinforzo, elaborazione del linguaggio naturale e applicazioni di serie temporali. Il relatore incoraggia gli spettatori a porre domande ea interagire con i contenuti del sito web mycommworld.com.

  • 00:55:00 In questa sezione, viene posta la domanda se Onnx Runtime è un buon strumento per i principianti. La risposta è sì, poiché uno dei relatori è uno sviluppatore web autodidatta che crede che chiunque possa imparare qualsiasi cosa se si impegna abbastanza. Pertanto, Onnx Runtime è adatto ai principianti come parte del loro curriculum o a chiunque desideri saperne di più sull'apprendimento automatico.
 

Porta la potenza di ONNX in Spark come mai prima d'ora



Porta la potenza di ONNX in Spark come mai prima d'ora

In questo video, Shivan Wang di Huawei spiega come portare la potenza di ONNX in Spark per l'inferenza. Discute le sfide nella distribuzione dei modelli DL su Spark e come la comunità Spark ha avviato una proposta chiamata Spip per semplificare il processo. Il relatore discute anche del processore AI di Huawei, Ascent e dell'ecosistema Ascent AI che include più modelli di processore Ascent e hardware Atlas. Suggerisce di aggiungere Con come nuovo provider di esecuzione nel prossimo runtime per utilizzare direttamente i modelli ONNX sull'hardware Ascent, senza la necessità della traduzione del modello. Infine, afferma che il codice POC per portare la potenza di ONNX su Spark è quasi completo e invita gli utenti interessati a lasciare un messaggio per discutere e potenzialmente fornire risorse a scopo di test.

  • 00:00:00 In questa sezione, Shivan Wang di Huawei discute su come portare il potere di Onyx su Spark per l'inferenza. Spiega che l'interfaccia di inferenza del frame di dati ben definita è molto amichevole per i data engineer, che possono facilmente caricare i dati e completare l'ingegnerizzazione delle funzionalità. Tuttavia, esistono delle lacune tra i framework AI e i pre-campioni interni, che rendono difficile l'implementazione dei modelli DL su Spark. Per semplificare il processo, la comunità di Spark ha avviato una discussione su una proposta chiamata Spip, che fornirà una semplice API per far sì che il processo di Spark e l'IA influenzino la piccola cella. Infine, eseguendo l'inferenza di Onyx nell'esecutore Spark, gli utenti possono facilmente completare l'influenza di Onyx sui Big Data con l'aiuto della piattaforma di inferenza di Onyx.

  • 00:05:00 In questa sezione, il relatore discute il processore AI di Huawei chiamato Ascent e l'ecosistema Ascent AI, che include più modelli di processore Ascent e hardware Atlas. Il livello software dell'ecosistema Ascent si chiama Cam e fornisce API per aiutare gli sviluppatori a creare rapidamente applicazioni AI sotto servizi basati sulla piattaforma Ascent. Per eseguire un modello ONNX su altro hardware, l'utente deve prima utilizzare uno strumento di traduzione del modello fornito da Con per tradurre il modello da ONNX ad Ascent. Tuttavia, il relatore suggerisce che una soluzione migliore consiste nell'aggiungere Con come nuovo provider di esecuzione nel prossimo runtime, in modo che gli utenti possano utilizzare direttamente i modelli ONNX sull'hardware Ascent, senza la necessità di tradurre il modello. Hanno in programma di terminare tutto il supporto degli operatori ONNX entro la fine di quest'anno e garantire che tutti i modelli nel modello ONNX Zoo funzionino bene su Ascent, seguito da un ulteriore sviluppo il prossimo anno.

  • 00:10:00 In questa sezione, il relatore afferma che il codice POC per portare la potenza di ONNX in Spark è quasi completo e che le operazioni di base come l'operazione di aggiunta possono essere eseguite correttamente. Invitano inoltre gli utenti interessati a lasciare un messaggio per discutere e potenzialmente fornire risorse a scopo di test. La sezione si conclude ringraziando gli spettatori per la visione.
 

Builders Build #3 - Da Colab alla produzione con ONNX



Builders Build #3 - Da Colab alla produzione con ONNX

Il video illustra il processo di distribuzione di un progetto da Colab alla produzione utilizzando ONNX. Il relatore copre vari aspetti come la pre-elaborazione dei segnali, la modifica del codice per la distribuzione, la creazione di un gestore su AWS Lambda, l'accettazione di input audio su un sito Web, il caricamento di una funzione su S3 e la distribuzione di dipendenze per ONNX. Nonostante incontri alcune difficoltà, l'oratore distribuisce con successo il proprio modello con AWS e suggerisce di poter utilizzare un oggetto file base64 di caricamento del browser o morsi di lettura di file audio per i passaggi futuri.

Inoltre, il video mostra l'uso del modello SimCLR per l'apprendimento contrastivo in audio, costruendo un catalogo di brani inserendoli nel modello e addestrandolo con PyTorch per ottenere zero perdita e richiamo a k=1. Il relatore discute le sfide dell'utilizzo di PyTorch in produzione e propone ONNX come soluzione. Il video mostra come esportare e caricare il modello PyTorch in formato ONNX ed eseguire l'inferenza. Mostra inoltre come elaborare i file audio utilizzando le librerie Torch Audio e Numpy e risolve i problemi durante l'impostazione di un modello PyTorch per la distribuzione. Il video offre approfondimenti su come spostare i modelli dallo sviluppo nei notebook Colab agli ambienti di produzione.

  • 00:00:00 In questa sezione, il relatore discute un semplice framework per l'apprendimento contrastivo della rappresentazione visiva utilizzando il modello SimCLR, che prevede il campionamento di due trasformazioni casuali da un insieme di diverse trasformazioni applicate a un'immagine, risultando in due immagini diverse (x tilde i e x tilde j), che vengono poi passati in un codificatore (resnet 50) per dare due vettori (hi e hj) passati a una funzione di proiezione (MLP) per restituire due proiezioni (zi e zj). L'obiettivo è massimizzare la somiglianza del coseno delle due proiezioni utilizzando una perdita di contrasto per apprendere f e g in modo che l'output delle due proiezioni del modello sia molto vicino tra loro. L'oratore applica questa struttura all'audio, dove l'input non è un'immagine ma un segnale trasformato in uno spettrogramma, e utilizza un filtro passa-basso per modificare la velocità di riproduzione come una delle diverse trasformazioni.

  • 00:05:00 In questa sezione, il relatore discute l'implementazione della perdita NT_Xent utilizzata per il modello, che è una perdita di entropia incrociata che coinvolge una coppia di positivi e la somma di coppie negative. Parlano anche di imbrogliare un po' durante la valutazione utilizzando gli stessi dati di test dei dati di addestramento e utilizzando il richiamo in k come metrica. Infine, menzionano di aver trovato un'implementazione della funzione di perdita su un sito web chiamato lightning e che ha funzionato bene quando è stata testata su dati fittizi.

  • 00:10:00 In questa sezione, il relatore spiega come hanno costruito un catalogo di canzoni inserendole nel modello per ottenere una serie di vettori che rappresentano ogni canzone, che sono stati poi salvati con i loro titoli, segnali audio e rappresentazioni indice. Hanno quindi calcolato le somiglianze prendendo il prodotto scalare delle caratteristiche e dell'indice del catalogo, normalizzato i vettori e calcolato il richiamo a k per determinare le migliori corrispondenze. Hanno utilizzato un normale ciclo di addestramento in PyTorch e hanno aggiunto l'ottimizzatore LARS, che ha aiutato il modello a convergere a zero perdite e ottenere il richiamo a k uguale a uno, il che significa che prevedeva costantemente la canzone corretta. Il relatore discute quindi la sfida dell'utilizzo di PyTorch in produzione e presenta una soluzione che utilizza ONNX, un formato che consente una perfetta integrazione con altri framework e la distribuzione su diversi dispositivi.

  • 00:15:00 In questa sezione, il relatore discute l'uso di ONNX, un framework leggero per l'inferenza che consente di importare modelli da altri framework come PyTorch e TensorFlow per l'hosting nel cloud. Il relatore intende creare una funzione di gestione Python che sfrutterà ONNX per eseguire l'inferenza sui dati audio, ottenere lo spettrogramma dall'audio, eseguire il modello sullo spettrogramma e restituire un oggetto JSON con previsioni. Il relatore osserva che per utilizzare ONNX, il modello deve essere salvato come estensione di file .onnx e spiega il processo per esportare il modello da PyTorch a ONNX.

  • 00:20:00 In questa sezione, il relatore spiega come esportare un modello da PyTorch al formato ONNX utilizzando le funzioni torch.one e x.export. L'input fittizio consente al formato ONNX di comprendere la forma prevista del file di input e i nomi di output e input vengono specificati utilizzando un dizionario o un oggetto JSON. Il relatore fornisce un esempio di esportazione di un modello denominato simclr con il timestamp corrente, utilizza i parametri di esportazione per memorizzare i pesi dei parametri del treno all'interno del file del modello e mostra come aggiungere una funzione lambda per recuperare il timestamp del modello.

  • 00:25:00 inizia una nuova sezione in cui il creatore del video esplora come caricare ed eseguire l'inferenza su un modello utilizzando ONNX. Discutono della creazione di una sessione di inferenza e del caricamento del modello da un percorso del modello. Il creatore prevede di incorporare il modello in un'API, ma non è sicuro di come ottenere l'audio nel gestore. Considerano l'utilizzo di una cosa base 64 e creano un nuovo file per testarlo. Passano quindi alla discussione su come eseguire l'inferenza senza caricare un modello e decidono invece di concentrarsi su quello.

  • 00:30:00 In questa sezione, l'oratore discute la modifica del codice per utilizzare l'audio della torcia invece di utilizzare un array numpy. L'oratore scopre di poter utilizzare l'audio della torcia e lo installa per andare avanti. Quindi discutono della modifica dei nomi di input e output e chiamano l'output "proiezione" per fare la somiglianza del coseno rispetto alla loro libreria. La libreria è configurata come un oggetto JSON con una matrice di titoli, una matrice di forme d'onda e una matrice di proiezioni che l'oratore intende utilizzare nei propri calcoli di somiglianza del coseno.

  • 00:35:00 In questa sezione, l'oratore scrive il codice e spiega il processo ad alta voce. Scrivono una sceneggiatura per ordinare un elenco di brani in una libreria musicale, discutendo varie tecniche come moltiplicazione di matrici, somiglianze e algoritmi di ordinamento lungo il percorso. L'oratore carica anche una libreria JSON e la utilizza nello script. Il video fa parte di una serie sulla creazione di software dalla collaborazione alla produzione utilizzando il framework ONNX.

  • 00:40:00 In questa sezione, il relatore mostra come utilizzare ONNX per produrre e salvare un catalogo in formato JSON. Il catalogo viene creato da matrici e il relatore controlla le forme prima di eseguire il dump del catalogo come file JSON utilizzando la funzione `dump()`. L'errore risultante viene risolto modificando il "catalogo" in una copia della "libreria". Il presentatore quindi converte gli array in elenchi utilizzando il metodo `tolist()` e scarica il file JSON. Infine, il presentatore mostra come caricare il file JSON salvato utilizzando la funzione `load()`.

  • 00:45:00 In questa sezione, il relatore discute il loro approccio all'elaborazione di file audio dai percorsi dei file utilizzando le librerie Torch Audio e Numpy in Python. Spiegano che hanno scaricato Torch Audio e utilizzeranno il suo metodo di "segnale di preelaborazione" per ricampionare e preelaborare il file audio. Quindi usano la funzione media di Numpy per calcolare la media del segnale elaborato mantenendo le dimensioni, seguite dal riempimento del segnale usando np.pad. Nel complesso, il relatore fornisce una spiegazione chiara e concisa del loro metodo di elaborazione.

  • 00:50:00 In questa sezione del video, l'oratore cerca di ottenere uno spettrogramma di una forma d'onda utilizzando una funzione. Tuttavia, sembrano esserci alcuni problemi con la funzione che non riconosce la frequenza di campionamento target e genera un messaggio di errore. L'oratore tenta di utilizzare una clip di prova per risolvere i problemi e stampa la forma dello spettrogramma, che restituisce un output imprevisto. Non è chiaro cosa stia causando esattamente i problemi, se si tratta di un problema di input o di modello.

  • 00:55:00 In questa sezione, il relatore valuta alcuni dei messaggi di errore che sono apparsi durante il tentativo di impostare un modello PyTorch per la distribuzione e identifica i problemi con le dimensioni del pacchetto Torch e le dipendenze incompatibili. Notano che un file caricato con Torch Audio specifica che necessita di oltre 1 GB di memoria, causando potenzialmente problemi durante l'esecuzione di modelli con input di file di grandi dimensioni. Per risolvere questo problema, suggeriscono invece di caricare i file con librosa e di sostituire Torch Audio durante la conversione di specifiche come la frequenza e il caricamento dei file. Nel complesso, questa sezione si concentra sull'evidenziare alcuni dei problemi che possono sorgere durante la transizione dei modelli dallo sviluppo nei notebook Colab alla distribuzione negli ambienti di produzione.

  • 01:00:00 In questa sezione, il relatore installa Torch e Torch audio per continuare a costruire il progetto, che ha ancora una dimensione ridotta inferiore a 500 megabyte. Usano Librosa e resample per garantire che il segnale ritorni con la frequenza di campionamento originale e una frequenza di campionamento target. Incontrano alcuni errori durante l'esecuzione dello script e si rendono conto che devono mescolare canali diversi per garantire che il risultato non sia strano. Continuano a risolvere i problemi per garantire che il progetto funzioni come previsto.

  • 01:05:00 In questa sezione, l'altoparlante lavora con la pre-elaborazione del segnale e il caricamento di diversi canali. Incontrano un problema in cui il segnale ha un solo canale e devono espanderlo più di una volta. L'oratore usa numpy e squeeze expand dims per risolvere il problema, confermando infine le modifiche.

  • 01:10:00 In questa sezione, l'oratore sta modificando il codice per consentire l'implementazione dell'API REST di SpeakFluent, che è una funzione che gestirà una richiesta e quindi eseguirà l'inferenza. Modificano il gestore per ottenere una richiesta con il file audio e il nome del file, quindi salvano il file in locale. Eseguono l'inferenza utilizzando il runtime ONNX senza Torch, quindi restituiscono la corrispondenza migliore.

  • 01:15:00 In questa sezione, l'oratore discute il gestore python di origine per l'applicazione, che attualmente restituisce una serie di titoli di canzoni e i corrispondenti titoli con la migliore corrispondenza. L'oratore menziona anche future aggiunte al gestore che includeranno la restituzione dell'URI per un bucket S3 e la percentuale di corrispondenza per la migliore corrispondenza. Il relatore ha in programma di fare una pausa e tornerà a creare un gestore effettivo in grado di caricare e distribuire in una funzione AWS Lambda.

  • 01:25:00 In questa sezione del video, il relatore spiega come creare un gestore su AWS Lambda utilizzando uno script e un evento. Il gestore Lambda è progettato per accettare un evento e non una richiesta e riceverà la parte audio del modulo dall'evento. Il presentatore spiega che il processo prevede la creazione di un modulo sul front-end e l'ottenimento dell'ID dall'input audio.

  • 01:30:00 In questa sezione del video, uno sviluppatore discute il processo di accettazione dell'input audio su un sito Web utilizzando Javascript e il caricamento del file su un server per l'elaborazione. Lo sviluppatore spiega che aggiungerà un pulsante di registrazione al sito Web e utilizzerà Javascript per creare un file e caricarlo automaticamente sul server. Discutono quindi di chiamare l'inferenza sul file caricato e di restituire un codice di stato 200 con un corpo utilizzando JSON.dumps. Lo sviluppatore considera anche l'utilizzo della codifica base64 dell'audio invece di un file per una maggiore efficienza. Esplorano il processo di esecuzione dell'inferenza ONNX con Python in AWS utilizzando il runtime Lambda.

  • 01:35:00 In questa sezione, il relatore discute il processo di caricamento di una funzione su S3 e la creazione di una nuova funzione da zero per il progetto denominato Diva. L'oratore esprime fastidio per il processo, ma procede alla creazione di una nuova funzione utilizzando Python 3.9, discutendo sulla differenza in ARM e considerando anche il caricamento di file direttamente nella funzione.

  • 01:40:00 In questa sezione, il relatore esplora la dashboard di Cloud Functions e dimostra come caricare un file zip, modificare i formati degli eventi in JSON e creare un nuovo evento. Discutono anche della necessità di configurazioni aggiuntive per la memoria e le variabili di ambiente. L'oratore tenta quindi di aggiungere una registrazione con audio Base64, ma riscontra un problema con le opzioni disponibili.

  • 01:45:00 In questa sezione, l'oratore sembra copiare e incollare un grosso file JSON e salvarlo come pacchetto di distribuzione AWS Lambda. Menzionano di voler utilizzare un metodo diverso, ma alla fine lo rimuovono e decidono di utilizzare invece il gestore Lambda. Tuttavia, devono installare alcune cose e cercare di trovare un modo per caricare il pacchetto su AWS. Discutono anche delle funzioni di esportazione.

  • 01:50:00 In questa sezione, il relatore discute i passaggi per compilare e distribuire le dipendenze necessarie per ONNX, un progetto di gestione dei modelli open source. Spiegano che è importante compilare in un ambiente simile a Lambda per evitare problemi di compatibilità e suggeriscono di trovare la cartella di runtime ONNX e di copiarla nel pacchetto di distribuzione. Sebbene questo processo possa essere considerato "cattivo", l'oratore spiega che è necessario garantire che il codice funzioni correttamente. Quindi elencano le dipendenze necessarie, tra cui librosa, scipy e numpy, e discutono la dimensione del pacchetto di distribuzione, che può arrivare fino a 200 megabyte.

  • 01:55:00 In questa sezione, il relatore illustra i passaggi necessari per distribuire il proprio modello con AWS. Devono creare un gestore Lambda leggero, capire come distribuirlo con AWS limitout e decidere se archiviarlo in S3 poiché è più grande di 50 megabyte. Il passaggio successivo consiste nell'aggiornare la funzione di elaborazione per prendere un oggetto audio base64 invece di un file e l'oratore considera l'utilizzo di un oggetto file base64 di caricamento del browser o morsi di lettura di file audio per raggiungere questo obiettivo. Concludono affermando che pensano di poterlo fare.
 

Unendo la potenza di Optimum, OpenVINO™, ONNX Runtime e Azure



Unendo la potenza di Optimum, OpenVINO™, ONNX Runtime e Azure

Il video mostra la combinazione di Optimum, OpenVINO, ONNX Runtime e Azure per semplificare il flusso di lavoro dello sviluppatore e migliorare la precisione e la velocità dei loro modelli. I relatori dimostrano l'uso di funzioni helper, ONNX Runtime e OpenVINO Execution Provider per ottimizzare i modelli di deep learning. Mostrano anche come ottimizzare i modelli Hugging Face usando la quantizzazione nel Neural Network Compression Framework e illustrano il processo di training e inferenza usando Azure ML, Optimum, ONNX Runtime e OpenVINO. La dimostrazione evidenzia la potenza di questi strumenti nel migliorare le prestazioni dei modelli riducendo al minimo la perdita di accuratezza.

  • 00:00:00 In questa sezione del video, Cassie parla con i rappresentanti di Intel del toolkit OpenVINO e del runtime Onyx. Il toolkit OpenVINO utilizza tecniche di ottimizzazione avanzate appositamente progettate per l'hardware Intel per migliorare le prestazioni dei modelli di deep learning. Con la libreria di runtime Onyx e una semplice modifica alla riga di codice della sessione istantanea, gli sviluppatori possono utilizzare il provider di esecuzione OpenVINO di Intel per accelerare l'inferenza dei modelli Onyx. La demo mostrata nel video mostra le prestazioni accelerate di YOLO V7, un popolare modello di deep learning, su una CPU Intel.

  • 00:05:00 In questa sezione del video, il relatore discute le varie funzioni di supporto utilizzate nella demo per eseguire la pre-elaborazione, assegnare valori di colore a etichette specifiche e leggere e rielaborare le immagini. La demo utilizza ONNX Runtime per creare una sessione di inferenza ed eseguire l'attività di inferenza e OpenVINO Execution Provider per velocizzare i modelli di deep learning su una CPU Intel. Il processo è semplificato apportando una semplice modifica alla riga di codice, che comporta l'installazione delle librerie ONNX e OpenVINO, l'importazione della libreria ONNX Runtime e l'impostazione del provider OpenVINO. Il relatore fornisce anche una breve panoramica dell'architettura di come il modello ONNX viene convertito in una rappresentazione grafica in memoria e va nel Graph Practitioner per l'interrogazione back-end.

  • 00:10:00 In questa sezione, i relatori discutono su come ottimizzare i modelli di volti che si abbracciano utilizzando la quantizzazione nel Neural Network Compression Framework. Esaminano un esempio di codice che mostra come abilitare la quantizzazione durante l'addestramento utilizzando Optimum Intel e OV Config. Presentano inoltre un flusso di lavoro AI che integra la preparazione dei dati, l'addestramento del modello, l'inferenza, la distribuzione e l'automazione per aiutare sviluppatori e clienti a svolgere attività complesse in modo più efficiente. I relatori dimostrano come usare Azure ML per supportare questi flussi di lavoro per prestazioni migliori.

  • 00:15:00 In questa sezione del video, il relatore discute il processo di formazione e inferenza utilizzando Azure ML, Optimum, ONNX Runtime e OpenVINO. Iniziano discutendo i file e gli script usati per la pipeline di training e come inviare il processo ad Azure ML. Passano quindi a discutere lo script di inferenza e il modo in cui utilizza ONNX Runtime e il provider di esecuzione OpenVINO. Il relatore fornisce dettagli sui risultati del punteggio F1 per la quantizzazione e l'addestramento del modello, dimostrando che c'è stata solo una piccola perdita di accuratezza durante questo processo. Nel complesso, la sezione fornisce una panoramica dettagliata del processo di formazione e inferenza utilizzando queste tecnologie.

  • 00:20:00 In questa sezione, il relatore dimostra come funziona il processo di quantizzazione mostrando il modello originale fp32 e il modello ottimizzato int 8, che è stato visualizzato tramite Netron. Discutono anche di come Azure ML e OpenVINO possono essere sfruttati per migliorare l'accuratezza e le prestazioni durante il processo di formazione e inferenza. Menzionano l'utilizzo di ONNX Runtime per ottimizzare e migliorare ulteriormente le prestazioni e incoraggiano gli spettatori a controllare il codice e il post sul blog per ulteriori informazioni. Nel complesso, la dimostrazione mostra la potenza della combinazione di più strumenti per semplificare il flusso di lavoro dello sviluppatore e migliorare la precisione e la velocità dei loro modelli.
 

Inferenza più rapida dei modelli ONNX | Serie Edge Innovation per sviluppatori | Software Intel



Inferenza più rapida dei modelli ONNX | Serie Edge Innovation per sviluppatori | Software Intel

Il provider di esecuzione OpenVINO per ONNX Runtime è discusso in questo video. È un acceleratore di modelli di machine learning multipiattaforma che consente l'implementazione di modelli di deep learning su una gamma di dispositivi di elaborazione Intel. Utilizzando il toolkit OpenVINO, ottimizzato per l'hardware Intel, e impostando il provider come OpenVINO Execution Provider nel codice, gli sviluppatori possono accelerare l'inferenza dei modelli ONNX con tecniche di ottimizzazione avanzate. Il video sottolinea la semplicità della modifica richiesta per utilizzare gli strumenti discussi.

 

Inferenza del modello più veloce e più leggera con ONNX Runtime dal cloud al client



Inferenza del modello più veloce e più leggera con ONNX Runtime dal cloud al client

In questo video, Emma del gruppo Microsoft Cloud e AI spiega Open Neural Network Exchange (ONNX) e ONNX Runtime, un motore ad alte prestazioni per l'inferenza di modelli ONNX su hardware diverso. Emma discute il significativo miglioramento delle prestazioni e la riduzione delle dimensioni del modello che la quantizzazione ONNX Runtime INT8 può fornire, nonché l'importanza della precisione. Dimostra il flusso di lavoro end-to-end della quantizzazione ONNX Runtime INT8 e presenta i risultati di un modello di base utilizzando la quantizzazione PyTorch. Inoltre, Emma discute la capacità di ONNX Runtime di ottimizzare l'inferenza del modello dal cloud al client e come può raggiungere una dimensione inferiore a 300 kilobyte su entrambe le piattaforme Android e iOS per impostazione predefinita.

  • 00:00:00 In questa sezione, Emma, Senior Program Manager nel team AI Framework presso Microsoft Cloud e AI Group, spiega il ruolo di ONNX e ONNX Runtime nello stack software AI. ONNX, che sta per Open Neural Network Exchange, è un formato standard per rappresentare sia i tradizionali modelli di machine learning sia le reti neurali di deep learning. ONNX Runtime è un motore ad alte prestazioni per l'inferenza di modelli ONNX su hardware diverso. I convertitori ONNX e il runtime ONNX sono le parti principali del flusso di lavoro per rendere operativo un modello ONNX, che può essere attivato da qualsiasi framework utilizzando gli strumenti del convertitore ONNX. Esistono molti framework popolari che supportano ONNX, tra cui PyTorch, TensorFlow e Caffe.

  • 00:05:00 In questa sezione vengono discussi i vantaggi e le funzionalità di ONNX Runtime. ONNX Runtime è un motore di inferenza ad alte prestazioni per i modelli ONNX che offre API per una varietà di linguaggi e accelerazioni hardware per CPU, GPU e VPU. ONNX Runtime è anche aperto ed estensibile, consentendo una facile ottimizzazione e accelerazione dell'inferenza di machine learning. È già stato integrato in più piattaforme interne ed esterne e ha alimentato molti prodotti di punta. Una delle funzionalità più nuove ed entusiasmanti di ONNX Runtime è la quantizzazione INT8 per CPU, che approssima i numeri in virgola mobile con bit inferiori, riducendo le dimensioni della memoria del modello e migliorando le prestazioni. I risultati del benchmark su vari modelli e hardware mostrano aumenti di velocità significativi utilizzando ONNX Runtime.

  • 00:10:00 In questa sezione, il relatore discute il significativo miglioramento delle prestazioni della quantizzazione ONNX Runtime INT8, che può accelerare le prestazioni di inferenza fino a tre volte su una macchina grande e circa il 60% su macchine più piccole, oltre a ridurre il modello dimensione di quasi quattro volte. Il relatore sottolinea inoltre l'importanza dell'accuratezza e fornisce un esempio di come i modelli quantizzati ONNX Runtime possono mantenere un'accuratezza simile a quella dei modelli FP32 su un'attività NLP comune. Il relatore mostra quindi il flusso di lavoro end-to-end della quantizzazione ONNX Runtime INT8, che prevede la conversione di modelli in formato ONNX, l'utilizzo dello strumento di quantizzazione per ottenere un modello INT8 e quindi l'esecuzione di inferenza in ONNX Runtime. Infine, il relatore presenta i risultati di un modello di base utilizzando la quantizzazione PyTorch e valuta le prestazioni utilizzando Tokenize e la funzione di valutazione di Hugging Face.

  • 00:15:00 In questa sezione, i relatori discutono il processo di quantizzazione del runtime ONNX per ottimizzare le prestazioni e le dimensioni del modello. Il processo prevede una fase di ottimizzazione prima della quantizzazione, necessaria solo per i modelli di trasformatore. Una volta ottimizzato, il modello può essere quantizzato in un formato a 8 bit utilizzando l'API di quantizzazione di ONNX Runtime, ottenendo una dimensione del modello molto più piccola. I risultati delle prestazioni e dell'accuratezza mostrano che la quantizzazione ONNX Runtime supera la quantizzazione PyTorch in termini di punteggio F1. Un'altra caratteristica interessante di ONNX Runtime è la capacità di ridurre al minimo le dimensioni del runtime per l'inferenza sul dispositivo su smartphone e dispositivi perimetrali.

  • 00:20:00 In questa sezione viene discussa la capacità del runtime ONNX di ottimizzare l'inferenza del modello dal cloud al client. Due tecniche principali sono abilitate per ONNX Runtime mobile: l'introduzione di un nuovo formato ottimizzato chiamato formato ONNX Runtime e la creazione di ONNX Runtime con operatori necessari solo a modelli predefiniti per ridurre le dimensioni del Runtime. Ciò riduce significativamente le dimensioni del runtime eliminando gli operatori inutilizzati, rendendo più fattibile l'inferenza del proprio dispositivo e soddisfacendo i requisiti di memoria. Per impostazione predefinita, il pacchetto mobile ONNX Runtime di base può raggiungere una dimensione inferiore a 300 kilobyte su entrambe le piattaforme Android e iOS. ONNX Runtime è un progetto open source con tutorial ed esempi disponibili nel suo repository GitHub.
 

Inferenza della CPU del modello di trasformatore veloce T5 con conversione e quantizzazione ONNX



Inferenza della CPU del modello di trasformatore veloce T5 con conversione e quantizzazione ONNX

Convertendo il modello del trasformatore T5 in ONNX e implementando la quantizzazione, è possibile ridurre le dimensioni del modello di 3 volte e aumentare la velocità di inferenza fino a 5 volte. Ciò è particolarmente utile per distribuire un modello di generazione di domande come T5 su una CPU con una latenza inferiore al secondo. Inoltre, l'app Gradio offre un'interfaccia visivamente accattivante per il modello. Viene utilizzato il modello di trasformatore T5 di Huggingface e la libreria FastT5 viene utilizzata per ONNX e quantizzazione. L'implementazione di queste ottimizzazioni può comportare notevoli risparmi sui costi per le distribuzioni di produzione di questi sistemi.

  • 00:00 Introduzione e agenda

  • 01:07 Installa la libreria dei trasformatori da Hugging Face

  • 02:18 Scarica Modella del viso che si abbraccia

  • 02:40 Esempio di generazione di una domanda

  • 04:00 Distribuzione dell'app Gradio nella GUI

  • 08:11 Converti T5 Pytorch in ONNX e quantizza con FastT5

  • 17:22 Memorizza il modello nell'unità

  • 18:30 Avvia l'app Gradio con il nuovo modello

  • 21:55 Episodio futuro e Conclusione
 

Azure AI e ONNX Runtime



Azure AI e ONNX Runtime

Il testo copre vari aspetti dell'apprendimento automatico e della sua implementazione. Discute l'evoluzione della scienza dei dati, le sfide della compatibilità del framework, l'uso di Azure AI e ONNX Runtime per la distribuzione del modello, la creazione di ambienti ML e le limitazioni di ONNX Runtime. Il relatore sottolinea la standardizzazione di ONNX e il suo supporto per più framework, semplificando l'ottimizzazione per hardware diverso. Il video menziona anche l'assenza di un benchmark per le preferenze hardware e la necessità di utilizzare più strumenti per superare i limiti di ONNX.

  • 00:00:00 In questa sezione della trascrizione, il relatore discute l'evoluzione della scienza dei dati e come si è trasformata da una scienza del lavoro di laboratorio a un mondo di interconnessione. Il relatore condivide la sua esperienza di lavoro con i sistemi IoT e come si sono evoluti dall'essere creati manualmente all'utilizzo di servizi cloud. Il relatore sottolinea inoltre l'importanza di poter lavorare in ambienti dove non è consentito l'utilizzo di servizi cloud e come in queste situazioni siano necessarie aziende specializzate. Infine, il relatore affronta le sfide poste dalla necessità di cambiare framework o provider cloud e spiega perché i clienti spesso cambiano provider invece di cambiare framework.

  • 00:05:00 In questa sezione, il relatore parla del problema della compatibilità tra diversi framework di intelligenza artificiale e di come influisce sulle aziende. Con l'esempio di una banca, spiega che se un'azienda avesse costruito il proprio sistema su un framework AI, ma poi arrivasse un nuovo cliente che desidera utilizzare un framework diverso, l'azienda dovrebbe ricostruire completamente il sistema da zero, costando loro sia tempo che denaro. Discute quindi del runtime Onex, che consente alle aziende di convertire i framework e i modelli esistenti in un formato compatibile senza la necessità di una ricostruzione completa. Il relatore menziona anche gli strumenti disponibili per analizzare e ottimizzare questi modelli convertiti.

  • 00:10:00 In questa sezione, il relatore spiega come utilizzare Azure AI e ONNX Runtime per distribuire facilmente modelli di machine learning su diverse piattaforme. Selezionando le opzioni appropriate per la loro piattaforma e lingua, le aziende possono utilizzare il software per caricare le sequenze 0 e 1 della loro rete neurale e utilizzare la piattaforma e la lingua di loro scelta per esportare il sistema per una facile implementazione. La sessione illustra anche come Onex può essere utilizzato per ottimizzare la formazione durante tutto il processo di sviluppo, il che porta a risultati più rapidi e accurati. Il relatore introduce anche il sistema di ottimizzazione automatica di Intel serrandello per GPU e CPU, che rende lo sviluppo del modello ancora più snello.

  • 00:15:00 In questa sezione, il relatore discute la creazione del proprio ambiente ML e lo sviluppo di un classificatore per le specie vegetali basato sulla lunghezza e la larghezza di sepali e petali. Il relatore osserva che la creazione di un ambiente ML comportava l'acquisto di cluster di server e la configurazione manuale di tutto, ma ora possono creare il proprio ambiente ML e avviare il proprio studio senza la necessità di hardware. Il loro ambiente ML include una normale macchina virtuale e ONNX, che viene utilizzato per salvare i modelli TensorFlow. Il relatore mostra quindi la creazione di una semplice rete neurale per classificare le specie vegetali in base ai parametri forniti.

  • 00:20:00 In questa sezione, il relatore mostra come caricare un modello ONNX salvato ed eseguire una previsione su di esso. Importa il framework Tensorflow, carica il modello ONNX e assegna un nome di input univoco ai valori di input. Quindi crea un campo di collegamento per generare valori di input casuali per eseguire l'espressione ONNX. Infine, esegue la chiamata e ottiene la categoria del valore di output ottenuto dalla previsione. Il modello ONNX creato in precedenza è un singolo file che non necessita di documentazione, facilitando così l'utilizzo da parte degli sviluppatori.

  • 00:25:00 In questa sezione, il relatore spiega come Azure AI e ONNX Runtime semplifichino l'integrazione dei modelli di machine learning in varie applicazioni. Con Azure AI, il cliente deve solo creare il proprio modello nella lingua preferita, quindi può usare Azure AI per caricare il modello e creare i dati di input necessari per richiamare il modello. ONNX Runtime può quindi essere utilizzato per integrare il modello in diverse applicazioni come Xamarin, Android o Mac, indipendentemente dalla piattaforma sottostante. Ciò consente di integrare facilmente i modelli di machine learning su vari dispositivi e piattaforme. Il relatore osserva inoltre che ONNX Runtime si ottimizza per vari processori, inclusi quelli per dispositivi mobili.

  • 00:30:00 In questa sezione, il relatore spiega che ONNX è diventato lo standard de facto per i modelli di machine learning, poiché supporta tutti i principali framework ed è supportato da molte aziende. Questa standardizzazione consente un'ottimizzazione più semplice per hardware diverso, senza la necessità di ottimizzazione manuale come in passato. Inoltre, ONNX non è limitato alle reti neurali e può essere utilizzato anche per altri algoritmi. Il relatore osserva inoltre che ONNX supporta le stesse funzioni e operazioni matematiche su piattaforme diverse, consentendo una distribuzione senza interruzioni su hardware e piattaforme diversi purché gli opset supportati corrispondano.

  • 00:35:00 In questa sezione, il relatore discute i limiti del runtime ONNX in termini di prestazioni. Sebbene ONNX sia un ottimo strumento che funziona bene per casi d'uso generici, non utilizza l'hardware al massimo delle sue potenzialità. È qui che altri strumenti oltre a ONNX come pytorch possono essere più utili. Tuttavia, se l'obiettivo di una persona è l'esportazione del modello, ONNX può sostituire completamente altri strumenti. Inoltre, il relatore spiega che ONNX non gestisce la comunicazione da macchina a macchina come il rendering multi-macchina. Il relatore suggerisce di utilizzare altri strumenti insieme a ONNX per superare queste limitazioni.

  • 00:40:00 In questa sezione, l'oratore discute l'assenza di un benchmark per le preferenze hardware e sottolinea che la maggior parte dei benchmark può essere trovata sul sito Web del produttore dell'hardware. Notano inoltre che molte aziende ora scrivono per l'hardware, piuttosto che il contrario. Il relatore cita poi le piattaforme più utilizzate per l'accelerazione, tra cui Core ml, ONNX Runtime e RT. Menzionano come viene accelerata la fase di formazione e, una volta completata, è più facile vendere ai clienti. I relatori suggeriscono che ci sono pochi cambiamenti imminenti nei prossimi anni e che xeon e programmi simili rimarranno importanti.
 

Distribuisci Machine Learning ovunque con ONNX. Python SKLearn Model in esecuzione in una funzione ml.net di Azure



Distribuisci Machine Learning ovunque con ONNX. Python SKLearn Model in esecuzione in una funzione ml.net di Azure

Il video mostra come il runtime ONNX semplifica e standardizza l'implementazione di modelli di machine learning costruiti in diversi linguaggi e framework. Illustra il processo di creazione del pacchetto di un modello Python scikit-learn in un modello ONNX e la sua distribuzione in una funzione Azure ML .NET. Il video evidenzia che la funzione di Azure può essere facilmente attivata tramite una richiesta HTTP POST, semplificando la chiamata da qualsiasi applicazione o sito Web e, indipendentemente dal linguaggio utilizzato per creare il modello di machine learning, può essere convertita in un modello ONNX e distribuito tramite ML.NET per essere eseguito in modo coerente.

  • 00:00:00 In questa sezione, il video introduce il runtime ONNX e come semplifica il processo di implementazione dei modelli di machine learning costruiti in vari linguaggi e framework. Il runtime ONNX consente di incapsulare i modelli in un modo che può essere facilmente distribuito in un ambiente diverso. Sostituisce il processo di decapaggio e fornisce un runtime standard che funziona in Python, R, .NET, Java e altri linguaggi. Il video prosegue dimostrando un esempio end-to-end di creazione di un semplice modello in Python, impacchettamento in un modello ONNX ed esecuzione in una funzione ML .NET. Il codice utilizzato in questo esempio è disponibile sul GitHub pubblico del canale YouTube di Advancing LLS.

  • 00:05:00 In questa sezione, il relatore mostra come distribuire un modello di machine learning usando ONNX in una funzione di Azure. La demo inizia mostrando un modello Python di base che utilizza scikit-learn per addestrare un modello di regressione lineare utilizzando i dati sui prezzi delle case di San Francisco. Il modello viene addestrato utilizzando un set di addestramento costituito da valori numerici e categoriali e, una volta addestrato il modello, viene selezionato per essere reso persistente e distribuito in un contenitore. Infine, il relatore testa il modello chiamando predict sul training set e recupera alcuni valori. Questo processo può essere utilizzato per distribuire ed eseguire modelli di machine learning ovunque utilizzando ONNX.

  • 00:10:00 In questa sezione del video, il relatore configura il modello per l'esecuzione in ONNX in modo che Python non sia necessario per utilizzarlo. Viene specificato il numero di funzionalità che entrano nel training del modello e il modello ONNX viene inizializzato per sapere cosa aspettarsi. L'input iniziale è denominato feature input, necessario per il punteggio. Per valutare il modello, viene creata una sessione e una riga di codice è responsabile della previsione in base ai dati di addestramento. Le previsioni vengono quindi stampate.

  • 00:15:00 In questa sezione, il relatore discute l'esecuzione di un modello Python in ONNX e come può essere eseguito in modo coerente in Python indipendentemente dai pacchetti utilizzati. Il relatore mostra come convertire un modello Python in ONNX ed eseguirlo in una funzione di Azure usando un POST HTTP con un oggetto JSON. La funzione estrae dati importanti come l'anno, la superficie abitabile maggiore e la condizione di vendita e li trasmette al modello, che utilizza ONNX per valutare i dati e restituire il risultato. L'oratore spiega che la funzione di Azure è un trigger HTTP standard con un'API REST sul retro, che semplifica la chiamata da qualsiasi applicazione o sito Web.

  • 00:20:00 In questa sezione, l'oratore spiega i passaggi necessari per creare una variabile chiamata input e utilizzarla per modellare il tensore di input in modo che sia accettabile per l'esecuzione della sessione. La sessione viene avviata e avviata per eseguire la nuova sessione sul percorso e segnare con l'input designato. Il risultato del punteggio viene quindi estratto e impacchettato come oggetto risultato e passato nuovamente alla funzione. Il relatore mostra come testare il modello distribuito in Postman passando attraverso i parametri del modello oggetto JSON non elaborati, come l'anno di costruzione e l'area abitativa, per ottenere un punteggio. Il vantaggio della distribuzione di modelli di machine learning tramite ONNX e ML.NET è che non importa in quale lingua le persone costruiscono i loro modelli, purché possano essere convertiti in un modello ONNX, quindi possono essere distribuiti ed eseguiti in modo coerente.
 

Distribuisci modelli di machine learning (TensorFlow/Caffe2/ONNX): facile e veloce



Distribuisci modelli di machine learning (TensorFlow/Caffe2/ONNX): facile e veloce

Il video dimostra come l'apprendimento del trasferimento può essere utilizzato per classificare le immagini e come integrare il modello di classificazione delle immagini in un'applicazione dell'utente finale utilizzando Python e TensorFlow. Il presentatore utilizza un esempio di applicazione per il commercio di automobili per illustrare le sfide affrontate quando le foto non vengono caricate dalla prospettiva richiesta e le etichette devono essere controllate manualmente, portando a noia e inefficienza. Spiega come superare queste sfide addestrando una rete neurale esistente a riconoscere le prospettive fotografiche utilizzando la tecnica del transfer learning. Quindi mostra come testare e distribuire il modello nel cloud Oracle utilizzando il progetto open source GraphPipe. Infine, il relatore sottolinea l'importanza di portare i modelli di machine learning dalla fase di laboratorio alla fase di produzione.

  • 00:00:00 In questa sezione, Jeroen Kloosterman spiega come utilizzare l'apprendimento automatico per la classificazione delle immagini e come integrare il modello di classificazione delle immagini in un'applicazione per l'utente finale. Sottolinea le sfide affrontate da un'applicazione di compravendita di automobili in cui le foto non vengono caricate dalla prospettiva richiesta e le etichette devono essere controllate manualmente, causando noia e inefficienza. Per superare queste sfide, Jeroen utilizza la tecnica del transfer learning addestrando una rete neurale esistente a riconoscere le prospettive fotografiche utilizzando Python e Tensorflow. Ripercorrendo solo gli ultimi strati della rete neurale per riconoscere le diverse prospettive, Jeroen Kloosterman addestra con successo la rete a classificare automaticamente le foto.

  • 00:05:00 In questa sezione Jeroen mostra come testare il modello, che è stato addestrato nella sezione precedente, e quindi distribuirlo nel cloud Oracle utilizzando il progetto open source GraphPipe. Per iniziare, viene chiamato lo script Python di riaddestramento, che utilizza TensorFlow per riaddestrare il modello. Dopo aver configurato l'ambiente nel cloud Oracle, il relatore scrive un client di esempio utilizzando Python per chiamare il classificatore di immagini. La classificazione restituita dal modello può quindi essere utilizzata dal front-end per mostrare un messaggio all'utente finale dell'app per la vendita di auto. Infine, il relatore sottolinea l'importanza di portare i modelli di machine learning dalla fase di laboratorio alla fase di produzione.