Per lavorare con i modelli generativi e, in generale, per programmare le intelligenze artificiali, il linguaggio di programmazione fino ad oggi utilizzato come punto di riferimento è Python.
Python è il linguaggio di riferimento per lo sviluppo delle intelligenze artificiali grazie alla sua semplicità, alle prestazioni elevate, alla vasta gamma di librerie e framework disponibili, alla comunità attiva. È infatti contraddistinto da una sintassi semplice e intuitiva; tra gli oggetti software che facilitano lo sviluppo delle intelligenze artificiali ci sono NumPy, TensorFlow, Keras, PyTorch e molti altri.
Trattandosi di un linguaggio interpretato, Python è meno performante rispetto a C++ o Java ma viene comunque utilizzato per lo sviluppo delle intelligenze artificiali grazie alle librerie specializzate e alle tecnologie di accelerazione hardware (GPU).
Python presenta però anche problemi di scalabilità: non sostiene carichi di lavoro particolarmente impegnativi e non è quindi adatto a funzionare su dispositivi edge. La distribuzione delle intelligenze artificiali in fase di produzione avviene infatti con altri linguaggi come C++ e CUDA.
Cos’è CUDA
CUDA (Compute Unified Device Architecture) è un modello di programmazione sviluppato da NVIDIA per l’elaborazione parallela su GPU. Consente agli sviluppatori di scrivere programmi capaci di far leva sulla potenza di calcolo dei processori grafici al fine di eseguire codice ad alta velocità. Il linguaggio CUDA si basa sulla sintassi del linguaggio di programmazione C, ma aggiunge funzionalità specifiche per l’elaborazione parallela, include un set di librerie e strumenti di sviluppo come il compilatore CUDA, il toolkit CUDA e la libreria cuDNN (CUDA Deep Neural Network) che semplificano il processo di sviluppo di applicazioni a elevate prestazioni.
Secondo Modular, che ha appena rilasciato la versione finale del nuovo linguaggio di programmazione Mojo, l’attuale panorama software per lo sviluppo delle intelligenze artificiali è così frammentato da ridurre significativamente la produttività dei programmatori e rallentare il processo che va dalla ricerca alla produzione.
Mojo: nuovo linguaggio per programmare le intelligenze artificiali
Mojo combina l’usabilità di Python con le prestazioni di C e aggiunge nuove abilità per scalare le applicazioni e gestirle al meglio attraverso gli acceleratori AI. Ciò sblocca nuove possibilità e opportunità senza mettere da parte le caratteristiche più apprezzate del linguaggio Python.
Mojo si basa su tecnologie di compilazione di nuova generazione che conducono a significativi miglioramenti delle prestazioni quando si aggiungono tipi ai programmi, permette di definire astrazioni a costo zero, di beneficiare della sicurezza della memoria con un approccio simile a quello adottato da Rust.
Il linguaggio di sviluppo proposto da Modular consente l’accesso al threading, a funzionalità hardware di basso livello come estensioni TensorCore e AMX, all’utilizzo degli acceleratori. In termini di performance, Mojo è descritto come fino a 68.000 volte più veloce rispetto a Python quando esegue algoritmi numerici perché in grado di sfruttare appieno l’hardware disponibile.
Come effettuare il download di Mojo
A partire da settembre 2023, Mojo diventa disponibile per il download locale e l’installazione sui propri sistemi. Basta effettuare una semplice registrazione da questa pagina. Si parte con la versione dedicata alle macchine Linux per poi estendere in futuro la compatibilità ai sistemi Windows e macOS.
Mentre Mojo Playground fornisce una semplice introduzione al linguaggio, gli strumenti di Mojo eseguibili in locale consentono agli sviluppatori di realizzare applicazioni basate sull’intelligenza artificiale senza alcuna limitazione.
La “cassetta degli attrezzi” Mojo include tutto il necessario per sviluppare facilmente le proprie applicazioni evolute:
- driver mojo: fornisce una shell e consente di creare ed eseguire programmi Mojo, pacchettizzare moduli Mojo, generare documenti e formattare il codice.
- Estensione per Visual Studio Code (VS Code) : supporta varie funzionalità di produttività come l’evidenziazione della sintassi, il completamento del codice e altro ancora.
- Kernel Jupyter: supporta la creazione e l’esecuzione dei “notebook Mojo”, incluso il codice Python.
- Supporto per il debug: dà modo al programmatore di verificare il flusso dei programmi Mojo durante la loro esecuzione.
La versione iniziale dell’SDK Mojo supporta i sistemi x86/Linux: gli sviluppatori confermano tuttavia che con il rilascio dei prossimi aggiornamenti sarà estesa non soltanto la lista dei sistemi operativi compatibili ma anche quella dell’hardware.