Oracle ha presentato proprio ieri la sua piattaforma Code Assist che utilizza LLM (Large Language Models) ottimizzati per creare codice di programmazione e aiutare gli sviluppatori a essere più produttivi, garantendo la massima qualità dei risultati. Anche GitHub Copilot Workspace si prefigge come obiettivo quello di migliorare i flussi di lavoro legati allo sviluppo software, sfruttando i benefici dell’intelligenza artificiale generativa.
IBM, un’altra delle realtà che sta pesantemente investendo sull’IA in ambito business, ha appena presentato i suoi modelli generativi Granite, rilasciandone pubblicamente il sorgente su GitHub. Nel complesso, questi strumenti si prefiggono come obiettivo primario quello di affrontare le sfide, con mille sfaccettature, che contraddistinguono la programmazione informatica.
Cos’è la famiglia di modelli IBM Granite e quali sono le loro caratteristiche
Al centro di Granite vi è un’architettura sofisticata, capace di offrire modelli con un numero di parametri compreso tra 3 e 34 miliardi (3B-34B): l’obiettivo è adattare la piattaforma a ciascuno specifico caso d’uso. Sia che si tratti della generazione di codice di base o di attività di ottimizzazione su insiemi di istruzioni complessi, i modelli generativi IBM si mostrano estremamente versatili.
Sì, perché scrivere, testare, debuggare e distribuire software affidabile rimane un compito arduo. Anche lo sviluppatore più esperto, si trova spesso a cercare consigli e “vie di uscita”: i linguaggi di programmazione sono costantemente oggetto di aggiornamento e nuovi modi di sviluppare prendono via via piede.
I LLM (Large Language Models) addestrati a partire da volumi importanti di codice di programmazione, stanno rivoluzionando il processo di sviluppo del software. Sempre più LLM sono integrati negli ambienti di sviluppo, al fine di migliorare la produttività di ogni programmatore mentre speciali agent, governati dall’intelligenza artificiale, aiutano a gestire compiti complessi.
Sfruttare appieno l’enorme potenziale dei LLM nell’ambito del coding, significa combinare la generazione di codice, la correzione di bug, la spiegazione e la documentazione del codice, la manutenzione dei repository e altro ancora.
I portavoce di IBM raccontano che l’azienda ha cercato (e individuato) modalità per rendere gli sviluppatori più produttivi, facendo loro spendere meno tempo per capire perché il codice non funziona oppure, ad esempio, come mettere in comunicazione codice legacy (sviluppato anni prima) con le applicazioni più moderne. Granite si inserisce proprio in questo solco, con i modelli che sono stati addestrati utilizzando codice sviluppato in 116 linguaggi di programmazione diversi.
Cosa consentono di fare i modelli Granite
Per molti sviluppatori, scrivere codice non è effettivamente ciò che occupa la maggior parte del loro tempo. Attività molto più gravose e delicate sono il testing del codice sviluppato, assicurandosi che tutto funzioni come previsto e, ad esempio, l’individuazione e la correzione di eventuali bug.
Con gli strumenti costruiti usando i modelli IBM Granite, professionisti e aziende possono avvalersi di un vantaggio competitivo non indifferente.
Molte delle altre attività quotidiane che fanno parte della giornata di uno sviluppatore – dalla generazione di test unitari, alla scrittura di documentazione, all’esecuzione di test di vulnerabilità – possono essere automatizzate con i modelli di IBM. L’IA può inoltre analizzare il codice, spiegare perché non si comporta nel modo atteso e fornire indicazioni per la risoluzione del problema.
Secondo IBM, i modelli Granite aiutano a modernizzare applicazioni mission-critical che devono rimanere sicure, resilienti e, soprattutto, sempre disponibili online.
Facendo leva sui meccanismi alla base di Granite, gli sviluppatori possono ad esempio convertire vecchio codice COBOL in altri linguaggi più moderni, come Java. È uno dei punti sui quali, negli ultimi anni, IBM si è maggiormente concentrata.
Prestazioni ai massimi livelli
Secondo i tecnici IBM, Granite si mette in evidenza per le prestazioni ai massimi livelli che è in grado di esprimere. Big Blue “certifica” che le prestazioni di Granite possono superare alcuni modelli caratterizzati dal doppio delle dimensioni, come Code Llama.
Le valutazioni di IBM mettono inoltre in evidenza che se alcuni modelli di terze parti possono performare leggermente meglio in alcuni compiti, come nella generazione di codice, nessun modello riuscirebbe ad oggi a ricalcare le prestazioni di Granite nelle attività combinate di generazione, correzione e spiegazione del codice. Il comportamento riguarda l’elaborazione di codice nei principali linguaggi, compresi Python, JavaScript, Java, Go, C++, e Rust.
Gli ingegneri tendono inoltre a sottolineare come la “miscela” delle fonti attendibili utilizzate per addestrare Granite, sia un vero e proprio punto di forza.
Il futuro dell’IA generativo nell’ambito dello sviluppo software
L’alba dello sviluppo software guidato dall’IA si avvicina, racconta IBM, che si trova oggi in prima linea. Consegna infatti alla comunità un set di modelli avanzati sui quali si possono costruire innumerevoli progetti.
“Siamo entusiasti di vedere cosa verrà costruito con questi modelli, che siano nuovi strumenti di generazione del codice, software di editing all’avanguardia o qualsiasi altra cosa stia nel mezzo“, si legge nella nota pubblicata dall’azienda.
IBM tiene comunque a precisare che Granite è “un assaggio” di ciò che arriverà prossimamente: nelle settimane a venire, la società condividerà ulteriori informazioni su altri modelli che contribuiranno a plasmare il futuro dell’informatica.
Nel frattempo, i modelli Granite possono essere scaricati da GitHub mentre HuggingFace è la piattaforma che ne permette il testing.
Le immagini nell’articolo sono tratte dal post di IBM.