Jeg stilte Claude 3.5 Sonnet opp mot AI-kodingstester ChatGPT klarte – og det mislyktes kreativt

0
42
cover David Gewirtz/ZDNET

Siste uke fikk jeg en e-post fra Anthropic som kunngjorde at Claude 3.5 Sonnet var tilgjengelig. I følge AI-selskapet hever Claude 3.5 Sonnet bransjegrensen for intelligens, overgår konkurrentmodeller og Claude 3 Opus på et bredt spekter av evalueringer."

Selskapet la til: "Claude 3.5 Sonnet er ideell for komplekse oppgaver som kodegenerering." Jeg bestemte meg for å se om det var sant.

Også: Hvordan bruke ChatGPT til å lage en app

Jeg vil utsette den nye Claude 3.5 Sonnet-modellen for standardsettet mitt med kodingstester —  tester jeg har kjørt mot et bredt spekter av AIer med et bredt spekter av resultater. Vil du følge med på dine egne tester? Pek på nettleseren din til hvordan jeg tester en AI-chatbots kodingsevne – og du kan også, som inneholder alle standardtestene jeg bruker, forklaringer på hvordan de fungerer og hva du skal se etter i resultatene.

OK, la oss grave i resultatene av hver test og se hvordan de er sammenlignet med tidligere tester med  Microsoft Copilot, Meta AI, Meta Code Llama, Google Gemini Advanced, og ChatGPT.

1. Skrive en WordPress-plugin

Til å begynne med så dette ut til å love så mye. La oss starte med brukergrensesnittet Claude 3.5 Sonnet opprettet basert på testmeldingen min.

cleanshot-2024-06-26-at-13-28 -382x Skjermbilde av David Gewirtz/ZDNET

Dette er første gang en AI har bestemt seg for å sette de to datafeltene side om side. Oppsettet er rent og ser flott ut.

Claude bestemte seg også for å gjøre noe annet jeg aldri har sett en AI gjøre. Denne plugin-en kan lages ved å bruke bare PHP-kode, som er koden som kjører på bakenden av en WordPress-server.

Men noen AI-implementeringer har også lagt til JavaScript-kode (som kjører i nettleseren for å kontrollere funksjoner for dynamisk brukergrensesnitt) og CSS-kode (som kontrollerer hvordan nettleseren viser informasjon).

Også: Hvordan jeg tester en AI-chatbots kodeevne – og du kan også

I et PHP-miljø, hvis du trenger PHP, JavaScript og CSS, kan du enten inkludere CSS og JavaScript rett i PHP-koden (det er en funksjon i PHP), eller du kan legge koden i tre separate filer – en for PHP, en for JavaScript og en for CSS.

Vanligvis, når en AI ønsker å bruke alle tre språkene, viser den hva som må klippes og limes inn i PHP-filen, deretter en annen blokk som skal klippes og limes inn i en JavaScript-fil, og deretter en tredje blokk som skal klippes ut og limes inn i en CSS-fil.

Men Claude ga bare én PHP-fil, og så, når den kjørte, genererte JavaScript- og CSS-filene automatisk inn i pluginens hjemmekatalog. Dette er både ganske imponerende og noe feilaktig. Det er kult at den prøvde å gjøre prosessen for å lage plugin enklere, men hvorvidt en plugin kan skrive til sin egen mappe eller ikke er avhengig av innstillingene til OS-konfigurasjonen – og det er en veldig stor sjanse for at det kan mislykkes.

Jeg tillot det i testmiljøet mitt, men jeg ville aldri latt en plugin omskrive sin egen kode i et produksjonsmiljø. Det er en veldig alvorlig sikkerhetsfeil.

Også: Hvordan bruke ChatGPT til å skrive kode: Hva det kan og ikke kan gjøre for deg

Til tross for den ganske kreative naturen til Claudes kodegenereringsløsning, er bunnen linjen er at plugin-en mislyktes. Å trykke på Randomize-knappen gjør absolutt ingenting. Det er trist fordi, som jeg sa, det hadde så mye løfte.

Her er de samlede resultatene av denne og tidligere tester:

Claude 3.5 Sonnet: Grensesnitt: bra, funksjonalitet: feilChatGPT GPT-4o: Grensesnitt: bra, funksjonalitet: braMicrosoft Copilot: Grensesnitt: tilstrekkelig, funksjonalitet: feilMeta AI: Grensesnitt: tilstrekkelig, funksjonalitet: feilMetakode Llama: Fullstendig feilGoogle Gemini Advanced: Grensesnitt: bra, funksjonalitet: failChatGPT 4: Grensesnitt: bra, funksjonalitet: braChatGPT 3.5: Grensesnitt: bra, funksjonalitet: bra

2. Omskriving av en strengfunksjon

Denne testen er utformet for å evaluere hvordan AI gjør omskrivingskode for å fungere mer hensiktsmessig for det gitte behovet; i dette tilfellet — konverteringer av dollar og cent.

Claude 3.5 Sonnet-revisjonen fjernet innledende nuller på riktig måte, og sørget for at oppføringer som “000123”; behandles som “123”. Den tillater på riktig måte heltall og desimaler med opptil to desimaler (som er nøkkelfikseringen ledeteksten ba om). Det forhindrer negative verdier. Og det er smart nok til å returnere "0" for noen rare eller uventede inndata, som forhindrer at koden unormalt ender med en feil.

Også: Kan AI-detektorer redde oss fra ChatGPT? Jeg prøvde 6 nettbaserte verktøy for å finne ut

En feil er at den ikke vil tillate å angi desimalverdier alene. Så hvis brukeren skrev inn 50 cent som ".50" i stedet for “0,50”, ville det mislykkes i oppføringen. Ut fra hvordan den originale tekstbeskrivelsen for prøven er skrevet, burde den ha tillatt dette inndataskjemaet.

Selv om det meste av den reviderte koden fungerte, må jeg regne dette som en feil fordi hvis koden ble limt inn i et produksjonsprosjekt, ville ikke brukere kunne legge inn input som bare inneholdt verdier for cent.

Her er de samlede resultatene av denne og tidligere tester:

Claude 3.5 Sonnet: FailedChatGPT GPT-4o:  VellykketMicrosoft Copilot: FailedMeta AI: FailedMeta Code Llama: VellykketGoogle Gemini Advanced: MislyktesChatGPT 4: VellykketChatGPT 3.5:  Vellykket

3. Finne en irriterende feil

Den store utfordringen med denne testen er at AI har i oppgave å finne en feil som ikke er åpenbar og — å løse riktig — krever plattformkunnskap om WordPress-plattformen. Det er også en feil jeg ikke umiddelbart så på egen hånd og opprinnelig ba ChatGPT om å løse (noe den gjorde).

Claude fikk ikke bare dette rett — fanget opp subtiliteten i feilen og rettet den — men det var også den første AI siden jeg publiserte hele settet med tester på nettet for å fange opp det faktum at publiseringsprosessen introduserte en feil i eksempelspørringen (som jeg senere fikset og publiserte på nytt).

Også: Falske anmeldelser er et stort problem – og her er hvordan AI kan bidra til å fikse det

Her er de samlede resultatene av denne og tidligere tester:

Claude 3.5 Sonnet: VellykketChatGPT GPT-4o: VellykketMicrosoft Copilot: Mislyktes. Spektakulært. Entusiastisk. Emojisk.Meta AI: VellykketMetakode Lama: FailedGoogle Gemini Advanced: Failed< strong>ChatGPT 4: VellykketChatGPT 3.5: Vellykket

Så langt er vi på to av tre feil. La oss gå videre til vår siste test.

4. Skrive et skript

Denne testen er laget for å se hvor langt AIs programmeringskunnskap går inn i spesialiserte programmeringsverktøy. Mens AppleScript er ganske vanlig for skripting på Mac-er, er Keyboard Maestro en kommersiell applikasjon som selges av en ensom programmerer i Australia. Jeg synes det er uunnværlig, men det er bare en av mange slike apper på Mac.

Men når de testet i ChatGPT, visste ChatGPT hvordan de skulle “snakke” Keyboard Maestro samt AppleScript, som viser hvor bred kunnskapen om programmeringsspråk er.

Også: Fra AI-trenere til etikere: AI kan forelde noen jobber, men generere nye

Dessverre har ikke Claude den kunnskapen. Den skrev et AppleScript som forsøkte å snakke med Chrome (det er en del av testparameteren), men den ignorerte den essensielle Keyboard Maestro-komponenten.

Verre, det genererte kode i AppleScript som ville generere en kjøretidsfeil. I et forsøk på å ignorere store og små bokstaver for treffet i testen, genererte Claude linjen:

hvis tittelen til fanen inneholder inndata ignorerer store og små bokstaver,

Dette er ganske mye en dobbel feil fordi «inneholder" setningen skiller ikke mellom store og små bokstaver, og uttrykket “ignorerer store og små bokstaver” hører ikke hjemme der den ble plassert. Det førte til at skriptet feilet med en “Ignorerer kan ikke gå etter dette” syntaks feilmelding.

Her er de samlede resultatene av denne og tidligere tester:

Claude 3.5 Sonnet: MislyktesChatGPT GPT-4o: Vellykket, men med forbeholdMicrosoft Copilot: FailedMeta AI: Failed Metakode Llama: MislyktesGoogle Gemini Advanced: VellykketChatGPT 4: VellykketChatGPT 3.5:  Failed

Totalresultater

Her er de samlede resultatene av de fem testene:

Claude 3.5 Sonnet: 1 av 4 lyktesChatGPT GPT-4o: 4 av 4 lyktes, men det er et merkelig dobbeltvalgssvarMicrosoft Copilot: 0 av 4 lyktesMeta AI:  1 av 4 lyktesMeta Code Llama: 1 av 4 lyktesGoogle Gemini Advanced: 1 av 4 lyktes< strong>ChatGPT 4: 4 av 4 lyktesChatGPT 3.5: 3 av 4 lyktes

Jeg ble litt forvirret over Claude 3.5 Sonnet. Selskapet lovet spesifikt at denne versjonen var egnet for programmering. Men som du kan se, ikke så mye. Det er ikke det at den ikke kan programmere. Den kan bare ikke programmere riktig.

Også: Jeg brukte ChatGPT til å skrive den samme rutinen på 12 beste programmeringsspråk. Slik gjorde det

Jeg fortsetter å lete etter en AI som best kan ChatGPT-løsningene, spesielt ettersom plattform- og programmeringsmiljøleverandører begynner å integrere disse andre modellene direkte i programmeringsprosessen. Men foreløpig går jeg tilbake til ChatGPT når jeg trenger programmeringshjelp, og det er mitt råd til deg også.

Har du brukt en AI for å hjelpe deg med å programmere? Hvilken? Hvordan gikk det? Gi oss beskjed i kommentarene nedenfor.

Du kan følge mine daglige prosjektoppdateringer på sosiale medier. Sørg for å abonnere på mitt ukentlige oppdateringsnyhetsbrev, og følg meg på Twitter/X på @DavidGewirtz, på Facebook på Facebook.com/DavidGewirtz, på Instagram på Instagram.com/DavidGewirtz og på YouTube på YouTube.com/DavidGewirtzTV.< /p>