Connect with us

Finiranno i grandi modelli linguistici la programmazione?

Intelligenza artificiale

Finiranno i grandi modelli linguistici la programmazione?

mm
LLM replacing human programmers

La scorsa settimana ha segnato un importante traguardo per OpenAI, poiché hanno presentato GPT-4 Turbo alla loro OpenAI DevDay. Una caratteristica spiccatamente di GPT-4 Turbo è la sua finestra di contesto estesa di 128.000, un notevole balzo rispetto ai 8.000 di GPT-4. Questo miglioramento consente l’elaborazione di testi 16 volte più grandi del suo predecessore, equivalenti a circa 300 pagine di testo.

Questo progresso si lega a un’altra importante sviluppo: l’impatto potenziale sul panorama delle startup SaaS.

OpenAI’s ChatGPT Enterprise, con le sue funzionalità avanzate, rappresenta una sfida per molte startup SaaS. Queste aziende, che hanno offerto prodotti e servizi intorno a ChatGPT o ai suoi API, ora affrontano la concorrenza di uno strumento con capacità aziendali. Le offerte di ChatGPT Enterprise, come la verifica del dominio, SSO e informazioni sull’utilizzo, si sovrappongono direttamente con molti servizi B2B esistenti, potenzialmente mettendo in pericolo la sopravvivenza di queste startup.

Nel suo discorso di apertura, il CEO di OpenAI Sam Altman ha rivelato un altro importante sviluppo: l’estensione della conoscenza di GPT-4 Turbo. A differenza di GPT-4, che aveva informazioni solo fino al 2021, GPT-4 Turbo è aggiornato con conoscenze fino ad aprile 2023, segnando un passo significativo in avanti nella rilevanza e nell’applicabilità dell’AI.

ChatGPT Enterprise si distingue per funzionalità come sicurezza e privacy avanzate, accesso ad alta velocità a GPT-4 e finestre di contesto estese per input più lunghi. Le sue capacità di analisi dei dati avanzate, opzioni di personalizzazione e rimozione dei limiti di utilizzo lo rendono una scelta superiore ai suoi predecessori. La sua capacità di elaborare input e file più lunghi, insieme all’accesso illimitato a strumenti di analisi dei dati avanzati come il noto Code Interpreter, rafforza ulteriormente il suo fascino, soprattutto tra le aziende che in precedenza esitavano a causa delle preoccupazioni relative alla sicurezza dei dati.

L’era della creazione manuale del codice sta cedendo il passo a sistemi guidati dall’AI, addestrati invece di programmato, segnando un cambiamento fondamentale nello sviluppo del software.

I compiti monotoni della programmazione potrebbero presto essere affidati all’AI, riducendo la necessità di una profonda competenza nella codifica. Strumenti come GitHub’s CoPilot e Replit’s Ghostwriter, che assistono nella codifica, sono indicatori precoci del ruolo in espansione dell’AI nella programmazione, suggerendo un futuro in cui l’AI si estende oltre l’assistenza per gestire interamente il processo di programmazione. Immagina uno scenario comune in cui un programmatore dimentica la sintassi per invertire una lista in un determinato linguaggio. Invece di una ricerca attraverso forum e articoli online, CoPilot offre un’assistenza immediata, mantenendo il programmatore concentrato sull’obiettivo.

Transizione da Low-Code a Sviluppo Guidato dall’AI

Gli strumenti Low-Code & No Code hanno semplificato il processo di programmazione, automatizzando la creazione di blocchi di codice di base e liberando gli sviluppatori per concentrarsi sugli aspetti creativi dei loro progetti. Ma mentre entriamo in questa nuova ondata di AI, il panorama cambia ulteriormente. La semplicità delle interfacce utente e la capacità di generare codice attraverso comandi semplici come “Crea un sito web per fare X” stanno rivoluzionando il processo.

L’influenza dell’AI nella programmazione è già enorme. Allo stesso modo in cui i primi informatici sono passati da un focus sull’ingegneria elettrica a concetti più astratti, i futuri programmatori potrebbero considerare la codifica dettagliata come obsoleta. I rapidi progressi nell’AI, non sono limitati alla generazione di testo/codice. In aree come la generazione di immagini, modelli di diffusione come Runway ML, DALL-E 3, mostrano miglioramenti massicci. Basta vedere il tweet di seguito di Runway che mostra la loro ultima funzionalità.

https://twitter.com/runwayml/status/1723033256067489937

Estendendosi oltre la programmazione, l’impatto dell’AI sui settori creativi è destinato a essere altrettanto trasformativo. Jeff Katzenberg, un titano nell’industria cinematografica e ex presidente di Walt Disney Studios, ha previsto che l’AI ridurrà notevolmente i costi di produzione dei film d’animazione. Secondo un recente articolo di Bloomberg Katzenberg prevede una riduzione dei costi del 90%. Ciò può includere l’automatizzazione di compiti laboriosi come l’in-betweening nell’animazione tradizionale, il rendering di scene e anche l’assistenza con processi creativi come la progettazione dei personaggi e la creazione di storie.

Efficienza dei Costi dell’AI nella Codifica

Analisi dei Costi dell’Assunzione di un Ingegnere del Software:

  1. Compensazione Totale: La retribuzione media per un ingegnere del software, compresi i benefici aggiuntivi nelle hub tecnologiche come Silicon Valley o Seattle, è di circa 312.000 dollari all’anno.

Analisi dei Costi Giornalieri:

  1. Giorni Lavorativi all’Anno: Considerando che ci sono circa 260 giorni lavorativi in un anno, il costo giornaliero dell’assunzione di un ingegnere del software è di circa 1.200 dollari.
  2. Output del Codice: Supponendo una stima generosa di 100 righe di codice finalizzate, testate, revisionate e approvate al giorno, questo output giornaliero è la base per il confronto.

Analisi dei Costi dell’Utilizzo di GPT-3 per la Generazione del Codice:

  1. Costo dei Token: Il costo dell’utilizzo di GPT-3, al momento del video, era di circa 0,02 dollari per ogni 1.000 token.
  2. Token per Riga di Codice: In media, una riga di codice può essere stimata a contenere circa 10 token.
  3. Costo per 100 Righe di Codice: Pertanto, il costo per generare 100 righe di codice (o 1.000 token) utilizzando GPT-3 sarebbe di circa 0,12 dollari.

Confronto:

  • Costo per Riga di Codice (Umano vs. AI): Confrontando i costi, la generazione di 100 righe di codice al giorno costa 1.200 dollari quando eseguita da un ingegnere del software umano, rispetto a soli 0,12 dollari utilizzando GPT-3.
  • Fattore di Costo: Ciò rappresenta un fattore di costo di circa 10.000 volte, con l’AI che è sostanzialmente più economica.

Questa analisi punta alla potenziale economicità dell’AI nel campo della programmazione. Il basso costo del codice generato dall’AI rispetto al costo elevato degli sviluppatori umani suggerisce un futuro in cui l’AI potrebbe diventare il metodo preferito per la generazione del codice, specialmente per compiti standard o ripetitivi. Ciò potrebbe portare a risparmi significativi per le aziende e a una rivalutazione del ruolo dei programmatori umani, potenzialmente focalizzando le loro competenze su compiti più complessi, creativi o di supervisione che l’AI non può ancora gestire.

La flessibilità di ChatGPT si estende a una varietà di contesti di programmazione, comprese interazioni complesse con framework di sviluppo web. Considera uno scenario in cui uno sviluppatore sta lavorando con React, una popolare libreria JavaScript per la costruzione di interfacce utente. Tradizionalmente, questo compito avrebbe comportato l’immersione nella documentazione estensiva e negli esempi forniti dalla comunità, specialmente quando si tratta di componenti intricati o gestione dello stato.

Con ChatGPT, questo processo diventa più fluido. Lo sviluppatore può semplicemente descrivere la funzionalità che intende implementare in React, e ChatGPT fornisce snippet di codice pertinenti e pronti all’uso. Ciò potrebbe andare dall’impostazione di una struttura di componente di base a funzionalità più avanzate come la gestione dello stato con hook o l’integrazione con API esterne. Riducendo il tempo speso nella ricerca e nella sperimentazione, ChatGPT migliora l’efficienza e accelera lo sviluppo del progetto nei contesti di sviluppo web.

Sfide nella Programmazione Guidata dall’AI

Mentre l’AI continua a ridisegnare il panorama della programmazione, è essenziale riconoscere le limitazioni e le sfide che derivano dal affidarsi esclusivamente all’AI per i compiti di programmazione. Queste sfide sottolineano la necessità di un approccio equilibrato che sfrutti i punti di forza dell’AI, riconoscendo al contempo le sue limitazioni.

  1. Qualità e Manutenibilità del Codice: Il codice generato dall’AI può talvolta essere verboso o inefficiente, potenzialmente portando a sfide di manutenzione. Sebbene l’AI possa scrivere codice funzionale, assicurarsi che questo codice aderisca alle migliori pratiche per la leggibilità, l’efficienza e la manutenibilità rimane un compito guidato dall’uomo.
  2. Debugging e Gestione degli Errori: I sistemi AI possono generare codice rapidamente, ma non sempre eccellono nel debugging o nella comprensione di errori sottili nel codice esistente. Le sfumature del debugging, particolarmente in sistemi grandi e complessi, spesso richiedono una comprensione e un’esperienza umana sfumata.
  3. Dipendenza dai Dati di Addestramento: L’efficacia dell’AI nella programmazione dipende in larga misura dalla qualità e dall’ampiezza dei suoi dati di addestramento. Se i dati di addestramento mancano di esempi di determinati bug, pattern o scenari, la capacità dell’AI di gestire queste situazioni è compromessa.
  4. Preoccupazioni Etiche e di Sicurezza: Con l’AI che assume un ruolo più prominente nella codifica, sorgono preoccupazioni etiche e di sicurezza, specialmente intorno alla privacy dei dati e alla potenziale presenza di pregiudizi nel codice generato dall’AI. Assicurarsi di utilizzare l’AI in modo responsabile e affrontare questi pregiudizi è cruciale per lo sviluppo responsabile di strumenti di programmazione guidati dall’AI.

Bilanciare le Competenze dell’AI e della Programmazione Tradizionale

Nelle future squadre di sviluppo del software potrebbe emergere un modello ibrido. I responsabili del prodotto potrebbero tradurre i requisiti in direttive per i generatori di codice AI. La supervisione umana potrebbe ancora essere necessaria per il controllo di qualità, ma l’attenzione si sposterebbe dalla scrittura e manutenzione del codice alla verifica e alla regolazione dei output generati dall’AI. Questo cambiamento suggerisce una diminuzione dell’enfasi sui principi di codifica tradizionali come la modularità e l’astrazione, poiché il codice generato dall’AI non deve necessariamente aderire agli standard di manutenzione umana.

In questa nuova era, il ruolo degli ingegneri e degli informatici si trasformerà notevolmente. Interagiranno con i modelli di linguaggio, fornendo dati di addestramento e esempi per raggiungere compiti, spostando l’attenzione dalla codifica intricata al lavoro strategico con i modelli AI.

L’unità di calcolo di base si sposterà dai tradizionali processori ai massicci modelli di linguaggio pre-addestrati, segnando una partenza dai processi statici e prevedibili agli agenti AI dinamici e adattivi.

L’attenzione si sta spostando dalla creazione e comprensione dei programmi alla guida dei modelli di intelligenza che guideranno il nostro mondo tecnologico.

La Continua Necessità di Intuizione Umana nel Codice Generato dall’AI

Il futuro della programmazione è meno sulla codifica e più sulla direzione dell’intelligenza che guiderà il nostro mondo tecnologico.

La credenza che l’elaborazione del linguaggio naturale dell’AI possa completamente sostituire la precisione e la complessità delle notazioni matematiche formali e della programmazione tradizionale è, nel migliore dei casi, prematura. Il passaggio all’AI nella programmazione non elimina la necessità della rigore e della precisione che solo la programmazione formale e le competenze matematiche possono fornire.

Inoltre, la sfida di testare il codice generato dall’AI per problemi che non sono stati risolti in precedenza rimane significativa. Tecniche come il testing basato sulle proprietà richiedono una profonda comprensione della programmazione, competenze che l’AI, nel suo stato attuale, non può replicare o sostituire.

In sintesi, mentre l’AI promette di automatizzare molti aspetti della programmazione, l’elemento umano rimane cruciale, specialmente in aree che richiedono creatività, risoluzione di problemi complessi e supervisione etica.

Ho trascorso gli ultimi cinque anni immergendomi nel fascinante mondo del Machine Learning e del Deep Learning. La mia passione e la mia esperienza mi hanno portato a contribuire a oltre 50 progetti di ingegneria del software diversi, con un focus particolare su AI/ML. La mia curiosità continua mi ha anche portato verso l'elaborazione del linguaggio naturale, un campo che sono ansioso di esplorare ulteriormente.