Požiadal som Clauda, aby opravil rozbitý kód ChatGPT — nečakal som takýto výsledok


Pred časom som požiadal Claudea, ChatGPT a Gemini, aby vytvorili simulátor slnečnej sústavy. Bolo to v čase, keď bol Claude hore nohami, a viac ľudí, vrátane mňa, si uvedomovalo, že by sa možno nemali obmedzovať len na ChatGPT.

Ten test priniesol jeden z najjasnejších výsledkov, aké som mal. Claude to zvládol na výbornú a vyhral presvedčivo. Gemini vytvoril funkčný, ale nie zvlášť pôsobivý kód a, čo je zaujímavé, ChatGPT zlyhal.

Dnes som sa rozhodol otestovať iný parameter. Tentoraz som namiesto písania kódu zadal LLM úlohu laditeľ kódu. Konkrétne som ich požiadal, aby opravili pokazený kód ChatGPT.

Rozbitý kód ChatGPT

Malá, ale katastrofálna chyba

Predchádzajúci test mal jednoduché obmedzenie: žiadne opakovania. Čokoľvek sme dostali v prvej odpovedi, to bol výsledok, ktorý sme hodnotili. Bohužiaľ pre ChatGPT, kód, ktorý vygeneroval, mal malú, jemnú chybu, ktorá celú vec zneužiteľnila.

O tom som hovoril aj v pôvodnom článku. ChatGPT používal pre niektoré vzdialenosti kilometre a pre iné astronomické jednotky (AU). Potom ich zamiešal a nakoniec zobrazil vesmír a priemery v AU, ale vzdialenosti medzi planétami v kilometroch. Výsledkom bolo, že planéty boli od seba vzdialené iba niekoľko kilometrov, čo v mierke slnečnej sústavy znamenalo, že boli prakticky všetky vo vnútri seba.

Kód ChatGPT bol uprataný a všetko implementoval, ale, bohužiaľ, táto malá chyba ho spravila nepoužiteľným do takej miery, že som naozaj nemohol posúdiť ostatné aspekty kódu.

Písanie kódu a ladenie kódu sú dve odlišné zručnosti. Je to rovnaké aj u ľudí. Jeden vývojár môže vynikať v písaní kódu, zatiaľ čo iný vyniká v jeho ladení. Rovnaký koncept platí aj inde. Dobrý spisovateľ nemusí byť nevyhnutne dobrý editor, a naopak.

Každopádne, poďme skočiť do testu. Zadanie je nižšie. Je jednoduché a osobitne som ho požiadal, aby špecifikovali, čo opravil, aby nám to bolo jasné.

Dostávate zlomenú kódovú základňu pre simulátor slnečnej sústavy. Kód obsahuje chybu, ktorá robí simulátor nepoužiteľným. Vaše úlohy: Identifikujte presnú príčinu zlyhania. Opravte kód. Vráťte úplne opravenú verziu kódu. Stručne vysvetlite, čo bolo zlomené a ako ste to opravili. Udržte vysvetlenie stručné a zamerajte sa iba na základnú príčinu a riešenie.

Hlavným testom bolo spočiatku zistiť, či Claude dokáže opraviť kód ChatGPT, ale aby som pridal viac kontextu, požiadal som všetkých obvyklých podozrivých, aby urobili to isté.

Gemini to trafí správne

Lepšie, než som očakával

Gemini bol v poslednej dobe najhorší zo všetkých, aspoň pre mňa. Je príliš horlivý. Podľa mojich skúseností, aj keď mu pošlete úplne správny kód a požiadate ho, aby opravil chyby, bude halucinovať chybu, „opraví“ ju a zničí kód. Takže som bol zvedavý, či bude schopný určiť skutočnú chybu v kóde, ktorý bol naozaj poškodený. Pre protokol, používame Gemini 3.1 Thinking.

K môjmu prekvapeniu, Gemini to zvládol. Presne určil chybu: projekčný engine očakáva pozície v kilometroch, ale orbitalPosition a drawOrbit počítajú v astronomických jednotkách. Dokonca šiel tak ďaleko, že uviedol výsledok chyby: v podstate sa planéty ukladané na seba nad slnko, čím sa systém javí ako prázdny.

Oprava, ktorú použil, bola tiež správna a opravený kód fungoval. Konečne som mohol vidieť simulátor slnečnej sústavy ChatGPT! Aj vy ho môžete vidieť, umiestnil som ho na stránku Vercel.

ChatGPT sa napraví

Obnova alebo vykúpenie postavy

Viem, viem. Toto je predsa zlý kód ChatGPT. Nemôžeme očakávať od toho istého chatbota, ktorý napísal zlý kód, že nájde chybu v ňom. Ale ChatGPT sa nedávno zlepšil. Podľa mojich skúseností funguje lepšie než Gemini. ChatGPT bol v určitom momente tak otravný, že som prešiel na Claude, ale teraz, keď ho občas používam, zvyčajne dosahujem dobré výsledky.

To je prirodzené. Tieto modely sú neustále laditeľné a aktualizované, aj keď sa názov verzie nemení. Podľa mojich skúseností je ChatGPT tiež oveľa citlivejší na vlastné pokyny než iné chatovacie roboty, takže vaše vlastné pokyny v ChatGPT môžu veľmi výrazne ovplyvniť skúsenosť.

Veľmi prekvapivo, ChatGPT to zvládol na jednotku. Našiel hlavnú príčinu, poskytol stručné, ale jasné vysvetlenie presne tak, ako som žiadal, a opravil kód. A opravený kód funguje. Použil som ChatGPT 5.4 Thinking.

Chcem tu niečo odvodiť, ale nie som si úplne istý. ChatGPT rozmýšľal najdlhšie nad počiatočnou úlohou. Možno všetko to premýšľanie, ktoré išlo do úlohy pred generovaním kódu, zaplnilo kontextové okno a prispelo k chybe. Alebo je to jednoducho naladené tak, že je lepšie v menších úlohách a úpravách než v generovaní projektu od nuly.

Nie som si istý. Ale kontrast je zaujímavý. To, čo je však najzaujímavejšie, je to, čo príde v nasledujúcom odseku.

Claude!

Najväčšie prekvapenie






Claudeov výstup v poslednom teste bol jednoducho na inej úrovni. Bol dôkladnejší, detailnejší, fakticky bohatší a vedecky uskutočniteľnejší. Odsadzoval sa od ChatGPT a Gemini na míle ďaleko.

Ale tu je prekvapenie: Claude nedokázal nájsť hlavnú chybu v kóde ChatGPT.

Namiesto toho našiel ďalšiu chybu týkajúcu sa mechanizmu otáčania kamery. Aby sme boli spravodliví, nezdalo sa mu to. Táto chyba je skutočná, ale objavuje sa iba pri posúvaní kamery pomocou Shift-drag, a pri väčšine uhlov kamery je dosť jemná na to, aby sa ľahko prehliadla. Ale vzhľadom na to, že existovala oveľa, oveľa väčšia chyba, ktorá simulátor efektívne robila nepoužiteľným, Claude ju úplne prehliadol.

Divné, že? Chatbot, ktorý napísal najlepší kód, bol teraz najhorší v ladení kódu niekoho iného. Tentoraz Claude zlyhal tam, kde ChatGPT a Gemini uspeli. Pre záznam, používame Claude Sonnet 4.6, ten istý model, ktorý sme používali predtým.

Bol som sklamaný, a pretože mám rád Clauda, ohýbal som pravidlá a dal som tomu ďalšiu šancu:

To je chyba, ale je to jemná chyba. V kóde je oveľa väčšia chyba. Taká, ktorá ho robí nepoužiteľným.

Claude sľúbil, že sa na kód pozrie starostlivejšie a pustil sa do toho znovu. Potom sa vrátil s ďalším výsledkom, ktorý bol opäť nesprávny. Ale zaujímavo, tým to neskončilo. Povedal: „poďme sa pozrieť dôkladnejšie,“ a pokračoval.

Potom odpovedalo ďalším zábleskom uvedomenia: „Teraz to vidím.“ Ale opäť sa zmýlilo s nesprávnym chybou. Toto stále nebol problém s mierkou, ktorý by zastavil vývoj. Ale Claude ani tak neprestával. Stále premýšľal a generoval, až kým konečne nenastal moment „počkaj, nie“. Vtedy si uvedomil chybu medzi AU a kilometrami. Následok, ktorý odvodiť, bol nesprávny, ale riešenie bolo napriek tomu správne. Úryvky z rozhovoru môžete vidieť v galérii vyššie.

Nakoniec nahlásil správny bug spolu so správnym riešením. Aj keď sa čudujem, koľko tokenov spotreboval pri tom všetkom premýšľaní, vzhľadom na Claudeove prísnejšie limity tokenov.

Získajte druhý pár očí, aj keď je umelý

Claude je viac bot než ostatné chatovací roboty. To je čiastočne dôvod, prečo som prešiel na Claude a prečo ho poslednou dobou používam najviac. Chcem, aby môj chatovací robot bol chatovacím robotom. Nechcem, aby sa snažil byť mojím najlepším priateľom. Nechcem ani nepotrebujem, aby sa správal ako človek.

Kým viac bežné chatboty ako Gemini a ChatGPT sa zdajú byť zamerané skôr na priemerného človeka a snažia sa znieť a pôsobiť ľudskejšie, Claude nie. Rád si myslím, že tento rozdiel sa prejavil aj v tomto teste. Claude našiel skutočné chyby, ale nie tú rozhodujúcu ako prvú. V Claudeovom uvažovaní to vyzeralo asi takto: toto je chyba; kód by nemal mať chyby; toto je dôležité; teda toto musí byť tá dôležitá chyba; koniec úlohy.

Claude vytvoril najsilnejší pôvodný simulátor, ale bol najslabší pri identifikovaní najdôležitejšej chyby, keď boli zapojené obmedzenia. Pre mňa je to hlavná lekcia. Získajte druhý pár očí na akýkoľvek projekt, ktorý je dôležitý, aj keď sú to umelé oči.

Na povrchu je jeden LLM veľmi podobný inému, ale líšia sa významnými spôsobmi. Začnite samostatnú konverzáciu a požiadajte ho, aby našiel chybu vo svojom vlastnom kóde tam. Ten istý kód pošlite ďalšiemu chatbotovi a požiadajte ho, aby urobil to isté.

Čoraz viac sa ukazuje, že neexistuje jeden model, ktorý by vládol všetkým. Pravdepodobne budeme potrebovať kombináciu z nich, do istej miery pre istotu.

Súvisiace články