Interessati al machine learning? Meglio imparare PyTorch
Basarsi sulla crescente popolarità di Python è stata un’ottima idea per PyTorch, un framework open source di machine learning in netta ascesa. Ma per quanto l’idea di fondo fosse valida, pochi avrebbero potuto immaginare un simile successo. Questo perché, indipendentemente dal numero di cose riuscite quando si avvia un progetto open source (ottima documentazione, solide basi tecniche, ecc.), c’è sempre un elemento di fortuna nel successo di un progetto.
Considerate quindi PyTorch fortunato (o benedetto) o quello che volete. Fatto sta che se dobbiamo credere all’analista Thomas Dinsmore entro la fine del 2020 PyTorch avrà più contributori attivi e più adozioni di TensorFlow. Questo è un vero e proprio boom per qualsiasi rivale di TensorFlow, considerato a lungo il framework cardine del settore dalla sua uscita pubblica nel 2015.
Come emerso da OpenHub, TensorFlow e PyTorch se la giocano quasi alla pari come numero di contributori totali negli ultimi 12 mesi: TensorFlow (906) e PyTorch (900). Ciò rappresenta un enorme balzo in avanti per la comunità di PyTorch, dato il vantaggio temporale di TensorFlow, e si riflette nella crescita nella comunità di utenti di PyTorch, come si evince dall’analisi sottostante di Jeff Hale sui siti di offerte di lavoro per ruoli di data scientist.
Per essere chiari, questa analisi riflette la crescita relativa o il declino nell’ultimo anno. La comunità di utenti di TensorFlow è ancora molto più ampia di quella di PyTorch, sebbene a livello accademico PyTorch sia passato da minoranza a maggioranza schiacciante quasi da un giorno all’altro. Tutto sommato, non è difficile vedere PyTorch colmare rapidamente il divario con TensorFlow se continuerà a crescere con questi ritmi, considerando anche i suoi vantaggi comparativi in chiave Python.
Come ha scritto Serdar Yegulalp nel 2017 al lancio di PyTorch, “un vantaggio principale di PyTorch è che consente allo sviluppatore di collegarsi al vasto ecosistema di librerie e software Python. I programmatori Python sono anche incoraggiati a usare gli stili con cui hanno familiarità, piuttosto che scrivere il codice specificamente inteso come un wrapper per una libreria C/C ++ esterna”. Ciò significa che PyTorch ha sempre avuto un netto vantaggio a livello di approcciabilità. La documentazione è inoltre eccellente e c’è una sana comunità di sviluppatori felici di dare una mano.
Questo vantaggio è ulteriormente accentuato dalla natura computazionale di PyTorch. Come spiega Savan Visalpara, “TensorFlow è un framework Define-and-Run, mentre PyTorch è Define-by-Run. Nel primo caso si definiscono condizioni e iterazioni nella struttura di un grado, quindi lo si esegue. Nel secondo caso la struttura del grafo è definita al volo durante il calcolo, che è un modo più naturale per scrivere codice”.
Dhiraj Kumar concorda, sostenendo che un modello così dinamico consente ai data scientist di “vedere completamente ogni singolo calcolo e sapere esattamente cosa sta succedendo”. A dire il vero, con il rilascio di TensorFlow 2.0, Google ha cambiato un po’ le cose al suo framework. Come spiega Martin Heller, “la nuova esecuzione Eager significa che il codice di TensorFlow viene eseguito quando è definito, invece di aggiungere nodi a un grafo per eseguirlo in una sessione successiva come succedeva nella modalità originale di TensorFlow.”
Anche se questa è una novità importante per TensorFlow perché aiuta il framework a competere meglio con PyTorch in termini di facilità d’uso, abilitando la modalità Eager per impostazione predefinita, TensorFlow impone una scelta ai propri utenti: usare l’esecuzione Eager per una miglior facilità d’uso o non usarla affatto.
“Mentre questa è la stessa situazione in cui si trova PyTorch, la natura opt-in di TorchScript di PyTorch è probabilmente più appetibile rispetto a quella Eager di default di TensorFlow”, avverte Horace He. La modalità Eager soffre inoltre di problemi di prestazioni, sebbene ci aspettiamo che questi migliorino nel tempo.
Riassumendo, mentre il settore del machine learning si basa ancora fortemente su TensorFlow, l’approccio di PyTorch facile da imparare, semplice da usare e in grado di legarsi al linguaggio di programmazione più famoso al mondo in ambito data-science si sta dimostrando vincente. Sebbene il mondo accademico sia stato il più veloce ad abbracciare PyTorch, dovremmo aspettarci di vedere un’adozione sempre maggiore di PyTorch anche nel mondo aziendale.