zisky:
- Schopnosť zredukovať chybu na najmenšiu reprodukovateľnú inštanciu a presunúť ju do AI s úplným dôkazom
- Schopnosť testovať hypotézy založené na dôkazoch s najlacnejšou kontrolou a nájsť hlavnú príčinu
- Schopnosť vyriešiť hlavnú príčinu a zabezpečiť ju regresným testom namiesto opravy symptómu
Ladenie je proces zisťovania, prečo sa softvér správa neočakávane, a jeho oprava. Je to práca, kde vývojár trávi najviac času a je najviac unavený; Pretože väčšinou chyba nie je tam, kde sa objaví, ale je skrytá pár krokov pozadu. Umelá inteligencia je výkonným partnerom na myslenie, ktorý urýchľuje tento výskum – ale iba vtedy, ak mu poskytnete správne dôkazy. Ladenie bez dôkazov je oblasťou, kde AI produkuje najviac halucinácií.
V tejto jednotke zavedieme disciplinovaný tok od generovania chyby po dosiahnutie základnej príčiny: objasnenie symptómu, zhromaždenie dôkazov (chybová správa, sledovanie zásobníka, protokol, záznam), vygenerovanie hypotézy, testovanie hypotézy a overenie opravy. AI pomáha na každom kroku; ale "pevné" rozhodnutie sa urobí tak, že uvidíte, že chyba skutočne zmizla.
Prečo sú dôkazy všetkým?
LLM nevidí chybu tak, ako vy; Vie len to, čo mu poviete. Veta ako „Aplikácia zlyhá“ neposkytuje modelu takmer žiadne informácie a model vypĺňa medzeru predpoveďou – teda halucináciou. Na druhej strane úplné chybové hlásenie, stopa zásobníka – rozpis toho, prostredníctvom ktorého volania funkcie sa chyba vyskytla, vstup, ktorý spustil chybu a čo sa očakávalo, atď. Vzhľadom na pozorované správanie môže model hodnotiť skutočné pravdepodobnosti.
Pri ladení si predstavte AI ako asistenta detektíva: čím viac dôkazov predložíte, tým presnejšiu hypotézu vytvorí. Ak neexistujú žiadne dôkazy, asistent bude iba hádať a môže vás naviesť na nesprávnu stopu.
Tip: Pred prenesením chyby do AI ju zredukujte na najmenší reprodukovateľný príklad. Najmenší kód a vstup, ktorý spúšťa chybu, výrazne uľahčuje prácu vám aj modelu; najčastejšie pri tejto redukcii nájdete príčinu sami.
Krok za krokom: Priebeh analýzy koreňovej príčiny
- Objasnite symptóm. "Čo sa deje, čo si čakal, že sa stane?" Napíšte dve do jednej vety.
- Zhromaždite dôkazy. Úplné chybové hlásenie, sledovanie zásobníka, príslušné riadky denníka, spúšťací záznam, informácie o verzii.
- Nechajte vygenerovať hypotézu. Z AI „3 možné príčiny, ktoré vysvetľujú tento príznak, a ako ich otestujem?“ spýtaj sa.
- Najprv otestujte najlacnejšiu hypotézu. Pridajte protokol, vytlačte hodnotu, spustite test. Potvrdzujú dôkazy hypotézu?
- Opravte hlavnú príčinu, nie symptóm. Namiesto utlmenia symptómu náplasťou sa zamerajte na hlavnú príčinu.
- Overte a pridajte regresné testovanie. Pozrite sa, ako chyba zmizne; Potom napíšte test, ktorý túto chybu zachytí, aby sa nevrátila.
Tri mini puzdrá
Prípad 1 – Sledovanie zásobníka viedlo k správnemu súboru. Aplikácia vracala pri určitých požiadavkách chybu 500. Vývojár dal AI úplnú stopu zásobníka a požiadavku na spustenie; Model predpokladal, že chyba bola spôsobená hodnotou None vo vrstve analýzy dátumu. Vývojár do toho riadku pridal protokol, overil ho a vyriešil za 15 minút; 2 hodiny boli premrhané deň predtým neoverenými pokusmi.
Prípad 2 – Halucinácie viedli k nesprávnej ceste. Iný vývojár jednoducho napísal "pripojenie k databáze klesá". AI obvinila nastavenie fondu pripojení bez akýchkoľvek dôkazov; Vývojár strávil 40 minút práce s týmto nastavením. Skutočnou príčinou bol časový limit na strane siete a bol odhalený až pohľadom na protokoly. Poučenie: hypotéza prijatá bez dôkazov je len pravdepodobná, nie spoľahlivá.
Prípad 3 – Zachytená chyba odlupovania. Bol tam test, ktorý občas zlyhal. Umelá inteligencia dostala testovací kód, správu o zlyhaní a informáciu „niekedy to prejde, niekedy zlyhá“; model indikoval zdieľanú závislosť testov od času/poradia. Preskúmanie potvrdilo, že test bol založený na miestnom čase systému. Akonáhle boli hodiny opravené (zosmiešňované), test sa stal stabilným.
Štyri kopírovateľné šablóny
Generovanie hypotéz na základe dôkazov:
Ladím chybu. Dôkaz nižšie.- Očakávané správanie: {{expected}}- Pozorované správanie: {{observed}}- Chybové hlásenie/sledovanie zásobníka: {{trace}}- Spúšťací vstup: {{input}}- Prostredie/verzia: {{version}}Uveďte 3 NAJPRAVDEpodobnejšie hlavné príčiny, ktoré vysvetľujú tento príznak. Pre každý: ako mám testovať (najlacnejšia kontrola) a ako to opraviť, ak je to pravda. Ak sú dôkazy nedostatočné, povedzte mi, aké ďalšie informácie potrebujete.
Interpretácia stopy zásobníka:
Prečítajte si túto stopu zásobníka. Rozlišujte, v ktorom riadku chyba PRAVDEPODOBNE začína (koreň) a ktoré riadky sú len pokračovaniami reťazca. Navrhnite 1-2 miesta, ktoré by ste si mali pozrieť ako prvé. Súvisiaci kód:{{code}}Sledovať:{{trace}}
Minimálne opakované odčítanie:
Nižšie uvedený kód vytvára chybu. Znížte ho na NAJMENŠIU inštanciu, ktorá stále spúšťa chybu, ale zahodí všetko nepotrebné. Nepredpokladajte, že každý kúsok, ktorý odstránite, neovplyvní chybu, ale pridajte poznámku „ak chyba zmizne, keď odstránite toto, práve preto“.{{code}}
Overenie po korekcii a regresné testovanie:
Predpokladajme, že hlavná príčina je {{cause}} a urobím nasledujúcu opravu: {{fix}}.1) Opravuje táto oprava skutočne symptóm, bude mať nejaké vedľajšie účinky?2) Napíšte regresný test, ktorý túto chybu v budúcnosti zachytí.
Slabá výzva / Silná výzva
Slabý: "Kód nefunguje, prečo?"
Strong: "Node 20 / Express. POST /orders vráti 500, keď položky sú prázdnym reťazcom v tele; mali vrátiť 400. Sledovanie zásobníka: TypeError: Nemožno prečítať vlastnosti undefined (číta sa '0') – v prílohe je úplné sledovanie a pridružený obslužný program. Dajte mi 3 najpravdepodobnejšie príčiny, ktoré vysvetľujú tento príznak a ako otestovať každý z nich."
Výkonná verzia; Poskytuje prostredie, koncový bod, vstup spúšťača, presný typ chyby a očakávané správanie. Model už nemôže robiť predpovede, ale analýzy.
krok
Príspevok AI
vaša kontrola
zbieranie dôkazov
Aké dôkazy sú potrebné, pripomína
Naozaj zbiera dôkazy
generovanie hypotéz
Uveďte možné dôvody
Uprednostňuje sa podľa kontextu
testovanie hypotéz
Odporúča skúšobnú metódu
Operuje a pozoruje osobne
korekcia
patch odporúča
Rieši hlavnú príčinu? je to pravda.
regresia
napíše test
Overí, či je test prerušený
Riešenie hlavnej príčiny, nie symptómu
Väčšinu času AI navrhne opravu, ktorá rýchlo umlčí symptóm: pridajte pokus/úlovok, vykonajte kontrolu nuly, prehltnite chybu. To je niekedy pravda, často nebezpečné; pretože pôvodná príčina zostáva na svojom mieste a opäť vybuchne odinakiaľ. Pri každej oprave si položte otázku: „Opravuje to príčinu chyby alebo ju robí neviditeľnou?“ Keď nájdete hlavnú príčinu, oprava je zvyčajne menšia, robustnejšia a trvalejšia.
Upozornenie: Tiché prehltnutie výnimky (prázdna záchytka) nevyrieši chybu; iba zakrýva a znemožňuje budúcu diagnózu. Ak AI navrhne takéto „riešenie“, neakceptujte ho bez toho, aby ste spochybnili hlavnú príčinu.
Časté chyby
- Kladenie otázok bez dôkazov. Nejednoznačné vety tlačia modelku do halucinácie; Uveďte úplnú chybu, sledovanie a vstup.
- Zamerajte sa na prvú hypotézu. Prvý návrh AI nemusí byť najpravdepodobnejší; Začnite s najlacnejšou kontrolovateľnou hypotézou.
- Oprava symptómu a vynechanie hlavnej príčiny. Umlčaná chyba sa vráti.
- Zatvorenie opravy bez jej overenia. V stave podobnom výrobe uvidíte, že chyba skutočne zmizne.
- Nepísanie regresných testov. Ak nie sú pridané žiadne testy, rovnaká chyba sa ticho vráti v neskorších verziách.
V súhrne
Pri ladení je sila AI priamo úmerná dôkazom, ktoré jej poskytnete: bez úplného chybového hlásenia, sledovania zásobníka, spúšťacieho vstupu a očakávaného správania model len špekuluje. Disciplinovaný tok – objasnenie symptómu, zhromaždenie dôkazov, generovanie hypotéz, testovanie s najlacnejšou kontrolou, oprava hlavnej príčiny, overenie a pridanie regresného testovania – odstraňuje chybu rýchlo a natrvalo. AI je generátor hypotéz; Vy ste ten, kto rozhodne, že chyba je skutočne vyriešená.
Aplikačná úloha
Vyberte skutočnú chybu, s ktorou ste sa nedávno stretli (alebo zopakujte testovaciu chybu). Najprv urobte krok „minimálnej reprodukcie“; Odstráňte najmenší kód a vstup, ktorý spúšťa chybu. Potom získajte 3 možné príčiny a testovacie metódy z AI pomocou šablóny „generovania hypotézy založenej na dôkazoch“. Sami si otestujte najlacnejšiu hypotézu, nájdite hlavnú príčinu, opravte ju a nakoniec napíšte regresný test, ktorý túto chybu v budúcnosti zachytí a overí, či je test skutočne porušený.
kontrolný zoznam
- [ ] Pred presunom do AI znížim chybu na najmenšiu reprodukovateľnú vzorku.
- [ ] Do výzvy pridávam úplné chybové hlásenie, sledovanie zásobníka, vstup a očakávané správanie.
- [ ] Začnem tým najlacnejším ovládateľným bez toho, aby som bol uzavretý do jedinej hypotézy.
- [ ] Overujem si, že som vyriešil hlavnú príčinu a nie opravoval symptóm.
- [ ] Všimol som si, že oprava skutočne opravuje chybu.
- [ ] Pre každú vyriešenú chybu pridávam regresný test.