Connect with us

Utforskning av OpenAIs ChatGPT-kodefortolker: En dyptgående analyse av dens evner

Prompt engineering

Utforskning av OpenAIs ChatGPT-kodefortolker: En dyptgående analyse av dens evner

mm

OpenAIs fremgang i naturlig språkbehandling (NLP) markeres av oppblomstringen av store språkmodeller (LLM), som utgjør grunnlaget for produkter som brukes av millioner, inkludert kodehjelpen GitHub Copilot og søkemotoren Bing. Disse modellene, gjennom deres unike evne til å huske og kombinere informasjon, har satt ubestridte standarder i oppgaver som kode- og tekstgenerering.

Forståelse av ChatGPTs kodefortolker

For å forstå betydningen av ChatGPT-kodefortolkeren, er det essensielt å først forstå hva den er og hvordan den ble bygget.

I essensen utnytter ChatGPT-kodefortolkeren ChatGPTs evner, men introduserer en forbedret ferdighet i å forstå, tolke og sogar generere kode på tvers av en rekke programmeringsspråk. Denne funksjonen transformerer ChatGPT fra en tekstgenerator til et uvurderlig verktøy for utviklere, som hjelper med kodeforståelse, feilsøking og sogar kodegenerering.

Trening av GPT for kodning: Codex-tilnærmingen

Både GitHub Copilot og ChatGPTs kodefortolker utnytter Codex-modellen utviklet av OpenAI.

Codex, en spesialisert GPT-språkmodell, er konstruert for å ha dyktige Python-kode-skriverferdigheter. Trenet på offentlig kildekod fra GitHub, viser Codex sin potensial ved å drive funksjoner i GitHub Copilot. Når den vurderes for sin evne til å syntetisere programmer fra docstrings, en måling av funksjonell riktighet, overgår Codex både GPT-3 og GPT-J.

En slående observasjon er at gjentakende sampling forbedrer Codex’ ferdighet. Når opptil 100 prøver per problem brukes, øker modellens suksessrate til 70,2%. Slik effektivitet antyder muligheten for å bruke heuristisk rangering til å plukke accurate kodeprøver, uten å nødvendiggjøre full vurdering for hver.

For å vurdere dens evner, ble modellen gitt i oppgave å lage selvstendige Python-funksjoner basert bare på docstrings. Den genererte koden ble deretter vurderet ved hjelp av enhetstester. I en datasett bestående av 164 originale programmeringsproblemer, som inkluderer språkforståelse, algoritmer og grunnleggende matematisk tester, løste Codex med 12B parametre 28,8% av dem på ett forsøk.

Treningdata for Codex-modell - chatgpt kodefortolker

Treningdata for Codex-modell: https://arxiv.org/abs/2107.03374

Ved å finjustere modellen videre gjennom finjustering korrekt implementerte selvstendige funksjoner, ble dens effektivitet forbedret, resulterende i at Codex-S løste 37,7% av utfordringene på første forsøk. Men i den praktiske verden av programmering, er en prøve-og-feil-tilnærming vanlig. I en simulering av denne virkelige scenariet, løste Codex-S-modellen, når den gitt 100 sjanser, 77,5% av utfordringene.

Chatgpt finjustert arkitektur

Generative modeller som ChatGPT som produserer kode vurderes vanligvis ved å sammenligne genererte prøver med en referansekilde. Denne sammenligningen kan enten være nøyaktig eller bruke en likhetstiltak som BLEU-scoren. Men disse sammenligningsmetrikene mangler ofte å fange opp nyansene i kodning. En kritikk av BLEU er dens ineffektivitet i å fange kodeens semantiske egenskaper.

I stedet for å bare bruke sammenligning, er en mer relevant måling foreslått: funksjonell riktighet. Dette betyr at koden produsert av modellen skal bestå en gitt sett med enhetstester. Ideen er i linje med standard kodingspraksis, ettersom utviklere ofte bruker enhetstester for å vurdere effektiviteten og nøyaktigheten av deres kode.

Denne metrikken vurderer ikke bare nøyaktigheten, men den funksjonelle bruksområdet for den genererte koden.

Den pass@k-metrikken er introdusert som en måling av funksjonell riktighet. Den betyr essensielt at hvis noen av de “k” genererte kodeprøvene består enhetstestene, regnes problemet som løst. Men i stedet for å bare bruke denne i sin direkte form, brukes en ubiasert estimat til å beregne pass@k for å unngå høy varians.

For å vurdere ChatGPTs kodeevner, ble forskningen utført med HumanEval-datasettet. Dette datasettet består av håndskrevne Python-problemer, hver ledsaget av enhetstester.

Chatgpt open ai treningsdataset eksempel

https://github.com/openai/code-align-evals-data/blob/main/human_eval

Gitt risikoen forbundet med å kjøre ukjent eller upålitelig kode, ble en sandbox-miljø designet for å teste den genererte koden trygt. Denne miljøen brukte gVisor for å emulere ressurser og skape en barriere mellom vertsmaskinen og den kjørende koden. Derfor, selv om modellen produserer skadelig kode, blir den innkapslet og kan ikke skade verten eller nettverket.

Brug av ChatGPT-kodefortolker

OpenAIs ChatGPT har gjennomgått tallrike evolusjoner, med kodefortolkeren som en revolusjonerende funksjon i GPT-4-modellen. I motsetning til tradisjonelle chattegrensesnitt, tillater kodefortolkeren brukerne å dykke dyptere inn i beregningsoppgaver, og sammenfletter grensene mellom menneske-AI-samtaler og beregningsprosesser.

I kjernen er kodefortolkeren lik å ha en datamaskin innbygget i chatboten. Denne dynamiske funksjonen tilbyr brukerne midlertidig diskplass for å laste opp en rekke filformater, fra vanlige typer som TXT, PDF og JPEG til mer spesialiserte som CPP, PY og SQLite. Denne bredde av støtte forbedrer dens fleksibilitet over ulike oppgaver, enten det er dokumentbehandling eller bildebehandling.

Opererende innenfor en robust og sikker ramme, er kodefortolkeren utstyrt med over 300 forhåndsinstallerte biblioteker. Denne sandbox-miljøen sikrer sikkerhet samtidig som den tilbyr betydelig beregningskraft. Interessant, når det blir bedt om, skaper det en Python-skript i sanntid for å utføre brukerens forespørsel. For eksempel, konvertering av en bildebasert PDF til en søkbar format ved hjelp av OCR; alt en bruker trenger å gjøre, er å laste opp dokumentet, og ChatGPT håndterer resten.

En poeng av intrige har vært filstørrelsesgrensen for opplasting. Mens definitive spesifikasjoner ennå ikke er annonsert, antyder bruker-eksperimenter at systemet kan effektivt prosessere filer betydelig større enn 100MB. Uansett størrelse, er det essensielt å merke seg at disse filene er midlertidige, og blir kastet etter at chatsesjonen er avsluttet.

Kodefortolkerens genialitet ligger ikke bare i dens tekniske dyktighet, men også i dens tilgjengelighet. OpenAI tilbyr denne funksjonen til abonnenter av ChatGPT Plus, som kommer med GPT-4-modellen. Derfor er dette transformasjonelle verktøyet ikke bare for tekniske eliten, men blir gradvis mer tilgjengelig for et bredere publikum.

Forskjellen mellom standard ChatGPT-modellen og kodefortolkeren ligger i deres interaksjonsparadigmer. Mens den førstnevnte primært genererer tekstlige svar, forstår og utfører den sistnevnte kode, og tilbyr direkte resultater. Dette gjør den ikke bare til en verdifull ressurs for tekniske fagfolk, men også til en kraftfull hjelp for de uten kodingskunnskaper til å utføre komplekse beregningsoppgaver.

Kodefortolkerens evner kan revolusjonere flere aspekter av programvareutvikling og datavitenskap:

  • Automatisert kodegenerering: For både programvareapplikasjoner og dataanalyse-skript, gitt en høynivå-beskrivelse, kan systemet produsere boilerplate-strukturer eller intrikate kodeprøver, og akselerere utviklings- og dataanalyseprosessene.
  • Kodegjennomgang og datavalidering: AI-drevne verktøy som ChatGPT kan bidra til å forbedre kvaliteten og sikkerheten av programvarekodebasen. I tillegg, i datavitenskapens verden, kan slike verktøy være instrumentale i å gjennomgå og validere dataprosesserings- og transformeringsskript, og sikre nøyaktighet og effektivitet.
  • Dataanalysehjelp: For dataforskere kan ChatGPT-kodefortolkeren hjelpe med å generere kode for preliminær datautforskning, visualisering og sogar grunnleggende statistiske tester, og dermed lette dataanalyse-arbeidsflyten.

Hvis du er interessert i å finne mer om intrikasjonene i ChatGPT og prompt-engineering, tilbyr Unite.AI en omfattende gjennomgang i ‘ChatGPT: Advanced Prompt Engineering‘.

Oppsett av ChatGPT-kodefortolker

Kodefortolker-integrasjonen tillater plattformen å tolke brukerforespørsler, utføre dem som Python-kode og vise resultater i en interaktiv chatsformat. For å få tilgang til denne funksjonen, kan brukerne navigere til ChatGPT-innstillingene, utforske Beta-funksjonsdelen og aktivere kodefortolkeren.

Hva skiller det fra andre, er dens gjennomsiktige mekanisme. Mens brukerne ber om en oppgave, avdekker plattformen hver enkelt trinn i prosesseringsreisen, og tilbyr klarhet på hvordan kommandoer tolkes og utføres. Viktig, for privatlivs- og sikkerhetsårsaker, opererer kodefortolkeren uten noen internetttilkobling.

Utforskning av fordelene med ChatGPT-kodefortolker

Datavisualisering & analyse

ChatGPT går utenfor omfanget av tradisjonelle diagrammer, og tilbyr både konvensjonelle og innovative grafiske representasjoner. Dette sikrer at brukerne kan se sine data i format som gir de mest meningsfulle innsiktene.

Men det er ikke bare om å visualisere rådata. ChatGPT-modellen er dyktig i å prosessere og finpusse data. Selv om det er kraftfullt, bør brukerne utøve forsiktighet.

Finansanalytikere vil finne kodefortolkerens evne til å analysere og visualisere aksjekurs spesielt nyttig. Gjennom sammenflettet integrasjon, kan brukerne laste opp datasett og visualisere dem i ulike formater. Denne funksjonens betydning er tydelig når enkeltindivider kan utføre komplekse dataanalyser.

Videoen under demonstrerer hvordan ChatGPTs kodefortolker skapte en omfattende TSLA-aksjeanalyse.

Nøkkelbudskap:

  • Teslas aksje har møtt volatilitet, men har også vist seg å være motstandsdyktig med perioder med vekst.
  • Høye handelsvolumer på bestemte dager indikerer betydelig markedss interesse eller reaksjoner på nøkkelhendelser.
  • Nedadgående årsak-til-dato (YTD)-avkastning antyder at investorer bør analysere både interne selskapsfaktorer og eksterne markedstilstander når de vurdere fremtidige investeringer.

Implementering av datavisualisering og OCR

Ansiktsgjenkjenning, en essensiell funksjon i datavisualisering, ble tilnærmet med en klassisk teknikk: Haar Cascade-klassifikatoren fra OpenCV.

Bildet under viser bruken av den klassiske Haar Cascade-klassifikatoren.

Prosessen med å trekke ut tekst fra bilder, kjent som optisk tegngjenkjenning (OCR), ble sammenflettet utført ved hjelp av Tesseract, med teksten deretter strukturert av GPT-4, og forbedret forståelsen.

I videoen under ser du hvordan Tesseract (OCR) trekker ut tekst fra et sertifikatbilde.

Kodefortolkeren utmerker seg i området video-, lyd- og bildebehandling. Med enkle kommandoer kan brukerne oppnå detaljerte redigeringer, som for eksempel å konvertere GIF til MP4 med bestemte forbedringer. Bare last opp filen, skriv inn dine ønskede endringer, og se magien skje.

Python-ekstern bibliotek i din ChatGPT-kodefortolker

ChatGPT-kodefortolkeren er en dynamisk programmeringsplattform utstyrt med et omfattende sett av Python-biblioteker. Disse dekker alt fra datavisualisering med Seaborn til avansert maskinlæring via Torch. Men det er mer enn et statisk verktøy.

Inspirert av denne Chatgpt-side fra Korakot Chaovavanich.

Startende med den siste nltk-utgaven, lastet vi opp en .whl-fil til fortolkeren. Vi instruerte deretter ChatGPT til å finne den passende site-packages-katalogen ved å analysere en eksisterende pakkes plassering. Neste trinn involverte å pakke ut hjulfilen til en midlertidig plassering og flytte filene til den identifiserte site-packages-katalogen. Men dette traff en hindring.

Søkende etter en omvei, ba vi om: “Vennligst sikre at NLTK blir installert i Python-miljøet og er tilgjengelig etter installasjon.”

ChatGPT svarte, og foreslo en løsning. Det foreslo å legge til den midlertidige katalogen til sys.path, og tillot Python å identifisere og trekke ut moduler fra den upakket nltk-pakken i den plasseringen. Denne taktikken fungerte vidunderlig, og ledet til en vellykket installasjon av NLTK.

Gjennom bruk av .whl-filer, viste installasjonen en blanding av ingeniøritet og tilpasning. ChatGPT-kodefortolkeren, til tross for de innledende utfordringene, manifesterte sin fleksibilitet og forpliktelse til å tilpasse seg kodernes behov, og sikret både nybegynnere og veteraner en forbedret kodeopplevelse.

installering av tilpassede biblioteker i chatgpt-kodefortolker

I en fascinerende demonstrasjon av fortolkerens evner, viste en nylig tweet av @DominikPeters en unik demonstrasjon. Peters ba GPT-4 om å generere en quiz om Paris bydeler, og modellen leverte en fungerende nettside. Den fungerende quizen er tilgjengelig for en hånd-til-hånd-erfaring på dominik-peters.de/gpt-arrondissement-quiz/.

https://twitter.com/DominikPeters/status/1652630445639467008?s=20

Oppsummering

OpenAIs gjennombrudd med ChatGPT-kodefortolkeren er intet mindre enn transformasjonelt for både kodere og ikke-kodere. Dens fleksibilitet i å håndtere en rekke oppgaver – fra å hjelpe utviklere med feilsøking til å lett generere Paris-quiz – er en testament til den ubegrensede potensialet til AI i å forbedre våre digitale erfaringer. Her er en destillert essens av vår dyptgående analyse:

Forstå ditt verktøy: Akkurat som du ville bli kjent med en kollega, bli kjent med kodefortolkeren. Den er konstruert på toppen av Codex, som er finjustert fra GPT-4. Dens ferdighet omfatter flere programmeringsspråk, og gjør den til en ideal kompanjong for alle dine kodings-eventyr.

Omfavne AI-revolusjonen: Tradisjonelle kodingspraksiser er på vei til å se en seismisk forandring. Med AI-drevne verktøy som ChatGPT-kodefortolkeren, kan oppgaver som feilidentifikasjon, kodegenerering og sogar kodegjennomgang akselereres.

Forbi bare kode: Kodefortolkerens innføring er ikke begrenset til tekst eller kode. Dens evne til å håndtere flere filformater, fra enkle TXT-filer til komplekse PY-skript, understreker dens nytte over ulike domener.

Aldri slutt å eksperimentere: Vår utforskning med NLTK-bibliotekinstallasjon reflekterer viktigheten av utholdenhet og tilpasning, verdier som kodefortolkeren inkorporerer. Hvis det er en hindring, er det ofte en måte å gå rundt den.

Bli med i AI-samtalen: Virkelige anvendelser, som vist i Paris-bydels-quiz, understreker den enorme virkelige nytten av verktøyet. Omfavne det, utforske det, og la det forbedre dine prosjekter.

Den ovennevnte videoen er laget med Gen-2 og Midjourney.

For å sammenfatte, er ChatGPT-kodefortolkeren mer enn bare et verktøy; det endrer måten vi kobler oss til teknologi på. For både innovatører og entusiaster lover det en verden full av kodepotensiale.

Jeg har brukt de siste fem årene til å dykke ned i den fasiniserende verden av Machine Learning og Deep Learning. Min lidenskap og ekspertise har ført meg til å bidra til over 50 forskjellige prosjekter innen programvareutvikling, med særlig fokus på AI/ML. Min pågående nysgjerrighet har også trukket meg mot Natural Language Processing, et felt jeg er ivrig etter å utforske videre.