Prompt engineering
Utforska OpenAIs ChatGPT Code Interpreter: En djupdykning i dess förmågor

OpenAIs framsteg inom Natural Language Processing (NLP) markerades av uppkomsten av Large Language Models (LLM), som ligger till grund för produkter som används av miljontals människor, inklusive kodhjälpen GitHub Copilot och sökmotorn Bing. Dessa modeller har, genom sin unika förmåga att komma ihåg och kombinera information, satt oöverträffade benchmarkresultat i uppgifter som kod- och textgenerering.
Att förstå ChatGPT:s Code Interpreter
För att förstå betydelsen av ChatGPT Code Interpreter är det viktigt att först förstå vad det är och hur det byggdes.
I själva verket utnyttjar ChatGPT Code Interpreter ChatGPT:s förmågor men introducerar en förbättrad förmåga att förstå, tolka och till och med generera kod i en mängd olika programmeringsspråk. Denna funktion förvandlar ChatGPT från en textgenerator till ett ovärderligt verktyg för utvecklare, som hjälper till med kodförståelse, felsökning och till och med kodgenerering.
Träning av GPT för kodning: Codex-ansatsen
Både GitHub Copilot och ChatGPT:s Code Interpreter använder Codex-modellen som utvecklats av OpenAI.
Codex, en specialiserad GPT-språkmodell, är konstruerad för att ha avancerad Python-kodskrivningsförmåga. Tränad på offentligt tillgänglig kod från GitHub, visar Codex sin potential genom att driva funktioner i GitHub Copilot. När den utvärderas för sin förmåga att syntetisera program från docstrings, en måttstock för funktionell korrekthet, överträffar Codex både GPT-3 och GPT-J.
En anmärkningsvärd observation är att upprepad sampling förbättrar Codex förmåga. När upp till 100 prover per problem används, ökar modellens framgångsgrad till 70,2%. Sådan effektivitet antyder möjligheten att använda heuristisk rangordning för att välja korrekta kodexempel, utan att behöva fullständig utvärdering för varje.
För att utvärdera dess förmågor, fick modellen i uppgift att skapa fristående Python-funktioner baserat enbart på docstrings. Den genererade koden korrekthet utvärderades sedan med enhetstester. I en dataset som bestod av 164 ursprungliga programmeringsproblem, som inkluderar språkförståelse, algoritmer och grundläggande matematiktester, löste Codex med 12B parametrar 28,8% av dem på ett enda försök.
Genom att finslipa modellen ytterligare genom finjustering av korrekt implementerade fristående funktioner, förbättrades dess effektivitet, vilket resulterade i att Codex-S löste 37,7% av utmaningarna på första försöket. I den praktiska världen av programmering är en trial-and-error-ansats vanlig. I enlighet med denna verkliga scenarie, löste Codex-S-modellen, när den gavs 100 chanser, 77,5% av utmaningarna.
Generativa modeller som ChatGPT som producerar kod utvärderas vanligtvis genom att jämföra genererade prover med en referenslösning. Denna jämförelse kan antingen vara exakt eller använda en likhetsmått som BLEU-poängen. Men dessa matchbaserade mått misslyckas ofta med att förstå kodens nyanser. En viktig kritik av BLEU är dess oförmåga att fånga kodens semantiska egenskaper.
I stället för att enbart förlita sig på matchning, har ett mer relevant mått föreslagits: funktionell korrekthet. Detta innebär att den kod som produceras av modellen ska passa en given uppsättning enhetstester. Idén är i linje med standardiserade kodningspraxis, eftersom utvecklare ofta använder enhetstester för att utvärdera koden effektivitet och korrekthet.
Denna måttstock utvärderar inte bara korrektheten, utan även den funktionella användbarheten av den genererade koden.
Måttet pass@k introduceras som en måttstock för funktionell korrekthet. Det innebär i princip att om något av de “k” genererade kodproven passerar enhetstesterna, anses problemet vara löst. Men i stället för att enbart använda detta i dess direkta form, används en obiaserad estimator för att beräkna pass@k för att undvika hög varians.
För att utvärdera ChatGPT:s kodförmåga, användes HumanEval-datasetet. Detta dataset består av handskrivna Python-problem, var och en åtföljd av enhetstester.
Givet de risker som är förknippade med att köra okänd eller otillförlitlig kod, designades en sandlådemiljö för att testa den genererade koden på ett säkert sätt. Denna miljö använde gVisor för att emulera resurser och skapa en barriär mellan värdsystemet och den körande koden. Således, även om modellen producerar skadlig kod, förblir den innesluten och kan inte skada värden eller nätverket.
Använda ChatGPT Code Interpreter
OpenAIs ChatGPT har genomgått många evolutioner, med Code Interpreter som en revolutionerande funktion i GPT-4-modellen. Till skillnad från traditionella chatsystem, tillåter Code Interpreter användare att dyka djupare in i beräkningsuppgifter, samtidigt som gränserna mellan mänskliga-AI-samtal och beräkningsprocesser suddas ut.
I sin kärna är Code Interpreter likt att ha en dator inbäddad i chatboten. Denna dynamiska funktion erbjuder användare tillfällig diskutrymme för att ladda upp en mängd olika filformat, från vanliga typer som TXT, PDF och JPEG till mer specialiserade som CPP, PY och SQLite. Detta bredd av stöd förstärker dess mångsidighet över olika uppgifter, antingen det är dokumentbearbetning eller bildmanipulering.
Verksam inom en robust och säker ram, är Code Interpreter utrustad med över 300 förinstallerade bibliotek. Denna sandlådemiljö säkerställer säkerhet samtidigt som den tillhandahåller betydande beräkningskraft. Intressant nog, när den tillfrågades, skapade den en Python-skript i realtid för att utföra användarens begäran. Ta till exempel att konvertera en bildbaserad PDF till ett sökbart format med OCR; allt en användare behöver göra är att ladda upp dokumentet, och ChatGPT hanterar resten.
En punkt av intresse har varit filstorleksgränsen för uppladdningar. Medan definitiva specifikationer ännu inte har meddelats, tyder användarexperiment på att systemet kan bearbeta filer avsevärt större än 100MB. Oavsett storlek är det viktigt att notera att dessa filer är transienta, och kastas bort efter att chatsessionen avslutats.
Code Interpreters briljans ligger inte bara i dess tekniska duglighet, utan även i dess tillgänglighet. OpenAI erbjuder denna funktion till prenumeranter av ChatGPT Plus, som kommer med GPT-4-modellen. Således är detta transformerande verktyg inte bara för teknikeliten, utan blir gradvis tillgängligt för en bredare publik.
Skillnaden mellan den standard ChatGPT-modellen och Code Interpreter ligger i deras interaktionsparadigm. Medan den förra främst genererar textbaserade svar, förstår och utför den senare kod, och erbjuder direktresultat. Detta gör det inte bara till ett värdefullt tillgång för teknikproffs, utan även till en kraftfull resurs för de som inte har kodkunskaper att utföra komplexa beräkningsuppgifter.
ChatGPT Code Interpreters förmågor kan revolutionera flera aspekter av programvaruutveckling och dataanalys:
- Automatiserad kodgenerering: För både programvaruapplikationer och dataanalys-skript, kan systemet producera boilerplate-strukturer eller intrikata kodsnuttar, accelererande utvecklings- och dataanalysprocesserna.
- Kodgranskning och datavalidering: AI-drivna verktyg som ChatGPT kan hjälpa till att förbättra kvaliteten och säkerheten för programvarukodbasen. Dessutom kan sådana verktyg i dataanalys vara instrumentala i granskning och validering av data bearbetnings- och transformations skript, säkerställande noggrannhet och effektivitet.
- Dataanalysstöd: För dataanalytiker kan ChatGPT Code Interpreter hjälpa till att generera kod för första datautforskning, visualisering och till och med grundläggande statistiska tester, underlättande dataanalysarbetsflödet.
Om du är intresserad av att lära dig mer om detaljerna i ChatGPT och prompt-engineering, erbjuder Unite AI en omfattande genomgång i ‘ChatGPT: Avancerad prompt-engineering‘.
Konfigurera ChatGPT Code Interpreter
Code Interpreter-integration tillåter plattformen att tolka användarfrågor, utföra dem som Python-kod och visa resultat i en interaktiv chatsamtalsformat. För att komma åt denna funktion kan användare navigera till ChatGPT-inställningar, utforska Beta-funktioneravsnittet och aktivera Code Interpreter.
Vad som särskiljer det är dess transparenta mekanism. När användare begär en uppgift, avslöjar plattformen varje steg i bearbetningsresan, och erbjuder tydlighet i hur kommandon tolkas och utförs. Viktigt, för sekretess- och säkerhetsskäl, fungerar Code Interpreter utan internetanslutning.
Utforska fördelarna med ChatGPT Code Interpreter
Data Visualisering & Analys
ChatGPT går utöver traditionella diagram och erbjuder både konventionella och innovativa grafiska representationer. Detta säkerställer att användare kan se sina data i format som ger de mest meningsfulla insikterna.
Men det är inte bara om att visualisera rådata. ChatGPT-modellen är skicklig på att bearbeta och förädla data. Trots att den är kraftfull, bör användare vara försiktiga.
Finansiella analytiker kommer att finna Code Interpreters förmåga att analysera och visualisera aktiekurser särskilt användbar. Genom smidig integration kan användare ladda upp datauppsättningar och visualisera dem i olika format. Denna funktionens betydelse är uppenbar när individer kan utföra komplexa dataanalyser.
Videon nedan visar hur ChatGPT:s code interpreter skapade en omfattande TSLA-aktieanalys.
Viktiga punkter:
- Teslas aktie har stått inför volatilitet men har också visat sig vara motståndskraftig med perioder av tillväxt.
- Höga handelsvolymer på specifika dagar indikerar betydande marknadsintresse eller reaktioner på viktiga händelser.
- Den nedåtgående år-till-datum-avkastningen (YTD) tyder på att investerare bör analysera både interna företagsfaktorer och externa marknadsförhållanden när de överväger framtida investeringar.
Implementering av datorseende och OCR
Ansiktsigenkänning, en viktig funktion i datorseende, angreps med en klassisk teknik: Haar Cascade-klassificeraren från OpenCV.
Bilden nedan visar användningen av den klassiska Haar Cascade-klassificeraren.
Processen att extrahera text från bilder, känd som optisk teckenigenkänning (OCR), utfördes smidigt med Tesseract, och texten strukturerades sedan av GPT-4, vilket förbättrade förståeligheten.
I den följande videon visas hur Tesseract (OCR) extraherar text från ett certifikatbild.
Code Interpreter excellerar inom området video, ljud och bildmanipulering. Med enkla kommandon kan användare uppnå detaljerade redigeringar, såsom att konvertera GIF till MP4 med specifika förbättringar. Ladda bara upp din fil, ange dina önskade ändringar och se magin ske.
Python-externa bibliotek i din ChatGPT Code Interpreter
ChatGPT Code Interpreter är en dynamisk programmeringsplattform utrustad med en omfattande uppsättning Python-bibliotek. Dessa täcker allt från datavisualisering med Seaborn till avancerad maskinlärning via Torch. Men det är mer än ett statiskt verktyg.
Inspirerad av denna Chatgpt-sida från Korakot Chaovavanich.
Startande med den senaste nltk-utgåvan, laddade vi upp en .whl-fil till Interpreter. Vi instruerade sedan ChatGPT att hitta lämplig site-packages-katalog genom att analysera en befintlig pakets plats. Nästa steg innebar att packa upp wheel-filen till en tillfällig plats och flytta filerna till den identifierade site-packages-katalogen. Men detta stötte på ett problem.
Sökande efter en lösning, frågade vi: “Vänligen se till att NLTK installeras i Python-miljön och är tillgänglig efter installation.”
ChatGPT svarade och tillhandahöll en lösning. Den föreslog att lägga till den tillfälliga katalogen till sys.path, vilket tillåter Python att identifiera och hämta moduler från den packade nltk-paketet inom den platsen. Denna taktik fungerade utmärkt, vilket ledde till den lyckade installationen av NLTK.
Genom användning av .whl-filer, visade installationen en blandning av skarpsinne och anpassningsförmåga. ChatGPT Code Interpreter, trots de initiala utmaningarna, visade sin mångsidighet och engagemang för att tillgodose utvecklares behov, garanterande både nybörjare och veteraner en förfinad kodupplevelse.
I en fascinerande demonstration av interpreterns förmågor, betonade en nylig tweet av @DominikPeters en unik demonstration. Peters begärde att GPT-4 skulle generera en quiz om Paris stadsdelar, och modellen levererade en fungerande webbplats. Den fungerande quizen är tillgänglig för en hands-on-upplevelse på dominik-peters.de/gpt-arrondissement-quiz/.
https://twitter.com/DominikPeters/status/1652630445639467008?s=20
Avslutning
OpenAIs genombrott med ChatGPT Code Interpreter är ingenting mindre än transformerande för både utvecklare och icke-utvecklare. Dess mångsidighet i att hantera en mängd olika uppgifter – från att hjälpa utvecklare med felsökning till att framgångsrikt producera Parisianska quiz – vittnar om den obegränsade potentialen för AI i att förbättra våra digitala upplevelser. Här är en sammanfattning av vår djupdykning:
Förstå ditt verktyg: Lika mycket som du skulle lära känna en kollega, bekanta dig med Code Interpreter. Den är byggd ovanpå Codex, som är finjusterad från GPT-4. Dess kompetens sträcker sig över flera programmeringsspråk, vilket gör den till en idealisk kompanjon för alla dina kodäventyr.
Embracing AI-revolutionen: Traditionella kodningspraxis är på väg att se en seismisk förändring. Med AI-drivna verktyg som ChatGPT Code Interpreter kan uppgifter som felsökning, kodgenerering och till och med kodgranskning påskyndas.
Bortom bara kod: Interpreterns förmåga sträcker sig inte bara till text eller kod. Dess förmåga att hantera flera filformat, från enkla TXT-filer till komplexa PY-skript, understryker dess användbarhet över olika domäner.
Sluta aldrig experimentera: Vår undersökning med NLTK-biblioteksinstallationen reflekterar vikten av uthållighet och anpassningsförmåga, värderingar som Code Interpreter personifierar. Om det finns ett hinder, finns det ofta en väg runt det.
Gå med i AI-samtalet: Verkliga tillämpningar, som visas av Paris stadsdelsquiz, understryker den enorma verkliga nyttan av verktyget. Anta det, utforska det och låt det förstärka dina projekt.
Videon ovan är skapad med Gen-2 och Midjourney.
Sammanfattningsvis är ChatGPT Code Interpreter mer än bara ett verktyg; det förändrar sättet vi interagerar med teknik. För både innovatörer och entusiaster lovar det en värld full av kodningspotential.






















