Seguici sui social

Intelligenza Artificiale

Tim Davis, co-fondatore e presidente di Modular – Serie di interviste

mm

Tim Davis, è il co-fondatore e presidente di componibile, una suite di strumenti integrata e componibile che semplifica la tua infrastruttura di intelligenza artificiale in modo che il tuo team possa sviluppare, implementare e innovare più rapidamente. Modular è meglio conosciuto per lo sviluppo Mojo, un nuovo linguaggio di programmazione che colma il divario tra ricerca e produzione combinando il meglio di Python con sistemi e metaprogrammazione.

Ripetere imprenditore e Product Leader. Tim ha contribuito a costruire, fondare e scalare gran parte dell'infrastruttura di intelligenza artificiale di Google presso Cervello di Google e sistemi core dalle API (TensorFlow), compilatori (XLA & MLIR) e runtime per server (CPU/GPU/TPU) e TF Lite (Mobile/Micro/Web), AndroidML & NNAPI, infrastruttura modello di grandi dimensioni e OSS per miliardi di utenti e dispositivi. Ama eseguire, costruire e scalare i prodotti aiutare le personee il mondo.

Quando hai scoperto inizialmente la programmazione e cosa ti ha attratto?

Da bambino cresciuto in Australia, mio ​​padre portò a casa un Commodore 64C e i giochi furono ciò che mi fece appassionare – Boulder Dash, Maniac Mansion, Double Dragon – che momento per essere vivi. Quel computer mi ha fatto conoscere il BASIC e l'hacking è stata la mia prima vera introduzione alla programmazione. Le cose sono diventate più intense durante il liceo e l'università, dove ho utilizzato linguaggi statici più tradizionali per i corsi di ingegneria, e col tempo mi sono anche dilettato fino a Javascript e VBA, prima di stabilirmi su Python per la stragrande maggioranza della programmazione come linguaggio dei dati. scienza e intelligenza artificiale. Ho scritto un sacco di codice nelle mie prime startup, ma oggigiorno, ovviamente, utilizzo Mojo e la toolchain che abbiamo creato attorno ad esso.

Per oltre 5 anni hai lavorato in Google come Senior Product Manager e Group Product Leader, dove hai contribuito a far crescere gran parte dell'infrastruttura di intelligenza artificiale di Google presso Google Brain. Cosa hai imparato da questa esperienza?

Sono le persone a costruire tecnologie e prodotti che cambiano il mondo, ed è un gruppo devoto di persone legate da una visione più ampia che le porta al mondo. Google è un'azienda incredibile, con persone straordinarie, e ho avuto la fortuna di incontrare e lavorare con molte delle menti più brillanti nel campo dell'intelligenza artificiale anni fa, quando mi sono trasferito per unirmi al team Brain. La più grande lezione che ho imparato è stata quella di concentrarmi sempre sull'utente e rivelare progressivamente la complessità, per consentire agli utenti di raccontare le loro storie uniche al mondo come aggiustare il Maggiore Barriera Corallina o aiutare le persone come Jason il batteristae per attrarre e riunire un mix diversificato di persone che guidano verso un obiettivo comune. In una grande azienda di persone molto intelligenti e di talento, questo è molto più difficile di quanto tu possa immaginare. Riflettendo sul tempo trascorso lì, sono sempre le persone con cui hai lavorato ad essere davvero memorabili. Guarderò sempre indietro con affetto e apprezzo il fatto che molte persone abbiano corso dei rischi con me, e sono enormemente grato che lo abbiano fatto, poiché molti di questi rischi mi hanno incoraggiato a essere un leader e una persona migliore, ad approfondire e comprendere veramente i sistemi di intelligenza artificiale. Mi ha davvero fatto capire il profondo potere che l’IA ha di avere un impatto sul mondo, e questo è stato proprio il motivo per cui ho avuto l’ispirazione e il coraggio di lasciare e co-fondare Modular.

Puoi condividere la storia della genesi di Modular?

Chris e io ci siamo incontrati a Google e abbiamo lanciato molte tecnologie influenti che hanno avuto un impatto significativo sul mondo dell'intelligenza artificiale oggi. Tuttavia, ritenevamo che l’intelligenza artificiale fosse frenata da un’infrastruttura eccessivamente complessa e frammentata di cui abbiamo assistito in prima persona durante la distribuzione di grandi carichi di lavoro a miliardi di utenti. Siamo stati motivati ​​dal desiderio di accelerare l’impatto dell’intelligenza artificiale sul mondo portando il settore verso software di intelligenza artificiale di qualità produttiva in modo che noi, come società globale, possiamo avere un impatto maggiore sul modo in cui viviamo. Non si può fare a meno di chiedersi quanti problemi l’intelligenza artificiale può aiutare a risolvere, quante malattie curate, quanto più produttivi possiamo diventare come specie, per promuovere la nostra esistenza per le generazioni future, aumentando la penetrazione di questa incredibile tecnologia.

Avendo lavorato insieme per anni su infrastrutture IA critiche su larga scala – abbiamo visto in prima persona l'enorme dolore degli sviluppatori – “perché le cose non possono funzionare”? Affinché il mondo possa adottare e scoprire l’enorme natura trasformativa dell’intelligenza artificiale, abbiamo bisogno di un’infrastruttura software e di sviluppo che si estenda dalla ricerca alla produzione e sia altamente accessibile. Ciò ci consentirà di sbloccare la prossima via delle scoperte scientifiche – di cui l’intelligenza artificiale sarà fondamentale – e lo è una grande sfida ingegneristicaGrazie a questo background stimolante, abbiamo maturato la convinzione intrinseca di poter intraprendere la strada della creazione di un nuovo approccio per le infrastrutture di intelligenza artificiale e di consentire agli sviluppatori di tutto il mondo di utilizzare l'intelligenza artificiale per contribuire a rendere il mondo un posto migliore. Siamo anche molto fortunati ad avere così tante persone che si uniscono a noi in questo percorso e, di conseguenza, abbiamo il miglior team al mondo per le infrastrutture di intelligenza artificiale.

Puoi parlare di come è stato inizialmente creato il linguaggio di programmazione Mojo per il tuo team?

Modulari visione è consentire all’intelligenza artificiale di essere utilizzata da chiunque, ovunque. Tutto ciò che facciamo in Modular è focalizzato su questo obiettivo e procediamo all'indietro nel modo in cui realizziamo i nostri prodotti e la nostra tecnologia. In questa luce, il ns proprio sviluppatore la velocità è ciò che conta per noi in primo luogo e, avendo costruito così tanta infrastruttura di intelligenza artificiale esistente per il mondo, dovevamo considerare attentamente cosa avrebbe consentito al nostro team di muoversi più velocemente. Abbiamo vissuto il problema del linguaggio dei due mondi nell’intelligenza artificiale – dove i ricercatori vivono in Python e gli ingegneri hardware e di produzione vivono in C++ – e non abbiamo avuto altra scelta che imboccare quella strada o ripensare completamente l’approccio. Abbiamo scelto quest'ultimo. C'era una chiara necessità di risolvere questo problema, ma molti modi diversi per risolverlo: ci siamo avvicinati con la ferma convinzione di soddisfare l’ecosistema dove si trova oggi e di consentire un passaggio più semplice verso il futuro. Il nostro team porta le cicatrici della migrazione del software su larga scala e non volevamo che ciò si ripetesse. Ci siamo anche resi conto che oggi, a nostro avviso, non esiste un linguaggio in grado di risolvere tutte le sfide che stiamo tentando di risolvere per l'intelligenza artificiale e quindi abbiamo intrapreso un approccio basato sui principi primi ed è nato Mojo.

In che modo Mojo consente scalabilità e portabilità senza soluzione di continuità su molti tipi di hardware?

Chris, io e il nostro team di Google (molti di Modular) abbiamo contribuito a portare avanti il ​​progetto MLIR nel mondo anni fa, con l’obiettivo di aiutare la comunità globale a risolvere sfide reali consentendo ai modelli di intelligenza artificiale di essere rappresentati ed eseguiti in modo coerente su qualsiasi tipo di hardware. MLIR è un nuovo tipo di infrastruttura di compilatore open source che è stata adottata su larga scala e sta rapidamente diventando il nuovo standard per la creazione di compilatori tramite LLVMData la storia del nostro team nella creazione di questa infrastruttura, è naturale che la utilizziamo ampiamente in Modular, e questo è alla base del nostro approccio all'avanguardia nello sviluppo di nuove infrastrutture di intelligenza artificiale per il mondo. È fondamentale che, mentre MLIR viene adottato rapidamente, Mojo sia il primo linguaggio che sfrutta davvero la potenza di MLIR e la espone agli sviluppatori in un modo unico e accessibile. Ciò significa che è scalabile, dagli sviluppatori Python che scrivono applicazioni, agli ingegneri delle prestazioni che distribuiscono codice ad alte prestazioni, fino agli ingegneri hardware che scrivono codice di sistema di bassissimo livello per il loro hardware esclusivo.

I riferimenti a Mojo affermano che è fondamentalmente Python++, con l'accessibilità di Python e le elevate prestazioni di C. È una grossolana semplificazione eccessiva? Come lo descriveresti?

Mojo dovrebbe risultare molto familiare a qualsiasi programmatore Python, poiché ne condivide la sintassi. Ma ci sono alcune differenze importanti che vedrai quando si porta un semplice programma Python su Mojo, incluso il fatto che funzionerà immediatamente. Uno dei nostri obiettivi principali per Mojo è fornire un superset di Python, ovvero rendere Mojo compatibile con i programmi Python esistenti, e abbracciare l'implementazione CPython per il supporto dell'ecosistema a coda lunga. Quindi consentirti di aumentare lentamente il tuo codice e sostituire le parti non performanti con le funzionalità di livello inferiore di Mojo per gestire esplicitamente la memoria, aggiungere tipi, utilizzare l'autotuning e molti altri aspetti per ottenere le prestazioni di C o migliori! Riteniamo che Mojo ti offra il meglio di entrambi i mondi e non devi scrivere e riscrivere i tuoi algoritmi in più lingue. Apprezziamo che Python++ sia un obiettivo enorme e sarà un impegno pluriennale, ma ci impegniamo a renderlo realtà e a consentire alla nostra leggendaria comunità di oltre 140 sviluppatori di aiutarci a costruire insieme il futuro.

In un recente keynote è stato dimostrato che Mojo è 35,000 volte più veloce di Python, come è stata calcolata questa velocità?

In realtà, ora è 68,000 volte superiore! Ma riconosciamo che si tratta solo di un singolo programma in Mandelbrot: puoi leggere una serie di tre post del blog su come ci siamo riusciti: qui, qui e qui. Naturalmente, lo facciamo da molto tempo e sappiamo che non sono i giochi ad alte prestazioni a guidare l'adozione del linguaggio (nonostante siano divertenti!): sono la velocità degli sviluppatori, l'usabilità del linguaggio, toolchain e documentazione di alta qualità e una comunità che utilizza l'infrastruttura per inventare e costruire in modi che non possiamo nemmeno immaginare. Siamo creatori di strumenti e il nostro obiettivo è consentire al mondo di utilizzare i nostri strumenti, creare prodotti straordinari e risolvere problemi importanti. Se ci concentriamo sul nostro obiettivo più ampio, è in realtà quello di creare un linguaggio che ti soddisfi dove sei oggi e poi ti elevi facilmente verso un mondo migliore. Mojo ti permette di avere un linguaggio altamente performante, usabile, staticamente tipizzato e portabile che si integra perfettamente con il tuo codice Python esistente, offrendoti il ​​meglio di entrambi i mondi. Ti consente di sfruttare la vera potenza dell'hardware con multithreading e parallelizzazione in modi che oggi il semplice Python non è in grado di offrire, consentendo alla comunità di sviluppatori globale di avere un unico linguaggio scalabile dall'alto verso il basso.

La magia di Mojo è la sua capacità di unificare i linguaggi di programmazione con un unico set di strumenti, perché è così importante?

Le lingue hanno sempre successo grazie al potere dei loro ecosistemi e delle comunità che si formano intorno a loro. Lavoriamo con le comunità open source da molto tempo e siamo incredibilmente attenti a impegnarci nel modo giusto e a garantire che facciamo bene per la comunità. Stiamo lavorando incredibilmente duramente per fornire la nostra infrastruttura, ma abbiamo bisogno di tempo per ampliare il nostro team, quindi non avremo tutte le risposte immediatamente, ma ci arriveremo. Facendo un passo indietro, il nostro obiettivo è quello di migliorare l’ecosistema Python abbracciando il tutto esistente ecosistemae non stiamo cercando di fratturarlo come tanti altri progetti. L'interoperabilità rende semplicemente più semplice per la comunità provare la nostra infrastruttura, senza dover riscrivere tutto il codice, e questo è molto importante per l'intelligenza artificiale.

Inoltre, abbiamo imparato moltissimo dallo sviluppo dell’infrastruttura e degli strumenti di intelligenza artificiale negli ultimi dieci anni. I sistemi monolitici esistenti non sono facilmente estensibili o generalizzabili al di fuori del loro target di dominio iniziale e la conseguenza è un settore di distribuzione dell’intelligenza artificiale estremamente frammentato con dozzine di toolchain che comportano diversi compromessi e limitazioni. Questi modelli di progettazione hanno rallentato il ritmo dell’innovazione essendo meno utilizzabili, meno portabili e più difficili da scalare.

Il sistema di intelligenza artificiale di prossima generazione deve essere di qualità produttiva e soddisfare gli sviluppatori ovunque si trovino. Non deve richiedere una costosa riscrittura, riprogettazione o riorganizzazione del codice utente. Deve essere nativamente multi-framework, multi-cloud e multi-hardware. Deve combinare le migliori prestazioni ed efficienza con la migliore usabilità. Questo è l’unico modo per ridurre la frammentazione e sbloccare la prossima generazione di innovazioni hardware, dati e algoritmici.

Modulare di recente ha annunciato la raccolta di 100 milioni di dollari in nuovi finanziamenti, guidato da General Catalyst e composto dagli investitori esistenti GV (Google Ventures), SV Angel, Greylock e Factory. Cosa dobbiamo aspettarci dopo?

Questo nuovo capitale verrà utilizzato principalmente per far crescere il nostro team, assumendo le persone migliori nell’infrastruttura AI e continuando a soddisfare l’enorme domanda commerciale che stiamo vedendo per la nostra piattaforma. Modverse, la nostra community di oltre 130 sviluppatori e 10 aziende, sono tutti alla ricerca della nostra infrastruttura, quindi vogliamo assicurarci di continuare a crescere e di lavorare sodo per svilupparla per loro e consegnarla loro. Manteniamo standard incredibilmente elevati e i prodotti che spediamo riflettono chi siamo come squadra e chi diventiamo come azienda. Se conosci qualcuno che è motivato, che ama i confini tra software e hardware e che vuole aiutare a vedere l'intelligenza artificiale penetrare nel mondo in modo significativo e positivo, mandacelo.

Qual è la tua visione per il futuro della programmazione?

La programmazione dovrebbe essere un’abilità che tutti nella società possono sviluppare e utilizzare. Per molti, l'"idea" di programmazione evoca immediatamente l'immagine di uno sviluppatore che scrive un codice complesso di basso livello che richiede calcoli e logica pesanti, ma non deve essere percepito in questo modo. La tecnologia è sempre stata un grande fattore di produttività per la società e, rendendo la programmazione più accessibile e utilizzabile, possiamo consentire a più persone di abbracciarla. Consentire alle persone di automatizzare i processi ripetitivi e semplificare la propria vita è un modo efficace per restituire loro più tempo.

E in Python abbiamo già un linguaggio meraviglioso che ha superato la prova del tempo – è il linguaggio più popolare al mondo, con una community incredibile – ma ha anche dei limiti. Credo che abbiamo un'enorme opportunità di renderlo ancora più potente e di incoraggiare un numero sempre maggiore di persone ad abbracciarne la bellezza e la semplicità. Come ho detto prima, si tratta di creare prodotti che divulghino progressivamente la complessità, consentendo astrazioni di alto livello, ma scalabili anche a livelli incredibilmente bassi. Stiamo già assistendo a un balzo in avanti significativo con i modelli di intelligenza artificiale che consentono traduzioni progressive da testo a codice – e queste diventeranno sempre più personalizzate nel tempo – ma dietro questa magica innovazione c'è ancora uno sviluppatore che crea e distribuisce il codice per alimentarla. Ne abbiamo scritto in passato: l’intelligenza artificiale continuerà a sbloccare la creatività e la produttività in molti linguaggi di programmazione, ma credo anche che Mojo aprirà ulteriormente l’apertura dell’ecosistema, consentendo maggiore accessibilità, scalabilità e portabilità dell’hardware a molti più sviluppatori in tutto il mondo.

Per finire, l’intelligenza artificiale penetrerà nelle nostre vite in modi indicibili ed esisterà ovunque, quindi spero che Mojo stimoli gli sviluppatori a risolvere i problemi più importanti per l’umanità più velocemente, indipendentemente da dove vivono nel nostro mondo. Penso che sia un futuro per cui vale la pena lottare.

Grazie per l'ottima intervista, i lettori che desiderano saperne di più dovrebbero visitare componibile.

Antoine è un leader visionario e socio fondatore di Unite.AI, spinto da una passione incrollabile per la definizione e la promozione del futuro dell'intelligenza artificiale e della robotica. Imprenditore seriale, ritiene che l'intelligenza artificiale sarà dirompente per la società quanto l'elettricità, e spesso viene colto a delirare sul potenziale delle tecnologie dirompenti e dell'AGI.

Come futurista, si dedica a esplorare come queste innovazioni plasmeranno il nostro mondo. Inoltre, è il fondatore di Titoli.io, una piattaforma focalizzata sugli investimenti in tecnologie all'avanguardia che stanno ridefinendo il futuro e rimodellando interi settori.