Ieguvumi:
- Iespēja samazināt kļūdu līdz mazākajai reproducējamai instancei un pārvietot to uz AI ar pilnu pierādījumu
- Spēja pārbaudīt uz pierādījumiem balstītas hipotēzes ar lētāko kontroli un atrast galveno cēloni
- Spēja atrisināt galveno cēloni un nodrošināt to ar regresijas testu, nevis simptomu lāpīšanu
Atkļūdošana ir process, kurā tiek noskaidrots, kāpēc programmatūra darbojas negaidīti, un to novērst. Tas ir darbs, kurā izstrādātājs pavada visvairāk laika un visvairāk nogurst; Jo visbiežāk kļūda nav tur, kur tā parādās, bet slēpjas pāris soļus aiz muguras. AI ir spēcīgs domāšanas partneris, kas paātrina šo izpēti, taču tikai tad, ja sniedzat tam pareizos pierādījumus. Atkļūdošana bez pierādījumiem ir joma, kurā AI rada visvairāk halucināciju.
Šajā vienībā mēs izveidojam disciplinētu plūsmu no kļūdas ģenerēšanas līdz pamatcēloņa sasniegšanai: simptoma noskaidrošana, pierādījumu vākšana (kļūdas ziņojums, steka izsekošana, žurnāls, ieraksts), hipotēzes ģenerēšana, hipotēzes pārbaude un labojuma apstiprināšana. AI palīdz ik uz soļa; bet "izlabots" lēmums tiek pieņemts, redzot, ka kļūda patiešām ir pazudusi.
Kāpēc pierādījumi ir viss?
LLM neredz kļūdu tā, kā jūs to redzat; Viņš zina tikai to, ko tu viņam saki. Tāds teikums kā “Lietojumprogramma avarē” nesniedz modelim gandrīz nekādu informāciju, un modelis aizpilda šo robu ar prognozi, tas ir, halucināciju. Savukārt pilns kļūdas ziņojums, steka izsekošana — sadalījums par to, kura funkcija izsauc kļūdu, ievade, kas izraisīja kļūdu, un kas bija gaidāms utt. Ņemot vērā novēroto uzvedību, modelis var ranžēt patiesās varbūtības.
Veicot atkļūdošanu, domājiet par AI kā detektīva palīgu: jo vairāk pierādījumu jūs iesniedzat, jo precīzāku hipotēzi tas ģenerē. Ja nav pierādījumu, palīgs tikai uzminēs un var jūs novest uz nepareizā ceļa.
Padoms. Pirms kļūdas pārnešanas uz AI, samaziniet to līdz mazākajam atkārtojamam piemēram. Mazākais kods un ievade, kas izraisa kļūdu, ievērojami atvieglo darbu gan jums, gan modelim; visbiežāk šīs samazināšanas laikā cēloni atrodat pats.
Soli pa solim: pamatcēloņa analīzes plūsma
- Noskaidrojiet simptomu. "Kas notiek, ko jūs gaidījāt?" Uzrakstiet abus vienā teikumā.
- Savāc pierādījumus. Pilns kļūdas ziņojums, steka izsekošana, attiecīgās žurnāla rindas, palaišanas ieraksts, versijas informācija.
- Izveidojiet hipotēzi. No AI “3 iespējamie cēloņi, kas izskaidro šo simptomu, un kā pārbaudīt katru?” jautāt.
- Vispirms pārbaudi lētāko hipotēzi. Pievienojiet žurnālu, izdrukājiet vērtību, palaidiet testu. Vai pierādījumi apstiprina hipotēzi?
- Novērsiet galveno cēloni, nevis simptomu. Tā vietā, lai apklusinātu simptomu ar plāksteri, novērsiet galveno cēloni.
- Apstipriniet un pievienojiet regresijas testu. Skatiet, ka kļūda pazūd; Pēc tam uzrakstiet testu, kas atklās šo kļūdu, lai tā neatkārtotos.
Trīs mini futrāļi
1. gadījums — steka izsekošana noveda pie pareizā faila. Lietojumprogramma dažiem pieprasījumiem atgrieza kļūdu 500. Izstrādātājs AI sniedza pilnu steka izsekošanu un iedarbināšanas pieprasījumu; Modelis izvirzīja hipotēzi, ka kļūdu izraisīja vērtība None datuma parsēšanas slānī. Izstrādātājs šai rindai pievienoja žurnālu, to pārbaudīja un atrisināja 15 minūšu laikā; 2 stundas tika izniekotas iepriekšējā dienā ar nepierādītiem eksperimentiem.
2. gadījums — halucinācijas noveda pie nepareiza ceļa. Cits izstrādātājs vienkārši uzrakstīja "datu bāzes savienojums nokrīt". AI apsūdzēja savienojumu baseina iestatījumu bez jebkādiem pierādījumiem; Izstrādātājs pavadīja 40 minūtes, lai izdomātu šo iestatījumu. Patiesais iemesls bija taimauts tīkla pusē, un tas tika atklāts, tikai apskatot žurnālus. Nodarbība: hipotēze, kas izvirzīta bez pierādījumiem, ir tikai iespējama, nevis ticama.
3. gadījums — konstatēta neskaidra kļūda. Bija tests, kas reizēm neizdevās. AI tika piešķirts testa kods, kļūdas ziņojums un informācija "dažreiz tas iziet, dažreiz tas neizdodas"; modelis norādīja uz kopīgu testu laika/kārtības atkarību. Pārskats apstiprināja, ka tests tika veikts, pamatojoties uz sistēmas vietējo laiku. Kad pulkstenis tika fiksēts (izsmiets), tests kļuva stabils.
Četras kopējamas veidnes
Uz pierādījumiem balstītu hipotēžu ģenerēšana:
Es atkļūdoju kļūdu. Tālāk ir sniegti pierādījumi.- Paredzamā darbība: {{expected}}- Novērotā darbība: {{novērots}}- Kļūdas ziņojums/steka izsekošana: {{trace}}- Ieslēgšanās ievade: {{input}}- Vide/versija: {{version}}Norādiet 3 VIS IESPĒJAMĀS pamatcēloņus, kas izskaidro šo simptomu. Katram: kā pārbaudīt (lētākā pārbaude) un kā to labot, ja tā ir patiesa. Ja pierādījumi nav pietiekami, pastāstiet man, kāda papildu informācija jums ir nepieciešama.
Stack trases interpretācija:
Izlasiet šo steka izsekojumu. Atšķiriet, kurā rindā kļūda, IESPĒJAM, sākas (sakne) un kuras rindas ir tikai ķēdes turpinājums. Iesakiet 1-2 vietas, kuras vispirms apskatīt. Saistītais kods:{{code}}Izsekošana:{{trace}}
Minimālā repro atņemšana:
Tālāk norādītais kods rada kļūdu. Samaziniet to līdz MAZĀKO gadījumu, kas joprojām izraisa kļūdu, bet atmet visu nevajadzīgo. Nedomājiet, ka katra noņemtā daļa neietekmē kļūdu, bet pievienojiet piezīmi "ja kļūda pazūd, kad to noņemat, tas ir iemesls".{{code}}
Pēckorekcijas validācija un regresijas pārbaude:
Pieņemsim, ka galvenais cēlonis ir {{cause}}, un es veicu šādu labojumu: {{labojums}}.1) Vai šis labojums patiešām novērš simptomu, vai tam būs kādas blakusparādības?2) Uzrakstiet regresijas testu, kas nākotnē atklās šo kļūdu.
Vāja uzvedne / spēcīga uzvedne
Vāji: "Kods nedarbojas, kāpēc?"
Strong: "Node 20/Express. POST /orders atgriež 500, ja vienumu pamattekstā ir tukša virkne; vajadzēja atgriezt 400. Steka izsekošana: TypeError: Nevar nolasīt undefined rekvizītus (lasa "0") — pievienota pilna izsekošana un saistītais apdarinātājs. Norādiet 3 iespējamākos iemeslus, kas izskaidro šo + koda simptomu.
Jaudīga versija; Tas sniedz vidi, beigu punktu, sprūda ievadi, precīzu kļūdas veidu un paredzamo uzvedību. Modelis vairs nevar prognozēt, bet gan analizēt.
solis
AI ieguldījums
jūsu kontrole
pierādījumu vākšana
Kādi pierādījumi ir nepieciešami, atgādina
Tiešām vāc pierādījumus
hipotēžu ģenerēšana
Uzskaitiet iespējamos iemeslus
Prioritātes nosaka atkarībā no konteksta
hipotēžu pārbaude
Iesaka pārbaudes metodi
Darbojas un novēro personīgi
korekcija
plāksteris iesaka
Vai tas atrisina galveno cēloni? Tā ir taisnība.
regresija
raksta testu
Pārbauda, vai pārbaude ir bojāta
Galvenā cēloņa, nevis simptoma risināšana
Lielāko daļu laika AI ieteiks ielāpu, kas ātri apklusina simptomu: pievienojiet mēģinājumu/noķeriet, ielieciet nulles pārbaudi, norīt kļūdu. Dažreiz tā ir patiesība, bieži vien bīstama; jo sākotnējais cēlonis paliek savā vietā un atkal izplūst no kaut kurienes citur. Veicot katru labojumu, pajautājiet sev: “Vai tas novērš kļūdas cēloni vai padara to neredzamu?” Kad atrodat galveno cēloni, labojums parasti ir mazāks, izturīgāks un pastāvīgāks.
Uzmanību: klusi norijot izņēmumu (tukša nozveja), kļūda netiek novērsta; tas tikai slēpj un padara turpmāku diagnozi neiespējamu. Ja AI ierosina šādu "risinājumu", nepieņemiet to, neapšaubot galveno cēloni.
Biežas kļūdas
- Jautājumu uzdošana bez pierādījumiem. Neviennozīmīgi teikumi iegrūž modeli halucinācijās; Sniedziet pilnu kļūdu, izsekošanu un ievadi.
- Ieslēgšanās pie pirmās hipotēzes. AI pirmais ieteikums var nebūt visticamākais; Sāciet ar lētāko kontrolējamo hipotēzi.
- Simptomu lāpīšana un galvenā iemesla pazušana. Atgriežas apklusinātā kļūda.
- Labojuma aizvēršana, to nepārbaudot. Skatiet ražošanas līdzīgā stāvoklī, ka kļūda faktiski pazūd.
- Regresijas testu nerakstīšana. Ja testi netiek pievienoti, tā pati kļūda klusi tiks atgriezta jaunākajās versijās.
Rezumējot
Atkļūdošanas laikā AI jauda ir tieši proporcionāla jūsu sniegtajiem pierādījumiem: bez pilna kļūdas ziņojuma, steka izsekošanas, iedarbināšanas ievades un paredzamās darbības modelis tikai spekulē. Disciplinēta plūsma — noskaidrojiet simptomus, apkopojiet pierādījumus, ģenerējiet hipotēzes, pārbaudiet ar lētāko kontroli, novērsiet galveno cēloni, pārbaudiet un pievienojiet regresijas testēšanu — ātri un neatgriezeniski izslēdz kļūdu. AI ir hipotēžu ģenerators; Jūs esat tas, kurš nolemj, ka kļūda patiešām ir novērsta.
Lietojumprogrammas uzdevums
Izvēlieties īstu kļūdu, ar kuru esat saskāries nesen (vai atkārtojiet testa kļūdu). Vispirms veiciet “minimālās reproducēšanas” soli; Noņemiet mazāko kodu un ievadi, kas izraisa kļūdu. Pēc tam iegūstiet 3 iespējamos cēloņus un testēšanas metodes no AI, izmantojot veidni “uz pierādījumiem balstītas hipotēzes ģenerēšana”. Pārbaudi pats lētāko hipotēzi, atrodi galveno cēloni, novērs to un visbeidzot uzraksti regresijas testu, kas turpmāk noķers šo kļūdu un pārliecinās, vai tests tiešām ir bojāts.
kontrolsaraksts
- [ ] Es samazinu kļūdu līdz mazākajam reproducējamam paraugam, pirms to pārvietoju uz AI.
- [ ] Uzvednei pievienoju pilnu kļūdas ziņojumu, steka izsekošanu, ievadi un paredzamo darbību.
- [ ] Es sāku ar lētāko vadāmo, neieslēdzoties vienā hipotēzē.
- [ ] Es pārbaudu, vai esmu novērsis galveno cēloni, nevis labojis simptomu.
- [ ] Es novēroju, ka labojums faktiski novērš kļūdu.
- [ ] Katrai novērstajai kļūdai pievienoju regresijas testu.