Modelli e piattaforme di IA

Le Large Language Model metteranno fine alla programmazione?

mm
Aggiungi Unite.AI alle tue fonti preferite su Google

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

Questo progresso si collega 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 basati su ChatGPT o sulle sue 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 è stato 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 la sicurezza e la privacy avanzate, l’accesso ad alta velocità a GPT-4 e le finestre di contesto estese per input più lunghi. Le sue capacità di analisi dei dati avanzate, le opzioni di personalizzazione e la rimozione dei limiti di utilizzo lo rendono una scelta superiore rispetto ai suoi predecessori. La sua capacità di elaborare input più lunghi e file, insieme all’accesso illimitato a strumenti di analisi dei dati avanzati come il precedentemente noto Code Interpreter, rafforza ulteriormente il suo appeal, soprattutto tra le aziende che in precedenza erano esitanti 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.

Le mansioni più comuni della programmazione potrebbero presto essere affidate all’AI, riducendo la necessità di competenze di coding approfondite. Strumenti come GitHub’s CoPilot e Replit’s Ghostwriter, che assistono nella codifica, sono indicatori precoci del ruolo sempre più importante dell’AI nella programmazione, suggerendo un futuro in cui l’AI si estende oltre l’assistenza per gestire completamente il processo di programmazione. Immaginate uno scenario comune in cui un programmatore dimentica la sintassi per invertire una lista in un determinato linguaggio. Invece di cercare online attraverso forum e articoli, CoPilot offre assistenza immediata, mantenendo il programmatore concentrato sull’obiettivo.

Passaggio da Low-Code ad Sviluppo Guidato da AI

Gli strumenti Low-Code e 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 scienziati 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 sua ultima funzionalità.

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

L’impatto dell’AI sulle industrie creative sarà altrettanto trasformativo. Jeff Katzenberg, un titano dell’industria cinematografica e ex presidente di Walt Disney (DIS ) 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ò potrebbe includere l’automatizzazione di compiti laboriosi come l’inserimento di fotogrammi intermedi nell’animazione tradizionale, il rendering di scene e anche l’assistenza con processi creativi come la progettazione dei personaggi e la creazione di storyboards.

L’Efficienza Economica dell’AI nella Codifica

Analisi dei Costi di Assunzione di un Ingegnere del Software:

  1. Compensazione Totale: Lo stipendio medio per un ingegnere del software, compresi i benefici aggiuntivi nelle aree 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 per assumere un ingegnere del software è di circa 1.200 dollari.
  2. Output di 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 di 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 differenza di costo di circa 10.000 volte, con l’AI sostanzialmente più economica.

Questa analisi evidenzia il potenziale economico 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 di codice, soprattutto per attività standard o ripetitive. Ciò potrebbe portare a risparmi significativi per le aziende e a una riconsiderazione del ruolo degli sviluppatori umani, concentrandosi probabilmente su compiti più complessi, creativi o di supervisione che l’AI non può ancora gestire.

La versatilità di ChatGPT si estende a vari contesti di programmazione, inclusi interazioni complesse con framework di sviluppo web. Considerate uno scenario in cui uno sviluppatore lavora 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 trattava di componenti intricati o gestione dello stato.

Con ChatGPT, questo processo diventa più fluido. Lo sviluppatore può semplicemente descrivere la funzionalità che desidera implementare in React, e ChatGPT fornisce snippet di codice pertinenti e pronti all’uso. Ciò potrebbe variare 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 da 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 riconoscendone i limiti.

  1. Qualità e Manutenibilità del Codice: Il codice generato dall’AI può talvolta essere verboso o inefficiente, portando potenzialmente a sfide di manutenzione. Sebbene l’AI possa scrivere codice funzionale, garantire che questo codice aderisca alle migliori pratiche per la leggibilità, l’efficienza e la manutenibilità rimane un compito guidato dagli esseri umani.
  2. Debug 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, richiedono spesso una comprensione e un’esperienza umana sfumate.
  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 possibilità di pregiudizi nel codice generato dall’AI. Garantire l’uso etico e affrontare questi pregiudizi è cruciale per lo sviluppo responsabile di strumenti di programmazione guidati da AI.

Bilanciare AI e Competenze di Programmazione Tradizionali

Nei team di sviluppo del software del futuro potrebbe emergere un modello ibrido. I manager di prodotto potrebbero tradurre i requisiti in direttive per i generatori di codice AI. La supervisione umana potrebbe ancora essere necessaria per l’assicurazione della qualità, ma l’attenzione si sposterebbe dalla scrittura e dalla manutenzione del codice alla verifica e alla regolazione dei output generati dall’AI. Questo cambiamento suggerisce una diminuzione dell’enfasi sui principi di programmazione 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 scienziati 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 di AI.

L’unità di calcolo di base si sposterà dai processori tradizionali ai modelli di linguaggio pre-addestrati su larga scala, segnando un passaggio da processi prevedibili e statici ad agenti di AI dinamici e adattivi.

L’attenzione si sta spostando dalla creazione e dalla comprensione dei programmi alla guida dei modelli di AI, ridefinendo i ruoli degli scienziati informatici e degli ingegneri e plasmando la nostra interazione con la tecnologia.

La Necessità Continua di Intuito Umano 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 convinzione 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 verso l’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 su 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, particolarmente in aree che richiedono creatività, risoluzione di problemi complessi e supervisione etica.

Ho trascorso gli ultimi cinque anni immergendomi nel mondo affascinante 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à in corso mi ha anche portato verso l'elaborazione del linguaggio naturale, un campo che sono ansioso di esplorare ulteriormente.