Software 2.0: il software che scrive da solo e come Kotlin sta inaugurando questa nuova ondata
“Le reti neurali rappresentano l’inizio di un cambiamento fondamentale nel modo in cui scriviamo software. Sono Software 2.0 “.
Gli attuali paradigmi di codifica spingono gli sviluppatori a scrivere codice utilizzando librerie di machine learning restrittive in grado di apprendere o programmate esplicitamente per svolgere un lavoro specifico. Ma stiamo assistendo a uno spostamento tettonico verso l’automazione anche nel reparto di codifica. Finora, il codice è stato utilizzato per automatizzare i lavori, ora c’è un requisito per il codice che può scrivere se stesso adattandosi a vari lavori. Questo è un software 2.0 dove il software scrive da solo e grazie all’apprendimento automatico; questa è ora una realtà. La programmazione differenziabili in particolare, ritiene il team di intelligenza artificiale di Facebook, è la chiave per creare strumenti che possono aiutare a costruire strumenti di machine learning.
Per abilitarlo, il team ha scelto la lingua Kotlin . Kotlin è stato sviluppato da JetBrains ed è popolare tra gli sviluppatori Android. Il suo aumento di popolarità è un secondo vicino a Swift. Kotlin ha molte somiglianze con la sintassi di Python ed è stato progettato come sostituto di Java . Nella sezione successiva, vedremo come Facebook sta aggiungendo nuove funzionalità a Kotlin in modo da creare toolkit software di prossima generazione.
Panoramica del software 2.0
Il software 1.0 o il software come lo conosciamo comprende i linguaggi usuali come Python, C ++, ecc. Il programmatore scrive istruzioni esplicite sul computer; istruzioni che dicono al computer come comportarsi. Al contrario, ha scritto Andrej Karpathy, direttore dell’IA di Tesla Motors, in uno dei suoi blog , che il Software 2.0 può essere scritto in un linguaggio molto più astratto e ostile all’uomo, come i pesi di una rete neurale. L’apprendimento automatico si inserisce perfettamente nella transizione del software 2.0 che sta avvenendo in questo momento.
Ad esempio, le applicazioni di visione artificiale, ha scritto Karpathy, richiedono funzionalità ingegnerizzate con un po ‘di apprendimento automatico e ora, con l’aiuto di grandi set di dati come ImageNet, i ricercatori hanno sviluppato tecniche che ricercano lo spazio delle stesse architetture di rete neurale, che è un’area attiva di ricerca attualmente. Quindi, è stabilito che l’intelligenza artificiale e lo sviluppo software automatizzato non possono essere separati. Inoltre, il team AI di Facebook nel tentativo di sfruttare questa capacità per creare strumenti di programmazione ML migliori che introducano il linguaggio di programmazione Kotlin nel mix.
Come viene utilizzato Kotlin
“Facebook AI sta costruendo un sistema di differenziazione automatica per la lingua Kotlin.”
Il team di FB, che incorpora i concetti di programmazione differenziabili per migliorare le capacità di Kotlin, che a sua volta può essere utilizzato per costruire nuovi toolkit. Nella programmazione differenziabili, ha affermato Facebook, il codice della libreria potrebbe essere incorporato in modelli più completi e consente inoltre agli sviluppatori di sfruttare i gradienti per ottimizzare automaticamente i programmi parametrizzati che non sono scritti utilizzando le librerie di apprendimento automatico.
La natura intuitiva della programmazione differenziabili in Kotlin consente agli sviluppatori di creare programmi flessibili e sfruttare la struttura del problema mantenendo il debug semplice.
Secondo il team di Facebook AI, Kotlin abilita il Software 2.0 attraverso:
Differenziazione automatica.
Digitazione tensoriale.
Generazione di errori in fase di compilazione per funzioni differenziabili e forme tensoriali.
Rendere disponibile una libreria che fornisce una classe Tensor e API di machine learning.
“Stiamo estendendo il compilatore Kotlin per rendere la differenziabilità una caratteristica di prima classe del linguaggio Kotlin. Il nostro lavoro consente agli sviluppatori di esplorare il Software 2.0, dove il software essenzialmente si scrive da solo. “
Facebook ha annunciato che stanno costruendo un sistema di differenziazione automatica per la lingua Kotlin. La differenziazione automatica si riferisce alla costruzione di una procedura per il calcolo dei derivati. Un sistema di differenziazione automatica seziona un dato programma nelle sue operazioni primitive (ad esempio, addizione, sottrazione ecc.) Per calcolare le derivate.
Il team di Facebook ha anche integrato il linguaggio Kotlin con le estensioni IDE IntelliJ in modo che gli sviluppatori possano ottenere feedback in tempo reale. Come mostrato sopra, una semplice rete neurale convoluzionale scritta in IntelliJ in cui lo sviluppatore può ispezionare le forme risultanti ad ogni passaggio.
Molto presto, Facebook rilascerà anche una libreria utente che racchiude i vantaggi della differenziazione automatica e in modo che gli sviluppatori possano utilizzarli indipendentemente dal framework su cui stanno lavorando.