00:00:07 Programmazione differenziabile come nuovo termine.
00:01:38 L’idea centrale dell’ottimizzazione basata sul gradiente nel deep learning.
00:03:48 La svolta della differenziazione automatica nel calcolo dei gradienti.
00:06:00 Le origini della programmazione differenziabile e il suo impatto sul machine learning.
00:07:43 La complessità di compiti apparentemente semplici e il progresso iterativo nell’IA.
00:09:33 La transizione dalle reti neurali al deep learning e alla programmazione differenziabile.
00:11:22 I benefici della programmazione differenziabile nell’ottimizzazione della supply chain.
00:13:26 Accoppiare la determinazione dei prezzi, le previsioni della domanda e l’allocazione delle scorte nella gestione della supply chain.
00:15:00 La programmazione differenziabile nel machine learning e nell’affrontare le incertezze.
00:16:00 La programmazione differenziabile nella supply chain e il confronto con le grandi aziende tecnologiche.
00:18:19 Applicare tecniche di IA da altri campi ai problemi della supply chain.
00:20:15 I benefici della programmazione differenziabile per la modellazione predittiva e l’ottimizzazione nelle supply chain.
00:22:01 Le sfide future della programmazione differenziabile nella gestione della supply chain.
00:24:16 Considerazioni finali.
Sommario
Kieran Chandler ha intervistato Joannes Vermorel, fondatore di Lokad, riguardo alla programmazione differenziabile e alla sua importanza nell’IA e nell’ottimizzazione della supply chain. La programmazione differenziabile è emersa da importanti progressi nelle tecniche di differenziazione automatica ed è evoluta dalle reti neurali e dal deep learning. La modularità della programmazione differenziabile consente l’assemblaggio di modelli più flessibili e versatili, rendendola utile per l’ottimizzazione della supply chain. Pur essendoci preoccupazioni riguardo all’affidabilità, Vermorel evidenzia l’efficacia delle tecniche di machine learning. Lokad, nonostante un budget più ridotto, rimane competitiva adattando le ricerche dei giganti tecnologici alle applicazioni nella supply chain. La programmazione differenziabile offre una soluzione più espressiva per creare ricette numeriche adatte ai problemi aziendali, anche se ottenere risultati costanti senza fallimenti rimane una sfida.
Sommario Esteso
Kieran Chandler, il conduttore dell’intervista, ha discusso dell’argomento della programmazione differenziabile con Joannes Vermorel, fondatore di Lokad, una software house specializzata nell’ottimizzazione della supply chain. Vermorel ha fornito approfondimenti sulle origini e sull’importanza della programmazione differenziabile come concetto e sulla sua relazione con l’IA e il deep learning.
Yann LeCun, il direttore della ricerca sull’IA di Facebook, ha recentemente suggerito che il termine “deep learning” ha superato la sua utilità come parola d’ordine e ha proposto l’uso della “programmazione differenziabile” per riflettere gli sviluppi più recenti nel software. Vermorel ha commentato l’evoluzione costante della terminologia nel campo dell’IA, affermando che non appena viene trovata una soluzione per un problema, non viene più considerata IA e le viene attribuito un nuovo nome, con la programmazione differenziabile come ultimo esempio.
Le origini della programmazione differenziabile possono essere ricondotte all’ottimizzazione basata sul gradiente, un concetto fondamentale del deep learning. L’ottimizzazione basata sul gradiente implica l’addestramento di un modello con milioni di parametri utilizzando una funzione obiettivo, che valuta la qualità dei risultati del modello. Man mano che si osservano nuovi dati, viene calcolato il gradiente, o derivata multidimensionale, per guidare gli aggiustamenti dei parametri, migliorando gradualmente il modello.
Storicamente, le reti neurali, che precedono il deep learning, impiegavano tecniche complesse come la retropropagazione per calcolare i gradienti. Queste tecniche erano difficili da implementare e si esibivano in prestazioni relativamente lente. Una svolta si è verificata circa un decennio fa quando i ricercatori hanno iniziato a utilizzare la differenziazione automatica, una tecnica scoperta per la prima volta negli anni ‘60. La differenziazione automatica semplifica il calcolo dei gradienti, ma è rimasta in gran parte ignorata dalla comunità scientifica fino a quando il suo potenziale non è stato compreso più recentemente.
La discussione ruota attorno al concetto di programmazione differenziabile e al suo sviluppo, nonché alle sue applicazioni nell’ottimizzazione della supply chain.
La programmazione differenziabile è emersa come risultato dei progressi nelle tecniche di differenziazione automatica, che hanno permesso il calcolo dei gradienti per qualsiasi programma, non solo per una funzione. Questo approccio ha consentito lo sviluppo di reti computazionali più complesse che potevano essere applicate a una gamma più ampia di problemi. Il termine “differentiable programming” deriva dall’idea di calcolare la derivata di un programma.
Lo sviluppo della programmazione differenziabile è stato iterativo, basandosi sui concetti precedenti nelle reti neurali e nel deep learning. I progressi in questo campo sono stati costanti negli ultimi 50-60 anni, anche se inizialmente si credeva erroneamente che certi problemi, come l’identificazione di un cane, fossero più facili da risolvere rispetto a calcoli complessi come il calcolo di un logaritmo. In realtà, problemi apparentemente semplici come il riconoscimento degli oggetti e il mantenimento dell’equilibrio si sono rivelati più impegnativi, mentre i calcoli sono diventati relativamente facili grazie all’architettura moderna dei computer.
La transizione dalle reti neurali al deep learning ha comportato l’abbandono dell’ispirazione biologica per concentrarsi su ciò che funzionava con l’hardware dei computer. La fase successiva, la programmazione differenziabile, si è basata sulla modularità del deep learning, consentendo la composizione, l’accatastamento, la concatenazione e la combinazione dei modelli di machine learning. Questa modularità è stata cruciale per l’ottimizzazione della supply chain, che coinvolge elementi diversificati come prezzi, prodotti, clienti, ubicazioni e contenitori.
Quando le persone hanno iniziato a costruire toolkit di deep learning che assomigliavano a linguaggi di programmazione, l’idea della programmazione differenziabile è emersa come un’estensione naturale. Le tecniche di differenziazione automatica hanno semplificato la progettazione e l’ingegnerizzazione dei toolkit necessari. In pratica, la programmazione differenziabile consiste nel combinare vari modelli e blocchi, in modo simile all’approccio dei mattoncini Lego. Tuttavia, rispetto al deep learning, la programmazione differenziabile permette un assemblaggio di modelli più flessibile e versatile.
Vermorel spiega che la programmazione differenziabile consente un’espressività programmatica, permettendo agli utenti di rivedere i problemi e di esprimere le soluzioni in maniera più precisa ed efficiente. Fornisce un esempio di come la programmazione differenziabile possa essere utilizzata per ottimizzare la determinazione dei prezzi, le previsioni della domanda e l’allocazione delle scorte. Questi fattori sono interconnessi; modificare la strategia di pricing influenzerà la domanda, che a sua volta incide sulla produzione necessaria e sui livelli di scorte.
Della programmazione differenziabile permette agli utenti di scrivere programmi che lasciano spazi vuoti per i parametri da ottimizzare. Un supply chain scientist può scrivere questi programmi e utilizzare la tecnologia appropriata per l’ottimizzazione. Chandler solleva preoccupazioni riguardo all’affidabilità delle soluzioni prodotte dalla programmazione differenziabile, poiché essa prevede spazi vuoti e si basa sul machine learning. Vermorel riconosce le limitazioni, ma sottolinea che le tecniche di machine learning hanno già dimostrato la loro efficacia, come evidenziato dal successo nell’andare oltre i giocatori umani in giochi come Go e negli scacchi.
Quando gli è stato chiesto degli sforzi di ricerca e sviluppo nella programmazione differenziabile da parte di Lokad rispetto a grandi aziende tecnologiche come Facebook, Vermorel ammette che il loro budget è significativamente più ridotto. Tuttavia, sottolinea che le ricerche condotte da questi giganti tecnologici vengono spesso pubblicate, permettendo a aziende più piccole come Lokad di studiarle e trarne ispirazione. La sfida principale per Lokad è rimanere aggiornati con queste pubblicazioni e adattare i reperti di ricerca a una mentalità incentrata sulla supply chain.
Vermorel sottolinea che il focus principale delle grandi aziende tecnologiche è sui grandi problemi dell’IA, come la computer vision, il riconoscimento vocale, la sintesi vocale e l’elaborazione del linguaggio naturale. Questi settori non sono direttamente correlati alla gestione della supply chain, settore in cui risiede l’expertise di Lokad. Mantenendo un occhio attento sulle ricerche prodotte da questi giganti tecnologici e riadattandole alle applicazioni nella supply chain, Lokad punta a rimanere competitiva nel campo della programmazione differenziabile per l’ottimizzazione della supply chain.
Vermorel sottolinea che molte delle intuizioni tratte dalla ricerca sull’IA non sono specifiche per le immagini o il parlato, ma sono invece più fondamentali nell’apprendere dai dati. Queste intuizioni possono essere applicate a diversi problemi, inclusa la gestione della supply chain, dove possono addirittura funzionare meglio.
Il principale vantaggio della programmazione differenziabile nella gestione della supply chain, secondo Vermorel, è la sua capacità di affrontare gli sconosciuti e la modellazione predittiva senza far deragliare l’azienda. La sfida consiste nell’allineare le soluzioni numeriche ai driver specifici del business, pur rimanendo versatili ed espressive. La programmazione differenziabile offre una soluzione più espressiva, rendendo più facile creare ricette numeriche che si adattino al problema aziendale.
Vermorel osserva che una delle sfide più grandi nell’applicare la programmazione differenziabile alla gestione della supply chain è stabilire una serie di costrutti e blocchi fondamentali di programmazione che funzionino bene per l’industria. Mentre la differenziazione automatica può differenziare qualsiasi programma, è fondamentale trovare modi specifici di formulare i problemi che producano non solo buoni risultati, ma anche risultati stabili e affidabili adatti alla produzione. L’obiettivo è ottenere risultati costanti senza fallimenti catastrofici, una sfida che rimane ancora da affrontare.
Trascrizione Completa
Kieran Chandler: Oggi continueremo la nostra mini-serie esaminandone le origini. Quindi, Joannes, la programmazione differenziabile è un altro termine d’ordine nel mondo della tecnologia. Ne abbiamo davvero bisogno di un altro?
Joannes Vermorel: Credo di sì. È molto interessante perché, non appena le persone trovano una soluzione che funziona per dei problemi, improvvisamente non viene più considerata IA. Viene data un’altra denominazione. L’IA è il termine generico per indicare che si tratta di terra incognita; non sappiamo come risolvere quelle tipologie di problemi. Non appena abbiamo una soluzione, essa prende un nome, e solitamente ciò avviene attraverso una serie di progressi iterativi. Poi viene assegnato un nome che riflette ciò che domina come parte della ricetta numerica in quella soluzione.
Kieran Chandler: Okay, e poi si passa alla programmazione differenziabile. Qual è la storia dietro questo? Da dove deriva il nome e come siamo arrivati a questo punto?
Joannes Vermorel: Il nome deriva da uno degli ingredienti che ha alimentato il deep learning, ovvero l’idea dell’ottimizzazione basata sul gradiente. Cosa significa questo? Un’ottimizzazione basata sul gradiente implica che hai un modello con potenzialmente milioni di parametri. Il modo in cui questi parametri vengono addestrati è attraverso una funzione obiettivo, un’equazione che indica se i risultati del modello sono buoni o cattivi. L’idea è che, ogni volta che osservi un dato, le informazioni fluiscono indietro attraverso questa funzione, permettendoti di calcolare il gradiente. Il gradiente ti indica che se indirizzi i parametri solo leggermente in quella direzione, migliorerà localmente la funzione obiettivo appena un po’. Questa è l’idea alla base della discesa del gradiente stocastico, che è l’algoritmo utilizzato per ottimizzare gli algoritmi moderni di machine learning e, ad esempio, tutto il deep learning.
Quindi, abbiamo questo approccio basato sul gradiente con molti parametri, e l’idea è di spostare i parametri un po’ ogni volta che si osserva un nuovo dato, in modo da migliorare gradualmente. Il problema diventa allora come calcolare questo gradiente. A proposito, il termine gradiente è semplicemente un nome per le derivate multidimensionali. Se hai studiato algebra alle superiori, hai visto le derivate, la pendenza di una curva in una dimensione. Se hai molte dimensioni, ti riferirai a esse come a un gradiente. Poiché hai molti parametri, vuoi calcolare la pendenza per ciascuno di essi.
Si scopre che, storicamente, le reti neurali, che probabilmente sono esistite prima del deep learning, utilizzavano tecniche molto complicate come la retropropagazione dei gradienti. In termini di complessità di implementazione e prestazioni, era complicato e un po’ lento. Non che fosse lento in assoluto, ma più lento rispetto a ciò che abbiamo oggi. Una delle svolte che ha aperto la strada alla programmazione differenziabile è stata la consapevolezza, avvenuta circa dieci anni fa, che si poteva utilizzare una tecnica chiamata differenziazione automatica, che, tra l’altro, ha 50 anni di età. Fu scoperta per la prima volta a metà degli anni ‘60, quindi è passato parecchio tempo. Ma è stata in gran parte ignorata dalla comunità scientifica. È stata riscoperta più volte, ma in qualche modo tali scoperte non hanno ottenuto l’attenzione diffusa.
Non eravamo persone che lavoravano per mescolare cose che appartenevano a campi completamente differenti, e quindi quegli avanzamenti sono rimasti, direi, in gran parte ignorati. E così, avevamo la comunità del machine learning bloccata con le tecniche di back propagation, molto complicate e tediose da implementare, e improvvisamente la gente ha cominciato a rendersi conto che con quelle tecniche di automatic differentiation potevi calcolare il gradiente per letteralmente qualsiasi programma, non solo per qualsiasi funzione, qualsiasi programma. E questo è stato veramente un cambiamento radicale in termini di implementazione. Improvvisamente potevi ideare una rete computazionale arbitrariamente complicata, non semplicemente impilando altri layer, ma creando un programma completamente arbitrario e applicando esattamente le stesse tecniche di gradient descent. Ed è da qui che deriva il termine differentiable programming: dall’idea che andrai a differenziare, ovvero a calcolare la derivata di un programma. È da qui che viene il nome, e riflette in parte l’ambizione degli ultimi progressi nel machine learning di concepire architetture super complesse per reti computazionali che possano essere dei programmi arbitrari, da cui il nome differentiable programming.
Kieran Chandler: Bene, molte cose da digerire. Quindi, proviamo a scomporle un po’. Hai detto che alcune di queste idee risalgono agli anni ‘50 e ‘60. Non è proprio come lo sviluppo rapido che stiamo vedendo nell’AI e cose simili. Quindi, c’è effettivamente un approccio piuttosto iterativo per arrivare alla programmazione differenziabile?
Joannes Vermorel: Assolutamente, ma la realtà è che anche il deep learning, prima di allora, era estremamente iterativo e le reti neurali ancora di più. Voglio dire, il ritmo dei progressi negli ultimi 50-60 anni è stato in realtà davvero rapido. E ciò che è intrigante è che, sai, nei primi anni ‘60 la gente pensava: “Oh, se riusciamo a risolvere la moltiplicazione, l’espansione, o tutti quei calcoli difficili, allora identificare un cane sarà facilissimo. Dopotutto, chiunque per strada può dire che questo è un cane, ma ci vuole un matematico super allenato per calcolare il logaritmo. Quindi, ovviamente, calcolare un logaritmo è molto più complicato che identificare se hai un cane davanti a te.”
E la sorpresa più grande è venuta dal fatto che in realtà è il contrario. Quei problemi che diamo per scontati, come per esempio riuscire a mantenere l’equilibrio stando in piedi su due piedi, sono molto complicati. Voglio dire, se ti fermi di muoverti, cadi. Quindi è completamente dinamico. Non si tratta di stare in piedi: avere un robot bipede è un vero incubo ingegneristico. È molto più facile avere dispositivi che funzionano su ruote e che sono completamente stabili per design.
Quindi, quei problemi super semplici, come stare in piedi, oppure identificare se ciò che hai davanti è un cane o un pollo, o qualcosa di completamente diverso, tipo un poster con l’immagine di un cane anziché avere un cane reale, risultano estremamente difficili, mentre problemi come il calcolo dei logaritmi sono in realtà super facili con l’architettura di calcolo che abbiamo. È stata quindi una grande sorpresa, e ci sono voluti letteralmente decenni per renderci conto che dovevamo scoprire perfino da dove iniziare ad affrontare problemi così fondamentali.
Kieran Chandler: E che dire della programmazione differenziabile? Qual è stata l’ispirazione dietro tutto ciò?
Joannes Vermorel: L’intuizione chiave, molto interessante, è stata la transizione dalle reti neurali al deep learning. L’idea era di abbandonare completamente ogni ispirazione biologica e di rendersi conto che se volevamo andare avanti, dovevamo scartare quell’ispirazione per concentrarci su ciò che funziona veramente con l’hardware dei computer. Una delle intuizioni chiave che ha guidato il deep learning è stata la sua modularità. Puoi costruire modelli di machine learning in modo estremamente modulare; puoi comporli, impilarli, concatenarli e mescolarli in molti modi.
Kieran Chandler: E perché questo è di primo interesse per supply chains?
Joannes Vermorel: È perché vogliamo mescolare cose come prezzi, prodotti, clienti, località, container e ogni sorta di oggetti molto diversi che devono essere messi insieme per risolvere i problemi della supply chain. Devi affrontare tutta questa diversità. Quando inizi ad avere modelli che puoi comporre in vari modi, finisci per ottenere, letteralmente, un linguaggio di programmazione. La cosa interessante è che la gente ha iniziato a costruire toolkit nel deep learning sempre più simili a veri linguaggi di programmazione. Ad esempio, Microsoft ha rilasciato il suo toolkit di rete computazionale, CNTK, che incorporava BrainScript, un linguaggio di programmazione specifico per il deep learning. Il passo successivo è stato passare alla programmazione completa.
Kieran Chandler: Quindi è una specie di approccio a mattoncini Lego, combinando blocchi diversi provenienti da vari posti e assemblando questi modelli in modi differenti. Come funziona concretamente nella pratica? Come implementate questo codice dietro le quinte?
Joannes Vermorel: I Lego erano praticamente l’archetipo di quello che la gente aveva con il deep learning, in effetti. Si trattava di combinare blocchi, ma in modi abbastanza limitati. Esiste uno spettro tra deep learning e programmazione differenziabile senza una demarcazione netta. La differenza era che la gente è passata dai Lego, dove si trattava semplicemente di assemblare pezzi, alla programmazione, dove puoi fare lo stesso ma con un’espressività programmativa. Per supply chains, ciò significa che puoi rivedere i problemi ed esprimere la tua soluzione in modo molto più succinto e diretto rispetto al problema che stai cercando di risolvere.
Kieran Chandler: Puoi fare un esempio?
Joannes Vermorel: Certo, proviamo a ottimizzare congiuntamente i prezzi, la previsione della domanda e l’allocazione dello stock. Quando ci pensi, tutte queste cose sono completamente collegate. Sto prevedendo la domanda, ma so che se modifico la mia strategia di pricing, modificherò la domanda. Se modifico la domanda, questo incide su quanto dovrei produrre e mantenere in stock, perché la domanda sarà diversa. Tutte queste cose sono strettamente interconnesse, e hanno dipendenze che puoi letteralmente scrivere.
Kieran Chandler: È complicato, in un certo senso. Se ho più domanda, ho bisogno di più stock per soddisfarla. È abbastanza ovvio, e se imposto un prezzo più alto, allora per la domanda che riesco a mantenere, avrò un margine maggiore. Ci sono molte situazioni che si riducono a calcoli molto pratici, ma la domanda è: come metti insieme tutti questi ingredienti per ottenere qualcosa che sia allo stesso tempo una previsione e un’ottimizzazione?
Joannes Vermorel: La risposta è la programmazione differenziabile con tecniche specifiche che ti permettono di scrivere quei programmi che lasciano molto spazio in bianco. Quello spazio verrà riempito con tutti i parametri che vuoi ottimizzare, e avrai un Supply Chain Scientist che scriverà tutto ciò, insieme alla tecnologia adeguata per realizzare l’ottimizzazione.
Kieran Chandler: Quindi, quello che stai dicendo con questi spazi vuoti è che stai in realtà scrivendo un programma in cui non conosci tutte le risposte?
Joannes Vermorel: Sì, esatto.
Kieran Chandler: Come fai a saperlo e ad avere la fiducia che in realtà raggiungerai la risposta giusta, se ci sono questi spazi vuoti?
Joannes Vermorel: Infatti, è simile ai fenomeni nel machine learning. Stai imparando, quindi non hai alcuna garanzia di ottenere buoni risultati. Detto questo, non credo che al giorno d’oggi sia diverso dal deep learning e da tutte le tecniche precedenti del machine learning. Ad esempio, i programmi di machine learning hanno ormai superato tutti i giocatori umani in giochi come Go e scacchi. Quindi, non è come se non avessimo segni evidenti che stia funzionando, anche oltre la capacità umana, per problemi che sono ancora abbastanza ristretti, a differenza di identificare dove si trova un cane in un ambiente urbano caotico, che è un problema molto più difficile.
Kieran Chandler: Hai accennato ad alcuni aspetti della supply chain per la programmazione differenziabile. Dal punto di vista della ricerca e sviluppo, quanto sono vicine le cose che stiamo facendo qui a Lokad rispetto a quelle che Facebook e altre grandi aziende tecnologiche stanno facendo nella programmazione differenziabile?
Joannes Vermorel: Credo che i grandi attori tecnologici come Google, Facebook e Microsoft abbiano budget molto più consistenti per la ricerca e lo sviluppo. A Lokad, stiamo facendo del nostro meglio, ma, per essere realistici, non possiedo nemmeno l'1% del budget AI di Microsoft o Facebook. Questa è la realtà per la maggior parte delle aziende B2B al momento. Quei mercati sono ancora abbastanza di nicchia, e non c’è nessuna azienda in supply chain che possa dire di avere 2.000 ricercatori AI. Tuttavia, la buona notizia è che quei giganti come Google, Amazon e Facebook stanno davvero pubblicando molto, quindi la maggior parte delle loro ricerche è resa pubblica. Ciò significa che una delle principali sfide che affrontiamo a Lokad è tenere sotto stretto controllo tutte queste pubblicazioni e trarne ispirazione costante. Reingegnerizziamo ciò che fanno, ma con una mentalità orientata alla supply chain, perché quei grandi team stanno lavorando su enormi problemi dell’AI come la computer vision, il riconoscimento vocale, la sintesi vocale e l’elaborazione del linguaggio naturale, che non sono per nulla quelli che la gente sta cercando di risolvere per supply chain.
Kieran Chandler: Allora, come si passa da quei grandi problemi dell’AI, come il riconoscimento delle immagini e il riconoscimento vocale, a supply chain? In che modo possono essere correlati?
Joannes Vermorel: La gente ha scoperto l’intuizione chiave dei progressi degli ultimi decenni, ovvero il meccanismo centrale dell’apprendimento e il meccanismo fondamentale alla base di un’ottimizzazione numerica efficiente e scalabile. Ciò che è molto interessante è che la maggior parte delle intuizioni che emergono non sono specifiche per le immagini. Sono più a livello fondamentale di
Kieran Chandler: Quindi, ho sentito parlare di un trucco che funziona solo per le immagini, ma ci sono molte pubblicazioni in cui il trucco o l’intuizione scoperta non è affatto specifica. Basta che, per validare le intuizioni e gli esperimenti, devono ingegnerizzare una soluzione, e quella soluzione è stata progettata per le immagini. Ma il trucco potrebbe essere applicato a problemi completamente diversi. Potrebbe non funzionare naturalmente con la stessa efficienza su problemi completamente differenti, ma a volte funziona anche meglio. Puoi approfondire?
Joannes Vermorel: Sì, hai ragione. A volte viene scoperta una tecnica che è efficace per le immagini ma non rivoluzionaria. Viene comunque pubblicata, in quanto considerata innovativa e contribuisce al progresso scientifico. Tuttavia, quando applichi questa tecnica in un contesto diverso, come una supply chain, puoi ottenere progressi significativi. Quindi, funziona in entrambe le direzioni.
Kieran Chandler: Qual è il principale beneficio, dal punto di vista di Lokad, della programmazione differenziabile? È l’idea che puoi rispondere a tutte quelle incognite presenti in una supply chain e a tutti quegli spazi vuoti in cui in realtà non sai cosa accadrà in futuro?
Joannes Vermorel: La grande sfida che affrontiamo in supply chain è come avere una modellizzazione predittiva e un’ottimizzazione predittiva che non tradiscano il business. Non è banale, perché non si tratta di ottenere risposte generiche; si tratta di avere una classe molto specifica di decisioni che ottimizzano il business in modi estremamente specifici, in linea con i driver aziendali che tu definisci. Non cerchiamo che le tecniche AI rivelino gli obiettivi aziendali; questi sono stabiliti con intelligenza umana per definire strategia e prospettiva. Il problema ha molta struttura, e la sfida maggiore è assicurarci che le ricette numeriche che elabori siano in linea con quei driver del business. È molto difficile – di solito, finisci con un buco rotondo e un dado quadrato che semplicemente non combaciano. La programmazione differenziabile è un modo per affrontare questo problema.
Kieran Chandler: Essere molto più espressivi, ed è questa la chiave per assicurarsi di poter formulare ricette numeriche che si adattano davvero al problema aziendale che hai davanti agli occhi. Sai, se hai accesso a un linguaggio di programmazione, allora sei molto più, direi, espressivo e versatile. Improvvisamente diventa, in pratica, molto più facile far combaciare le cose. Bene, cominciamo a concludere. Avevi accennato all’inizio che la programmazione differenziabile rappresentava davvero l’inizio di un lungo percorso, con moltissime sfide a venire.
Joannes Vermorel: Sì, dove siamo in questo percorso e quali sono le sfide più grandi che dovremo affrontare… La sfida principale è probabilmente quella di stabilire, o meglio, identificare una serie di costrutti e blocchi fondamentali di programmazione che funzionino davvero bene per supply chain. Quindi, ricorda, l’automatic differentiation ti permette di differenziare qualsiasi programma, è vero, ma, come hai sottolineato, non basta smettere o iniziare a inserire parametri a caso nel programma dicendo: “Beh, qualunque cosa andrà bene perché posso ottimizzare i miei parametri.” No, la realtà è che non è qualsiasi tipo di programma a funzionare. Sì, puoi differenziare qualsiasi programma che contenga quei parametri, ma la realtà è che se scrivi un programma a caso con parametri sparsi nel mezzo, quando attivi l’ottimizzazione, cioè l’automatic differentiation, i risultati che otterrai saranno un completo disastro. Quindi, no, deve essere strutturato: dobbiamo identificare modi specifici per formulare quei problemi in modo da ottenere risultati non solo buoni, ma anche stabili e affidabili. Vedi, noi preferiamo avere soluzioni che si possano portare in produzione, quindi essere mediamente migliori non è sufficiente. Vuoi qualcosa che non sia solo migliore, ma anche molto affidabile, in modo da non generare soluzioni eccezionali una tantum accompagnate da fallimenti catastrofici ogni tanto. E questo è ancora, probabilmente, parzialmente davanti a noi.
Kieran Chandler: Brillante. Bene, questo è il punto in cui ci fermiamo per oggi. Grazie per il tuo tempo, Joannes.
Joannes Vermorel: Grazie.
Kieran Chandler: Grazie mille per averci seguito. Torneremo di nuovo la prossima settimana con l’ultimo episodio di questa mini-serie su differentiable programming. Ma fino ad allora, grazie per aver guardato.