Perché le aziende stanno passando da TensorFlow a PyTorch

Una sottocategoria dell'apprendimento automatico, l'apprendimento profondo utilizza reti neurali a più livelli per automatizzare attività della macchina storicamente difficili, come il riconoscimento delle immagini, l'elaborazione del linguaggio naturale (PNL) e la traduzione automatica su larga scala.

TensorFlow, emerso da Google nel 2015, è stato il framework di deep learning open source più popolare sia per la ricerca che per il business. Ma PyTorch, che è emerso da Facebook nel 2016, ha rapidamente recuperato terreno, grazie ai miglioramenti guidati dalla comunità in termini di facilità d'uso e distribuzione per una gamma sempre più ampia di casi d'uso.

PyTorch sta vedendo un'adozione particolarmente forte nell'industria automobilistica, dove può essere applicato a sistemi pilota di guida autonoma come Tesla e Lyft Livello 5. Il framework viene utilizzato anche per la classificazione dei contenuti e la raccomandazione nelle società di media e per aiutare a supportare i robot nelle applicazioni industriali.

Joe Spisak, responsabile del prodotto per l'intelligenza artificiale presso Facebook AI, ha dichiarato che sebbene sia stato soddisfatto dell'aumento dell'adozione aziendale di PyTorch, c'è ancora molto lavoro da fare per ottenere un'adozione più ampia da parte del settore.

"La prossima ondata di adozione arriverà con l'abilitazione della gestione del ciclo di vita, MLOps e pipeline Kubeflow e la comunità circostante", ha affermato. "Per coloro all'inizio del viaggio, gli strumenti sono piuttosto buoni, utilizzando servizi gestiti e alcuni open source con qualcosa come SageMaker in AWS o Azure ML per iniziare".

Disney: identificare i volti animati nei film

Dal 2012, ingegneri e data scientist del gigante dei media Disney hanno costruito quello che l'azienda chiama Content Genome, un grafico della conoscenza che riunisce i metadati dei contenuti per alimentare le applicazioni di ricerca e personalizzazione basate sull'apprendimento automatico attraverso l'enorme libreria di contenuti Disney.

“Questi metadati migliorano gli strumenti utilizzati dagli storyteller Disney per produrre contenuti; ispirare la creatività iterativa nella narrazione; migliorare l'esperienza degli utenti attraverso motori di raccomandazione, navigazione digitale e scoperta di contenuti; e abilitare la business intelligence ", hanno scritto gli sviluppatori Disney Miquel Àngel Farré, Anthony Accardo, Marc Junyent, Monica Alfaro e Cesc Guitart in un post sul blog a luglio.

Prima che ciò potesse accadere, Disney ha dovuto investire in un vasto progetto di annotazione dei contenuti, rivolgendosi ai suoi data scientist per addestrare una pipeline di tagging automatizzato utilizzando modelli di deep learning per il riconoscimento delle immagini per identificare enormi quantità di immagini di persone, personaggi e luoghi.

Gli ingegneri Disney hanno iniziato sperimentando vari framework, tra cui TensorFlow, ma hanno deciso di consolidarsi attorno a PyTorch nel 2019.Gli ingegneri sono passati da un descrittore di caratteristiche dell'istogramma convenzionale dei gradienti orientati (HOG) e dal popolare modello SVM (Support Vector Machines) a una versione di l'architettura di rilevamento degli oggetti ha soprannominato regioni con reti neurali convoluzionali (R-CNN). Quest'ultimo è stato più favorevole alla gestione delle combinazioni di live action, animazioni ed effetti visivi comuni nei contenuti Disney.

"È difficile definire cosa sia un volto in un cartone animato, quindi siamo passati a metodi di apprendimento profondo utilizzando un rilevatore di oggetti e abbiamo utilizzato il transfer learning", ha spiegato l'ingegnere di ricerca Disney Monica Alfaro. Dopo che sono state elaborate solo poche migliaia di volti, il nuovo modello identificava già ampiamente i volti in tutti e tre i casi d'uso. È entrato in produzione nel gennaio 2020.

"Stiamo usando un solo modello ora per i tre tipi di volti ed è fantastico correre per un film Marvel come Avengers, dove deve riconoscere sia Iron Man che Tony Stark, o qualsiasi personaggio che indossa una maschera", ha detto.

Poiché gli ingegneri hanno a che fare con volumi così elevati di dati video per addestrare ed eseguire il modello in parallelo, volevano anche funzionare su GPU costose e ad alte prestazioni quando passavano alla produzione.

Il passaggio dalle CPU ha consentito agli ingegneri di riqualificare e aggiornare i modelli più rapidamente. Ha anche accelerato la distribuzione dei risultati a vari gruppi in tutta la Disney, riducendo i tempi di elaborazione da circa un'ora per un lungometraggio, fino a ottenere risultati tra i cinque ei 10 minuti oggi.

"Il rilevatore di oggetti TensorFlow ha portato problemi di memoria in produzione ed è stato difficile da aggiornare, mentre PyTorch aveva lo stesso rilevatore di oggetti e Faster-RCNN, quindi abbiamo iniziato a utilizzare PyTorch per tutto", ha detto Alfaro.

Il passaggio da un framework all'altro è stato sorprendentemente semplice anche per il team di ingegneri. "Il passaggio [a PyTorch] è stato facile perché è tutto integrato, si collegano solo alcune funzioni e si può iniziare rapidamente, quindi non è una curva di apprendimento ripida", ha detto Alfaro.

Quando hanno incontrato problemi o colli di bottiglia, la vivace comunità di PyTorch era a disposizione per aiutare.

Tecnologia Blue River: robot che uccidono le erbacce

Blue River Technology ha progettato un robot che utilizza una combinazione inebriante di wayfinding digitale, telecamere integrate e visione artificiale per spruzzare erbacce con erbicida lasciando le colture da sole quasi in tempo reale, aiutando gli agricoltori a conservare in modo più efficiente erbicidi costosi e potenzialmente dannosi per l'ambiente.

L'azienda con sede a Sunnyvale, in California, ha catturato l'attenzione del produttore di attrezzature pesanti John Deere nel 2017, quando è stata acquisita per $ 305 milioni, con l'obiettivo di integrare la tecnologia nelle sue attrezzature agricole.

I ricercatori di Blue River hanno sperimentato vari framework di apprendimento profondo mentre cercavano di addestrare modelli di visione artificiale per riconoscere la differenza tra erbacce e colture, una sfida enorme quando si ha a che fare con piante di cotone, che hanno una sfortunata somiglianza con le erbacce.

Sono stati chiamati agronomi altamente qualificati per condurre attività di etichettatura manuale delle immagini e addestrare una rete neurale convoluzionale (CNN) utilizzando PyTorch "per analizzare ogni fotogramma e produrre una mappa precisa al pixel di dove si trovano i raccolti e le erbacce", Chris Padwick, direttore del computer visione e apprendimento automatico presso Blue River Technology, ha scritto in un post sul blog in agosto.

"Come altre società, abbiamo provato Caffe, TensorFlow e poi PyTorch", ha detto Padwick. “Per noi funziona praticamente fuori dagli schemi. Non abbiamo ricevuto segnalazioni di bug o bug di blocco. Sul calcolo distribuito brilla davvero ed è più facile da usare di TensorFlow, che per i parallelismi dei dati era piuttosto complicato.

Padwick afferma che la popolarità e la semplicità del framework PyTorch gli danno un vantaggio quando si tratta di aumentare rapidamente le nuove assunzioni. Detto questo, Padwick sogna un mondo in cui “le persone si sviluppano in qualunque cosa si sentano a proprio agio. Alcuni come Apache MXNet o Darknet o Caffe per la ricerca, ma in produzione deve essere in un'unica lingua e PyTorch ha tutto ciò di cui abbiamo bisogno per avere successo ".

Datarock: analisi delle immagini basata su cloud per l'industria mineraria

Fondata da un gruppo di geoscienziati, la startup australiana Datarock sta applicando la tecnologia di visione artificiale all'industria mineraria. Più specificamente, i suoi modelli di deep learning stanno aiutando i geologi ad analizzare le immagini dei campioni di carotaggio più velocemente di prima.

In genere, un geologo analizza questi campioni centimetro per centimetro per valutare la mineralogia e la struttura, mentre gli ingegneri cercano caratteristiche fisiche come faglie, fratture e qualità della roccia. Questo processo è lento e soggetto a errori umani.

"Un computer può vedere le rocce come farebbe un ingegnere", ha detto Brenton Crawford, COO di Datarock. "Se puoi vederlo nell'immagine, possiamo addestrare un modello ad analizzarlo così come un essere umano."

Simile a Blue River, Datarock utilizza una variante del modello RCNN in produzione, con i ricercatori che si rivolgono a tecniche di aumento dei dati per raccogliere dati di addestramento sufficienti nelle prime fasi.

“Dopo il periodo iniziale di scoperta, il team ha deciso di combinare le tecniche per creare un flusso di lavoro di elaborazione delle immagini per le immagini del trapano. Ciò ha comportato lo sviluppo di una serie di modelli di apprendimento profondo in grado di elaborare immagini grezze in un formato strutturato e segmentare le informazioni geologiche importanti ", hanno scritto i ricercatori in un post sul blog.

Utilizzando la tecnologia di Datarock, i clienti possono ottenere risultati in mezz'ora, a differenza delle cinque o sei ore necessarie per registrare manualmente i risultati. Questo libera i geologi dalle parti più laboriose del loro lavoro, ha detto Crawford. Tuttavia, "quando automatizziamo le cose che sono più difficili, riceviamo un po 'di pushback e dobbiamo spiegare che fanno parte di questo sistema per addestrare i modelli e ottenere la svolta del ciclo di feedback".

Come molte aziende che addestrano modelli di visione artificiale di deep learning, Datarock ha iniziato con TensorFlow, ma presto è passato a PyTorch.

"All'inizio abbiamo utilizzato TensorFlow e si sarebbe bloccato su di noi per ragioni misteriose", ha detto Duy Tin Truong, responsabile dell'apprendimento automatico presso Datarock. "PyTorch e Detecton2 sono stati rilasciati in quel momento e si adattavano bene alle nostre esigenze, quindi dopo alcuni test abbiamo visto che era più facile eseguire il debug e lavorare e occupare meno memoria, quindi abbiamo convertito", ha detto.

Datarock ha anche segnalato un miglioramento di 4 volte nelle prestazioni di inferenza da TensorFlow a PyTorch e Detectron2 durante l'esecuzione dei modelli su GPU e 3 volte su CPU.

Truong ha citato la comunità in crescita di PyTorch, l'interfaccia ben progettata, la facilità d'uso e un migliore debug come ragioni per il passaggio e ha osservato che sebbene "siano abbastanza diversi dal punto di vista dell'interfaccia, se conosci TensorFlow, è abbastanza facile cambiare , soprattutto se conosci Python. "