Vyhledávání na webu

Postavil jsem Claude 3.5 Sonnet proti AI kódovacím testům ChatGPT aced - a kreativně selhal


Společnost Antropic tvrdí, že její aktualizovaný nástroj AI je ideální pro programování. Poté, co jsem Claude 3.5 Sonnet podrobil mým čtyřem standardním programovacím testům, mám pro vás pár rad.

Minulý týden jsem dostal e-mail od Anthropic oznamující, že Claude 3.5 Sonnet je k dispozici. Podle společnosti AI „Claude 3.5 Sonnet zvyšuje průmyslovou laťku v oblasti inteligence, překonává konkurenční modely a Claude 3 Opus v široké škále hodnocení.“

Společnost dodala: "Claude 3.5 Sonnet je ideální pro komplexní úkoly, jako je generování kódu." Rozhodl jsem se zjistit, jestli je to pravda.

Nový model Claude 3.5 Sonnet podrobím své standardní sadě testů kódování - testům, které jsem provedl proti široké škále AI se širokou škálou výsledků. Chcete sledovat spolu s vlastními testy? Nasměrujte svůj prohlížeč na stránku Jak otestuji schopnost kódování chatbota AI - a vy můžete také, která obsahuje všechny standardní testy, které aplikuji, vysvětlení, jak fungují a co hledat ve výsledcích.

Dobře, pojďme se ponořit do výsledků každého testu a podívat se, jak jsou v porovnání s předchozími testy pomocí Microsoft Copilot, Meta AI, Meta Code Llama, Google Gemini Advanced a ChatGPT.

1. Psaní pluginu WordPress

Zpočátku se zdálo, že je to tolik slibné. Začněme uživatelským rozhraním Claude 3.5 Sonnet vytvořeným na základě mé testovací výzvy.

Je to poprvé, co se AI rozhodla umístit dvě datová pole vedle sebe. Rozložení je čisté a vypadá skvěle.

Claude se také rozhodl udělat něco jiného, co jsem nikdy neviděl dělat AI. Tento plugin lze vytvořit pouze pomocí PHP kódu, což je kód běžící na zadním konci serveru WordPress.

Některé implementace AI však také přidaly kód JavaScript (který se spouští v prohlížeči pro ovládání funkcí dynamického uživatelského rozhraní) a kód CSS (který řídí, jak prohlížeč zobrazuje informace).

V prostředí PHP, pokud potřebujete PHP, JavaScript a CSS, můžete buď zahrnout CSS a JavaScript přímo do kódu PHP (to je funkce PHP), nebo můžete kód vložit do tří samostatných souborů - jeden pro PHP, jeden pro JavaScript a jeden pro CSS.

Obvykle, když chce umělá inteligence použít všechny tři jazyky, ukáže, co je třeba vyjmout a vložit do souboru PHP, pak další blok vyjmout a vložit do souboru JavaScript a poté třetí blok vyjmout a vložit do soubor CSS.

Ale Claude právě poskytl jeden soubor PHP a poté, když se spustil, automaticky vygeneroval soubory JavaScript a CSS do domovského adresáře pluginu. To je docela působivé a zároveň poněkud nesprávné. Je skvělé, že se pokusil usnadnit proces vytváření pluginu, ale to, zda plugin může zapisovat do své vlastní složky, závisí na nastavení konfigurace operačního systému - a existuje velmi vysoká pravděpodobnost, že by mohl selhat.

Povolil jsem to ve svém testovacím prostředí, ale nikdy bych nedovolil, aby plugin přepsal svůj vlastní kód v produkčním prostředí. To je velmi závažná bezpečnostní chyba.

Navzdory poměrně kreativní povaze Claudova řešení pro generování kódu je podstatné, že plugin selhal. Stisknutí tlačítka Randomize nedělá absolutně nic. To je smutné, protože jak jsem řekl, bylo to tolik příslibů.

Zde jsou souhrnné výsledky tohoto a předchozích testů:

  • Claude 3.5 Sonnet: Rozhraní: dobré, funkčnost: selhání
  • ChatGPT GPT-4o: Rozhraní: dobré, funkčnost: dobré
  • Microsoft Copilot: Rozhraní: dostatečné, funkčnost: selhání
  • Meta AI: Rozhraní: dostatečné, funkčnost: selhání
  • Llama s metakódem: Úplné selhání
  • Google Gemini Advanced: Rozhraní: dobré, funkce: selhání
  • ChatGPT 4: Rozhraní: dobré, funkčnost: dobré
  • ChatGPT 3.5: Rozhraní: dobré, funkčnost: dobré

2. Přepsání funkce řetězce

Tento test je navržen tak, aby vyhodnotil, jak umělá inteligence přepisuje kód, aby fungoval vhodněji pro danou potřebu; v tomto případě - konverze v dolarech a centech.

Revize Claude 3.5 Sonnet správně odstranila úvodní nuly a zajistila, že položky jako "000123" budou považovány za "123". Správně povoluje celá čísla a desetinná místa s až dvěma desetinnými místy (což je oprava klíče, kterou výzva požadovala). Zabraňuje záporným hodnotám. A je dostatečně chytrý, aby vrátil "0" pro jakýkoli podivný nebo neočekávaný vstup, což zabraňuje tomu, aby kód nenormálně skončil chybou.

Jednou chybou je, že neumožňuje zadat pouze desetinné hodnoty. Pokud by tedy uživatel zadal 50 centů jako „.50“ místo „0.50“, zadání by se nezdařilo. Podle toho, jak je napsán původní textový popis testu, měl tento vstupní formulář umožňovat.

Ačkoli většina revidovaného kódu fungovala, musím to počítat jako selhání, protože pokud by byl kód vložen do produkčního projektu, uživatelé by nemohli zadávat vstupy, které obsahovaly pouze hodnoty v centech.

Zde jsou souhrnné výsledky tohoto a předchozích testů:

  • Claude 3.5 Sonnet: Nezdařilo se
  • ChatGPT GPT-4o: Úspěšné
  • Microsoft Copilot: Selhalo
  • Meta AI: Nezdařilo se
  • Llama s metakódem: Úspěšné
  • Google Gemini Advanced: Nezdařilo se
  • ChatGPT 4: Úspěšné
  • ChatGPT 3.5: Úspěšné

3. Nalezení nepříjemného bugu

Velkou výzvou tohoto testu je, že AI má za úkol najít chybu, která není zřejmá a - pro správné vyřešení - vyžaduje znalost platformy WordPress. Je to také chyba, kterou jsem sám okamžitě neviděl a původně jsem požádal ChatGPT o vyřešení (což udělal).

Claude to nejen správně pochopil - zachytil jemnost chyby a napravil ji - ale byla to také první umělá inteligence od doby, kdy jsem publikoval celou sadu testů online, abych zachytil skutečnost, že proces publikování vnesl do vzorového dotazu chybu. (což jsem následně opravil a znovu zveřejnil).

Zde jsou souhrnné výsledky tohoto a předchozích testů:

  • Claude 3.5 Sonnet: Úspěch
  • ChatGPT GPT-4o: Úspěšné
  • Microsoft Copilot: Selhalo. Úžasně. Nadšeně. Emojicky.
  • Meta AI: Úspěšné
  • Llama s metakódem: Nezdařilo se
  • Google Gemini Advanced: Nezdařilo se
  • ChatGPT 4: Úspěšné
  • ChatGPT 3.5: Úspěšné

Zatím jsme na dvou ze tří selhání. Pojďme k našemu poslednímu testu.

4. Psaní scénáře

Tento test je navržen tak, aby zjistil, jak daleko sahají znalosti programování AI do specializovaných programovacích nástrojů. Zatímco AppleScript je poměrně běžný pro skriptování na počítačích Mac, Keyboard Maestro je komerční aplikace prodávaná osamělým programátorem v Austrálii. Považuji to za nepostradatelné, ale je to jen jedna z mnoha takových aplikací na Macu.

Při testování v ChatGPT však ChatGPT věděl, jak „mluvit“ Keyboard Maestro stejně jako AppleScript, což ukazuje, jak široké jsou jeho znalosti programovacího jazyka.

Bohužel Claude takové znalosti nemá. Napsal AppleScript, který se pokusil hovořit s Chrome (to je součást testovacího parametru), ale ignoroval základní komponentu Keyboard Maestro.

Horší je, že vygeneroval kód v AppleScriptu, který by generoval chybu běhu. Ve snaze ignorovat malá a velká písmena u shody v testu vygeneroval Claude řádek:

if theTab's title contains input ignoring case then

Toto je do značné míry dvojitá chyba, protože příkaz „obsahuje“ nerozlišuje malá a velká písmena a fráze „ignorování velikosti písmen“ nepatří tam, kde byla umístěna. Způsobilo to chybu skriptu s chybovou zprávou syntaxe „Ignorování nemůže pokračovat“.

Zde jsou souhrnné výsledky tohoto a předchozích testů:

  • Claude 3.5 Sonnet: Nezdařilo se
  • ChatGPT GPT-4o: Úspěšné, ale s výhradami
  • Microsoft Copilot: Selhalo
  • Meta AI: Nezdařilo se
  • Llama s metakódem: Nezdařilo se
  • Google Gemini Advanced: Úspěšné
  • ChatGPT 4: Úspěšné
  • ChatGPT 3.5: Nezdařilo se

Celkové výsledky

Zde jsou celkové výsledky pěti testů:

  • Claude 3.5 Sonnet: 1 ze 4 uspěl
  • ChatGPT GPT-4o: 4 ze 4 uspěly, ale je tu jedna zvláštní odpověď s dvojím výběrem
  • Microsoft Copilot: 0 ze 4 úspěšných
  • Meta AI: 1 ze 4 bylo úspěšné
  • Llama s metakódem: 1 ze 4 uspěl
  • Google Gemini Advanced: 1 ze 4 uspěl
  • ChatGPT 4: 4 ze 4 byly úspěšné
  • ChatGPT 3.5: 3 ze 4 byly úspěšné

Byl jsem trochu naštvaný na Claude 3.5 Sonnet. Společnost výslovně slíbila, že tato verze je vhodná pro programování. Ale jak vidíte, tak moc ne. Nejde o to, že neumí programovat. Prostě neumí správně programovat.

Stále hledám AI, která dokáže nejlépe využít řešení ChatGPT, zvláště když dodavatelé platforem a programovacích prostředí začínají integrovat tyto další modely přímo do procesu programování. Ale prozatím se vrátím k ChatGPT, když budu potřebovat pomoc s programováním, a to je moje rada i vám.

Použili jste AI, aby vám pomohla programovat? Který? jak to dopadlo? Dejte nám vědět v komentářích níže.

Moje každodenní aktualizace projektu můžete sledovat na sociálních sítích. Nezapomeňte se přihlásit k odběru mého týdenního zpravodaje a sledujte mě na Twitteru/X na @DavidGewirtz, na Facebooku na Facebook.com/DavidGewirtz, na Instagramu na Instagram.com/DavidGewirtz a na YouTube na YouTube.com/DavidGewirtzTV.

Související články