Le Grandi Modelli di Lingua Metteranno Fine alla Programmazione?

Le Grandi Tendenze della Bellezza e della Moda Metteranno Fine alla Programmazione?

La scorsa settimana è stato un traguardo significativo per OpenAI, in quanto hanno presentato GPT-4 Turbo al loro OpenAI DevDay. Una caratteristica eccezionale di GPT-4 Turbo è la finestra di contesto estesa a 128.000, un notevole balzo in avanti rispetto agli 8.000 di GPT-4. Questo miglioramento consente di elaborare il testo 16 volte maggiore rispetto al suo predecessore, equivalente a circa 300 pagine di testo.

Questo avanzamento si lega ad un altro sviluppo significativo: l’impatto potenziale sul panorama delle startup SaaS.

ChatGPT Enterprise di OpenAI, con le sue funzionalità avanzate, rappresenta una sfida per molte startup SaaS. Queste aziende, che offrono prodotti e servizi basati su ChatGPT o le sue API, si trovano ora a fare i conti con la concorrenza di uno strumento con capacità di livello enterprise. Le offerte di ChatGPT Enterprise, come la verifica del dominio, l’SSO e le informazioni sull’utilizzo, si sovrappongono direttamente a molti servizi B2B esistenti, mettendo potenzialmente a rischio la sopravvivenza di queste startup.

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

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

L’era della creazione manuale del codice sta cedendo il passo a sistemi basati sull’IA, addestrati anziché programmati, segnando un cambiamento fondamentale nello sviluppo del software.

I compiti banali della programmazione potrebbero presto essere demandati all’IA, 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’IA nella programmazione, suggerendo un futuro in cui l’IA si estende oltre l’assistenza per gestire completamente il processo di programmazione. Immagina lo scenario comune in cui un programmatore dimentica la sintassi per invertire una lista in un determinato linguaggio. Invece di cercare in forum online e articoli, CoPilot offre assistenza immediata, mantenendo il programmatore concentrato sull’obiettivo.

Transizione da Low-Code a Sviluppo Basato su IA

Gli strumenti di 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 man mano che entriamo in questa nuova ondata di IA, il panorama cambia ulteriormente. La semplicità delle interfacce utente e la capacità di generare codice attraverso comandi semplici come “Costruisci un sito web per fare X” sta rivoluzionando il processo.

L’influenza dell’IA nella programmazione è già enorme. Similmente a come i primi informatici si sono trasferiti dall’attenzione ingegneristica all’ingegneria elettrica a concetti più astratti, i futuri programmatori potrebbero considerare la codifica dettagliata obsoleta. I rapidi progressi nell’IA non si limitano alla generazione di testo/codice. In aree come la generazione di immagini, modelli diffusivi come Runway ML, DALL-E 3, mostrano notevoli miglioramenti. Basta vedere il tweet di Runway qui sotto che illustra la loro ultima funzionalità.

Oltre alla programmazione, l’impatto dell’IA sulle industrie creative sta per essere altrettanto trasformativo. Jeff Katzenberg, un titan dell’industria cinematografica e ex presidente dei Walt Disney Studios, ha previsto che l’IA ridurrà significativamente i costi di produzione dei film d’animazione. Secondo un recente articolo di Bloomberg, Katzenberg prevede una drastica riduzione del 90% dei costi. Questo può includere l’automazione di compiti intensivi come l’inbetweening nell’animazione tradizionale, la creazione di scene e persino l’assistenza ai processi creativi come la progettazione dei personaggi e la storyboard.

La convenienza economica dell’Intelligenza Artificiale nella programmazione

Analisi dei costi dell’impiego di un software engineer:

  1. Compensazione totale: Lo stipendio medio di un software engineer, inclusi i benefici aggiuntivi, nei centri tecnologici 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’impiego di un software engineer è di circa 1.200 dollari.
  2. Produzione di codice: Presumendo un’ampia stima di 100 righe di codice finalizzate, testate, esaminate e approvate al giorno, questa produzione giornaliera è 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, si stima che una riga di codice contenga 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.

Analisi comparativa:

  • Costo per riga di codice (umano vs AI): Confrontando i costi, generare 100 righe di codice al giorno costa 1.200 dollari se fatto da un software engineer umano, rispetto a soli 0,12 dollari utilizzando GPT-3.
  • Fattore di costo: Questo rappresenta una differenza di costo di circa 10.000 volte, con l’IA che risulta notevolmente più economica.

Questa analisi evidenzia il potenziale economico dell’IA nel campo della programmazione. Il basso costo del codice generato dall’IA rispetto all’elevata spesa degli sviluppatori umani suggerisce un futuro in cui l’IA potrebbe diventare il metodo preferito per la generazione di codice, specialmente per compiti standard o ripetitivi. Questo cambiamento potrebbe portare a significativi risparmi di costo per le aziende e una rivalutazione del ruolo degli sviluppatori umani, concentrandone le competenze su compiti più complessi, creativi o di supervisione che l’IA non è ancora in grado di gestire.

La versatilità di ChatGPT si estende a una varietà di contesti di programmazione, inclusa l’interazione complessa con framework di sviluppo web. Consideriamo uno scenario in cui uno sviluppatore sta lavorando con React, una popolare libreria JavaScript per la creazione di interfacce utente. Tradizionalmente, questa attività richiederebbe una ricerca approfondita nella documentazione e negli esempi forniti dalla comunità, specialmente quando si tratta di componenti complessi o gestione dello stato.

Con ChatGPT, questo processo diventa snello. Lo sviluppatore può semplicemente descrivere la funzionalità che intende implementare in React e ChatGPT fornirà frammenti di codice rilevanti e pronti all’uso. Ciò può riguardare la configurazione di una struttura di base del componente o funzionalità più avanzate come la gestione dello stato con hooks o l’integrazione con API esterne. Riducendo il tempo dedicato alla ricerca e alle prove, ChatGPT migliora l’efficienza e accelera lo sviluppo dei progetti nel contesto dello sviluppo web.

Sfide nella programmazione basata sull’IA

Mentre l’IA continua a ridefinire il panorama della programmazione, è essenziale riconoscere le limitazioni e le sfide legate alla dipendenza esclusiva dall’IA per i compiti di programmazione. Queste sfide sottolineano la necessità di un approccio equilibrato che sfrutti i punti di forza dell’IA pur riconoscendo le sue limitazioni.

  1. Qualità del codice e manutenibilità: Il codice generato dall’IA può talvolta essere prolisso o inefficiente, potenzialmente causando sfide di manutenzione. Mentre l’IA può scrivere codice funzionale, garantire che questo codice rispetti le migliori pratiche di leggibilità, efficienza e manutenibilità rimane un compito guidato dall’uomo.
  2. Debugging e gestione degli errori: I sistemi di intelligenza artificiale possono generare rapidamente del codice, ma non eccellono sempre nel debugging o nella comprensione degli errori sottili nel codice esistente. Le sfumature del debugging, specialmente in sistemi complessi e di grandi dimensioni, richiedono spesso la comprensione e l’esperienza dettagliata di un essere umano.
  3. Dipendenza dai dati di addestramento: L’efficacia dell’IA nella programmazione dipende in larga misura dalla qualità e dall’ampiezza dei dati di addestramento. Se i dati di addestramento non contengono esempi di determinati bug, pattern o scenari, la capacità dell’IA di gestire tali situazioni è compromessa.
  4. Preoccupazioni etiche e di sicurezza: Con l’IA che assume un ruolo sempre più importante nella programmazione, sorgono preoccupazioni etiche e di sicurezza, in particolare per la privacy dei dati e il potenziale per pregiudizi nel codice generato dall’IA. Garantire un uso etico e affrontare questi pregiudizi è fondamentale per lo sviluppo responsabile di strumenti di programmazione basati sull’IA.

Bilanciare IA e Abilità di Programmazione Tradizionali

In futuro, nei team di sviluppo software potrebbe emergere un modello ibrido. I product manager potrebbero tradurre i requisiti in direttive per i generatori di codice AI. La supervisione umana potrebbe comunque essere necessaria per garantire la qualità, ma l’attenzione si sposterebbe dalla scrittura e manutenzione del codice alla verifica e al perfezionamento delle uscite generate dall’IA. Questo cambio suggerisce un’attenzione in diminuzione per i principi di codifica tradizionali come la modularità e l’astrazione, poiché il codice generato dall’IA non deve aderire agli standard di manutenzione centrati sull’umanità.

In questa nuova era, il ruolo degli ingegneri e degli informatici subirà una trasformazione significativa. Collaboreranno con LLM, fornendo dati di addestramento ed esempi per completare i compiti, spostando l’attenzione dalla codifica intricata al lavoro strategico con i modelli di intelligenza artificiale.

L’unità di calcolo di base passerà dai processori tradizionali ai modelli massicci e pre-addestrati di LLM, segnando una svolta dai processi prevedibili e statici a agenti di intelligenza artificiale dinamici e adattivi.

L’attenzione sta passando dalla creazione e comprensione dei programmi alla guida dei modelli di intelligenza artificiale, ridefinendo i ruoli degli informatici e degli ingegneri e riplasmando la nostra interazione con la tecnologia.

Il Continuo Bisogno dell’Apporto Umano nel Codice Generato dall’IA

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

La convinzione che l’elaborazione del linguaggio naturale da parte dell’IA possa sostituire completamente la precisione e la complessità delle notazioni matematiche formali e della programmazione tradizionale è, nella migliore delle ipotesi, prematura. Il passaggio all’IA nella programmazione non elimina la necessità di rigore e precisione che solo la programmazione formale e le competenze matematiche possono fornire.

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

In sintesi, sebbene l’IA prometta di automatizzare molti aspetti della programmazione, l’elemento umano rimane fondamentale, soprattutto in ambiti che richiedono creatività, risoluzione complessa dei problemi e supervisione etica.