Un nuovo paradigma per il Machine Learning
Come ho recentemente scritto in un mio paper (1), Swift for TensorFlow sta aprendo la strada ad un nuovo paradigma di programmazione: La Programmazione Differenziabile o, in inglese Differentiable Programming. Questo paradigma è orientato principalmente all’infrastruttura di supporto per la scrittura di programmi di Machine Learning (ML). Questa infrastruttura comprende tutto lo Stack di produzione dal linguaggio di programmazione al codice macchina generato seguendo tutte le fasi di compilazione, ottimizzazione ed emissione, fino ad arrivare alla microarchitettura dei processori (CPU, GPU, TPU o un qualunque ASIC) su cui il codice viene eseguito.
Perché c’è la necessità di un nuovo paradigma? Perché, oggi più che mai, lo sviluppo di programmi di Machine Learning sta diventando un trend sensibile. I Big Data sono oggi il nuovo “oro nero”. Chi svilupperà la tecnica migliore di gestione dei dati, diventerà il nuovo magnate di questo secolo. Qui sto pensando al futuro prossimo, non alla situazione attuale. Io vedo molto chiaramente che la prossima e necessaria svolta nella “corsa all’oro” non sta tanto nell’aumentare la “potenza di calcolo”, ma piuttosto in una sempre più spinta e mirata integrazione e ottimizzazione di tutta la catena di produzione ed esecuzione dei programmi di ML (vedi anche (2) ).
In questo momento storico, siamo in una fase sub-ottimale sia per quanto riguarda le infrastrutture, sia per quanto riguarda il concept. L’offering attuale si basa su data center che potrebbero essere sfruttati in maniera più ottimizzata ed integrata. A partire dai linguaggi che si usano per scrivere i programmi di ML. Se pensiamo che fare il training di un modello vuol dire fare ricorsivamente la “derivata prima” dei parametri numerici che formano il modello stesso per arrivare ad un’ottimizzazione della funzione di loss, avere un linguaggio di programmazione che nella sua semantica incorpora nativamente questi concetti, permette allo sviluppatore di fruire di uno strumento estremamente utile e potente per il suo lavoro. Swift for TensorFlow (3) fornisce questo strumento integrando la semantica del linguaggio con tutti i passaggi di compilazione sottostanti, predisposti ad accogliere queste particolari funzionalità. Necessariamente la transizione veicolata da questo nuovo paradigma di programmazione, deve passare per un cambiamento del concept con cui attualmente pensiamo al Machine Learning. Si deve iniziare a tenere presente anche qui concetti che derivano dall’ecologia e dall’ottimizzazione dell’uso delle risorse che non sono per niente illimitate, partendo ad esempio da un linguaggio mirato alle esigenze del contesto ML. Integrare ed ottimizzare sono le parole chiave per costruire un nuovo concetto di utilizzo del nuovo “petrolio” di questo secolo: i dati.
Facilitatrice di Educazione Biocentrica presso Scuola di Formazione. Ricerca nei mutamenti di qualità.
5 anniIntegrare ed ottimizzare. Con le mie ricerche sono arrivata qui: mi sto chiedendo se nel machine learning esiste la possibilità di eliminare i bias cognitivi.