Prompt engineering
Esplorare l’interprete di codice di ChatGPT di OpenAI: un’analisi approfondita delle sue capacità

I progressi di OpenAI nel campo dell’elaborazione del linguaggio naturale (NLP) sono segnati dall’ascesa dei Large Language Models (LLM), che sono alla base di prodotti utilizzati da milioni di persone, tra cui l’assistente di coding GitHub Copilot e il motore di ricerca Bing. Questi modelli, grazie alla loro capacità unica di memorizzare e combinare informazioni, hanno stabilito standard senza precedenti in compiti come la generazione di codice e testo.
Comprendere l’interprete di codice di ChatGPT
Per comprendere l’importanza dell’interprete di codice di ChatGPT, è essenziale capire cosa sia e come sia stato costruito.
In sostanza, l’interprete di codice di ChatGPT sfrutta le capacità di ChatGPT, ma introduce una maggiore competenza nell’analisi, interpretazione e generazione di codice in una vasta gamma di linguaggi di programmazione. Questa funzione trasforma ChatGPT da un generatore di testo in uno strumento inestimabile per gli sviluppatori, aiutandoli a comprendere il codice, a debuggarlo e persino a generarne.
Addestramento di GPT per la codifica: l’approccio Codex
Sia GitHub Copilot che l’interprete di codice di ChatGPT utilizzano il modello Codex sviluppato da OpenAI.
Codex, un modello di linguaggio GPT specializzato, è stato progettato per avere capacità di scrittura di codice Python avanzate. Addestrato su codice pubblicamente disponibile su GitHub, Codex dimostra il suo potenziale alimentando funzionalità in GitHub Copilot. Quando valutato per la sua capacità di sintetizzare programmi da docstring, una misura di correttezza funzionale, Codex supera sia GPT-3 che GPT-J.
Un’osservazione interessante è che il campionamento ripetuto aumenta la competenza di Codex. Quando vengono utilizzati fino a 100 campioni per problema, il tasso di successo del modello aumenta al 70,2%. Una tale efficienza suggerisce la possibilità di utilizzare un ranking euristico per selezionare campioni di codice accurati, senza necessità di una valutazione completa per ciascuno.
Per valutare le sue capacità, il modello è stato incaricato di creare funzioni Python autonome basate solo su docstring. La precisione del codice generato è stata quindi valutata utilizzando test unitari. In un set di dati composto da 164 problemi di programmazione originali, che include la comprensione del linguaggio, algoritmi e test di matematica di base, Codex con 12B parametri ha risolto il 28,8% di essi al primo tentativo.
Perfezionando ulteriormente il modello attraverso la fine-tuning di funzioni autonome implementate correttamente, la sua efficienza è stata aumentata, portando Codex-S a risolvere il 37,7% delle sfide al primo tentativo. Tuttavia, nel mondo reale della programmazione, un approccio trial-and-error è comune. Simulando questo scenario del mondo reale, il modello Codex-S, dato 100 possibilità, ha risolto con successo il 77,5% delle sfide.
I modelli generativi come ChatGPT che producono codice sono solitamente valutati confrontando i campioni generati con una soluzione di riferimento. Questo confronto può essere esatto o utilizzare una misura di similarità come il punteggio BLEU. Tuttavia, queste metriche basate sul confronto spesso non riescono a cogliere le sfumature della codifica. Una critica chiave del BLEU è la sua inefficacia nel catturare le caratteristiche semantiche del codice.
Invece di affidarsi solo al confronto, è stata proposta una misura più rilevante: la correttezza funzionale. Ciò significa che il codice prodotto dal modello dovrebbe superare un set di test unitari. L’idea è allineata con le pratiche di codifica standard, poiché gli sviluppatori spesso utilizzano i test unitari per valutare l’efficacia e la precisione del loro codice.
Questa metrica valuta non solo la precisione, ma anche l’utilizzabilità funzionale del codice generato.
La metrica pass@k è stata introdotta come misura di correttezza funzionale. Essenzialmente, significa che se uno qualsiasi dei “k” campioni di codice generati supera i test unitari, il problema è considerato risolto. Tuttavia, invece di utilizzarla nella sua forma diretta, viene utilizzato un estimatore non distorto per calcolare pass@k per evitare una varianza elevata.
Per valutare le capacità di codifica di ChatGPT, la ricerca ha utilizzato il set di dati HumanEval. Questo set di dati consiste in problemi Python scritti a mano, ognuno accompagnato da test unitari.
Considerando i rischi associati all’esecuzione di codice sconosciuto o non attendibile, è stato progettato un ambiente sandbox per testare il codice generato in modo sicuro. Questo ambiente ha utilizzato gVisor per emulare le risorse e creare una barriera tra il sistema host e il codice in esecuzione. Pertanto, anche se il modello produce codice dannoso, rimane contenuto e non può danneggiare l’host o la rete.
Utilizzo dell’interprete di codice di ChatGPT
ChatGPT di OpenAI ha subito numerose evoluzioni, con l’interprete di codice che si distingue come una funzione rivoluzionaria nel modello GPT-4. A differenza delle interfacce di chat tradizionali, l’interprete di codice consente agli utenti di immergersi in compiti computazionali, fondendo senza soluzione di continuità le linee tra conversazioni uomo-AI e processi computazionali.
Al suo nucleo, l’interprete di codice è simile ad avere un computer incorporato nel chatbot. Questa funzione dinamica offre agli utenti uno spazio su disco temporaneo per caricare una varietà di formati di file, dalle tipologie comuni come TXT, PDF e JPEG a quelle più specializzate come CPP, PY e SQLite. Questa ampiezza di supporto amplifica la sua versatilità in vari compiti, che sia l’elaborazione di documenti o la manipolazione di immagini.
Operando all’interno di un framework robusto e sicuro, l’interprete di codice è dotato di oltre 300 librerie preinstallate. Questo ambiente sandbox assicura la sicurezza, fornendo al contempo una notevole potenza computazionale. Interessantemente, quando richiesto, crea uno script Python in tempo reale per eseguire la richiesta dell’utente. Ad esempio, convertire un PDF basato su immagini in un formato cercabile utilizzando l’OCR; tutto ciò che l’utente deve fare è caricare il documento, e ChatGPT si occupa del resto.
Un punto di interesse è stato il limite di dimensione del file per i caricamenti. Sebbene le specifiche definitive debbano ancora essere annunciate, gli esperimenti degli utenti suggeriscono che il sistema possa elaborare efficacemente file considerevolmente più grandi di 100MB. Indipendentemente dalle dimensioni, è cruciale notare che questi file sono transitori, venendo scartati al termine della sessione di chat.
La genialità dell’interprete di codice non risiede solo nel suo potenziale tecnico, ma anche nella sua accessibilità. OpenAI offre questa funzione agli abbonati di ChatGPT Plus, che include il modello GPT-4. Pertanto, questo strumento trasformativo non è solo per l’élite tecnologica, ma sta diventando gradualmente accessibile a un pubblico più ampio.
La distinzione tra il modello ChatGPT standard e l’interprete di codice risiede nei loro paradigmi di interazione. Mentre il primo genera principalmente risposte testuali, il secondo comprende ed esegue il codice, offrendo risultati diretti. Ciò lo rende non solo un asset prezioso per i professionisti del settore, ma anche un potente strumento per coloro che non hanno conoscenze di codifica per eseguire compiti computazionali complessi.
Le capacità dell’interprete di codice di ChatGPT possono rivoluzionare diversi aspetti dello sviluppo software e della scienza dei dati:
- Generazione automatica di codice: per applicazioni software e script di analisi dei dati, dato una descrizione di alto livello, il sistema può produrre strutture di codice boilerplate o snippet di codice intricati, accelerando i processi di sviluppo e analisi dei dati.
- Revisione e convalida del codice: strumenti guidati da AI come ChatGPT possono aiutare a migliorare la qualità e la sicurezza delle basi di codice software. Inoltre, nel campo della scienza dei dati, tali strumenti possono essere strumentali nella revisione e convalida degli script di elaborazione e trasformazione dei dati, assicurando precisione ed efficienza.
- Assistenza all’analisi dei dati: per gli scienziati dei dati, l’interprete di codice di ChatGPT può aiutare a generare codice per l’esplorazione preliminare dei dati, la visualizzazione e persino test statistici di base, facilitando il flusso di lavoro di analisi dei dati.
Se sei interessato a scoprire di più sulle sfumature di ChatGPT e sulla progettazione di prompt, Unite AI offre un’analisi approfondita in ‘ChatGPT: progettazione avanzata di prompt‘.
Configurazione dell’interprete di codice di ChatGPT
L’integrazione dell’interprete di codice consente alla piattaforma di interpretare le query degli utenti, eseguirle come codice Python ed esibire i risultati in un formato di chat interattivo. Per accedere a questa funzione, gli utenti possono navigare fino alle impostazioni di ChatGPT, esplorare la sezione delle funzionalità beta e attivare l’interprete di codice.
Ciò che lo distingue è il suo meccanismo trasparente. Mentre gli utenti richiedono un compito, la piattaforma rivela ogni passaggio del viaggio di elaborazione, offrendo chiarezza su come i comandi vengono interpretati ed eseguiti. È importante notare che, per motivi di privacy e sicurezza, l’interprete di codice opera senza alcuna connessione internet.
Esplorare i benefici dell’interprete di codice di ChatGPT
Visualizzazione dei dati e analisi
ChatGPT va oltre l’ambito dei grafici tradizionali, offrendo sia rappresentazioni grafiche convenzionali che innovative. Ciò garantisce che gli utenti possano visualizzare i propri dati in formati che forniscono le informazioni più significative.
Tuttavia, non si tratta solo di visualizzare i dati grezzi. Il modello ChatGPT è abile nel processare e raffinare i dati. Sebbene potente, gli utenti dovrebbero esercitare cautela.
Gli analisti finanziari troveranno particolarmente utile la capacità dell’interprete di codice di analizzare e visualizzare i tassi di azioni. Tramite un’integrazione senza soluzione di continuità, gli utenti possono caricare set di dati e visualizzarli in vari formati. La funzione riveste importanza quando gli individui possono condurre analisi di dati complessi.
Il video seguente dimostra come l’interprete di codice di ChatGPT abbia creato un’analisi completa delle azioni TSLA.
Punti chiave:
- Le azioni di Tesla hanno affrontato la volatilità, ma hanno anche mostrato resilienza con periodi di crescita.
- I volumi di trading elevati in giorni specifici indicano un notevole interesse del mercato o reazioni a eventi chiave.
- Il rendimento annuo negativo (YTD) suggerisce che gli investitori dovrebbero analizzare sia i fattori interni dell’azienda che le condizioni di mercato esterne quando considerano investimenti futuri.
Implementazione della visione artificiale e dell’OCR
La rilevazione dei volti, una funzione essenziale nella visione artificiale, è stata affrontata con una tecnica classica: il classificatore Haar Cascade di OpenCV.
L’immagine seguente mostra l’utilizzo del classificatore Haar Cascade classico.
Il processo di estrazione del testo dalle immagini, noto come riconoscimento ottico dei caratteri (OCR), è stato realizzato senza sforzo utilizzando Tesseract, con il testo successivamente strutturato da GPT-4, migliorando la comprensibilità.
Nel video seguente, vedere come Tesseract (OCR) estrae il testo da un’immagine di certificato.
L’interprete di codice eccelle nel campo della manipolazione di video, audio e immagini. Con comandi semplici, gli utenti possono ottenere modifiche dettagliate, come la conversione di GIF in MP4 con miglioramenti specifici. Basta caricare il file, immettere le modifiche desiderate e guardare il risultato.
Libreria esterna Python all’interno del tuo interprete di codice di ChatGPT
L’interprete di codice di ChatGPT è una piattaforma di programmazione dinamica dotata di un’ampia gamma di librerie Python. Queste coprono tutto, dalla visualizzazione dei dati con Seaborn all’apprendimento automatico avanzato tramite Torch. Ma non si tratta solo di un set di strumenti statici.
Ispirato a questa pagina ChatGPT di Korakot Chaovavanich.
Iniziando con l’ultima versione di nltk, abbiamo caricato un file .whl nell’interprete. Abbiamo quindi istruito ChatGPT a localizzare la directory dei site-packages adatta analizzando la posizione di un pacchetto esistente. Il passo successivo ha comportato lo scaricare il file wheel in una posizione temporanea e spostare i file nella directory dei site-packages identificata. Tuttavia, questo ha incontrato un ostacolo.
Cercando una soluzione, abbiamo richiesto: “Assicurati che NLTK venga installato nell’ambiente Python e sia accessibile dopo l’installazione”.
ChatGPT ha risposto, fornendo una soluzione. Ha suggerito di aggiungere la directory temporanea a sys.path, consentendo a Python di identificare e recuperare i moduli dal pacchetto nltk scaricato all’interno di quella posizione. Questa tattica ha funzionato meraviglie, portando all’installazione riuscita di NLTK.
Attraverso l’utilizzo di file .whl, l’installazione ha mostrato un mix di ingegno e adattabilità. L’interprete di codice di ChatGPT, nonostante le sfide iniziali, ha manifestato la sua versatilità e il suo impegno nel soddisfare le esigenze dei coder, garantendo sia ai principianti che ai veterani un’esperienza di codifica raffinata.
In una dimostrazione affascinante delle capacità dell’interprete, un tweet recente di @DominikPeters ha messo in luce una dimostrazione unica. Peters ha richiesto a GPT-4 di generare un quiz sui quartieri di Parigi, e il modello ha consegnato un sito web funzionante. Il quiz funzionante è disponibile per un’esperienza pratica su dominik-peters.de/gpt-arrondissement-quiz/.
https://twitter.com/DominikPeters/status/1652630445639467008?s=20
Riepilogo
La svolta di OpenAI con l’interprete di codice di ChatGPT è nulla di meno che trasformativa per gli sviluppatori e gli appassionati di tecnologia. La sua versatilità nel gestire una vasta gamma di compiti – dall’aiutare gli sviluppatori nella debug fino a generare quiz parigini con facilità – è una testimonianza del potenziale illimitato dell’AI nel migliorare le nostre esperienze digitali. Ecco l’essenza distillata della nostra analisi approfondita:
Conosci il tuo strumento: proprio come ti farebbe amico un collega, familiarizzati con l’interprete di codice. È costruito sopra Codex, che è stato perfezionato a partire da GPT-4. La sua competenza si estende su più linguaggi di programmazione, rendendolo un compagno ideale per tutte le tue avventure di codifica.
Abbraccia la rivoluzione dell’AI: le pratiche di codifica tradizionali stanno per subire un cambiamento epocale. Con strumenti guidati da AI come l’interprete di codice di ChatGPT, compiti come l’identificazione dei bug, la generazione di codice e persino la revisione del codice possono essere accelerati.
Oltre il codice: l’interprete di codice non si limita al testo o al codice. La sua capacità di gestire più formati di file, dalle semplici tipologie come TXT e PDF a script PY complessi, sottolinea la sua utilità in vari ambiti.
Mai smettere di sperimentare: la nostra esplorazione con l’installazione della libreria NLTK riflette l’importanza della persistenza e dell’adattabilità, valori che l’interprete di codice incarna. Se c’è un ostacolo, c’è spesso un modo per superarlo.
Unisciti alla conversazione sull’AI: le applicazioni nel mondo reale, come il quiz sui quartieri di Parigi, sottolineano l’enorme utilità pratica dello strumento. Abbraccialo, esploralo e lascia che amplifichi i tuoi progetti.
Il video sopra è stato realizzato con Gen-2 e Midjourney.
In sintesi, l’interprete di codice di ChatGPT è più di uno strumento; sta cambiando il modo in cui interagiamo con la tecnologia. Per gli innovatori e gli appassionati, promette un mondo pieno di potenziale di codifica.






















