Бірлік 6 / 12

Отладка және түбірлік себептерді талдау

Табыстар:

  • Қатені ең кішкентай қайталанатын данаға дейін азайту және оны толық дәлелдеумен AI-ға жылжыту мүмкіндігі
  • Дәлелді гипотезаларды ең арзан бақылаумен сынау және түпкі себебін табу мүмкіндігі
  • Симптомды түзетудің орнына негізгі себебін шешу және оны регрессия сынағымен қамтамасыз ету мүмкіндігі

Түзету - бұл бағдарламалық жасақтаманың неге күтпеген әрекет ететінін анықтау және оны түзету процесі. Бұл әзірлеуші ​​ең көп уақыт жұмсайтын және ең шаршайтын жұмыс; Өйткені көп жағдайда қате пайда болған жерде емес, бірнеше қадам артта жасырылады. AI - бұл зерттеуді тездететін күшті ойлау серіктес - бірақ сіз оған дұрыс дәлел келтірсеңіз ғана. Дәлелсіз жөндеу - бұл AI ең көп галлюцинация жасайтын аймақ.

Бұл бөлімде біз қатені жасаудан негізгі себепке жетуге дейінгі тәртіпті ағынды орнатамыз: симптомды нақтылау, дәлелдемелерді жинау (қате туралы хабар, стек ізі, журнал, енгізу), гипотезаны құру, гипотезаны тексеру және түзетуді растау. AI әр қадамда көмектеседі; бірақ «түзетілген» шешім қатенің шынымен жойылғанын көру арқылы қабылданады.

Неліктен дәлел бәрі бар?

LLM қатені сіз сияқты көрмейді; Ол сенің айтқаныңды ғана біледі. «Қолданба бұзылады» сияқты сөйлем модельге дерлік ақпарат бермейді, ал модель бос орынды болжаммен толтырады, яғни галлюцинация. Өз кезегінде, толық қате туралы хабар, стек ізі — қате орын алған функцияның бұзылуы, қатені тудырған кіріс және күтілетін нәрсе және т.б.. Бақыланатын әрекетті ескере отырып, модель шынайы ықтималдықтарды бағалай алады.

Түзету кезінде AI-ді детективтің көмекшісі ретінде қарастырыңыз: дәлелдемелерді неғұрлым көп ұсынсаңыз, ол жасаған гипотеза соғұрлым дәлірек болады. Егер ешқандай дәлел болмаса, көмекші тек болжап, сізді дұрыс емес жолмен жетелеуі мүмкін.

Кеңес: Қатені AI жүйесіне көшірмес бұрын, оны ең кішкентай қайталанатын мысалға дейін азайтыңыз. Қатені тудыратын ең кішкентай код және енгізу сізге де, үлгіге де жағдайды түбегейлі жеңілдетеді; Көбінесе бұл қысқарту кезінде себебін өзіңіз табасыз.

Қадамдық: Түбірлік себептерді талдау ағыны

  1. Симптомды нақтылаңыз. «Не болып жатыр, не болады деп күттіңіз?» Екеуін бір сөйлеммен жаз.
  2. Дәлелдерді жинаңыз. Толық қате туралы хабар, стек ізі, сәйкес журнал жолдары, іске қосу жазбасы, нұсқа ақпараты.
  3. Гипотезаны құрастырыңыз. AI-дан «Бұл симптомды түсіндіретін 3 ықтимал себеп және әрқайсысына қалай тестілеуге болады?» сұраңыз.
  4. Алдымен ең арзан гипотезаны сынап көріңіз. Журнал қосыңыз, мәнді басып шығарыңыз, сынақты орындаңыз. Дәлелдер гипотезаны растай ма?
  5. Симптомды емес, негізгі себепті түзетіңіз. Симптомды патчпен өшірудің орнына, негізгі себебін шешіңіз.
  6. Регрессиялық тестілеуді растаңыз және қосыңыз. Қатенің жойылғанын қараңыз; Содан кейін ол қайта оралмас үшін сол қатені анықтайтын сынақ жазыңыз.

Үш шағын корпус

1-жағдай — Стек ізі дұрыс файлға әкелді. Қолданба белгілі сұраулар бойынша 500 қатесін қайтарды. Әзірлеуші ​​AI-ға толық стек ізін және іске қосу сұрауын берді; Модель қате күнді талдау қабатындағы None мәнінен туындаған деген болжам жасады. Әзірлеуші ​​сол жолға журнал қосып, оны тексеріп, 15 минут ішінде шешті; Бір күн бұрын дәлелденбеген эксперименттермен 2 сағат босқа кеткен.

2-жағдай - Галлюцинация қате жолға әкелді. Басқа әзірлеуші ​​жай ғана «деректер қоры байланысы үзіліп жатыр» деп жазды. AI ешқандай дәлелсіз қосылым пулын орнатуды айыптады; Әзірлеуші ​​бұл параметрді өңдеуге 40 минут жұмсады. Нақты себеп желі жағында күту болды және тек журналдарды қарау арқылы анықталды. Сабақ: дәлелсіз қабылданған гипотеза тек ықтимал, сенімді емес.

3-жағдай – Қабыршақты қате анықталды. Кейде сәтсіздікке ұшырайтын сынақ болды. АИ-ге сынақ коды, сәтсіздік туралы хабарлама және «кейде ол өтеді, кейде ол сәтсіз болады» ақпараты берілді; модель сынақтардың ортақ уақытқа/тәртібіне тәуелділігін көрсетті. Шолу сынақтың жүйенің жергілікті уақытына негізделгенін растады. Сағат бекітілгеннен кейін (мазақ), сынақ тұрақты болды.

Көшірілетін төрт үлгі

Дәлелге негізделген гипотезаны құру:

Мен қатені түзетіп жатырмын. Төмендегі дәлелдер.- Күтілетін мінез-құлық: {{күтілетін}}- Бақыланатын мінез-құлық: {{бақыланған}}- Қате туралы хабар / стек ізі: {{trace}}- Тіркелгі енгізу: {{кіріс}}- Орта/нұсқа: {{нұсқа}}Осы симптомды түсіндіретін ЕҢ ЫҚТИМАЛ 3 түпкі себебін көрсетіңіз. Әрқайсысы үшін: қалай тестілеуге болады (ең арзан тексеру) және егер бұл рас болса, оны қалай түзетуге болады. Егер дәлелдер жеткіліксіз болса, сізге қандай қосымша ақпарат қажет екенін айтыңыз.

Стек ізін түсіндіру:

Осы стек ізін оқыңыз. Қате қай жолдан (түбірден) басталатынын және қай жолдар тізбектің жалғасы екенін ажыратыңыз. Алдымен қарауға 1-2 орынды ұсыныңыз. Қатысты код:{{code}}Түзу:{{trace}}

Минималды қайталауды азайту:

Төмендегі код қатені тудырады. Оны әлі де қатені тудыратын, бірақ қажетсіз нәрсені алып тастайтын ЕҢ КІШІ данаға дейін азайтыңыз. Сіз алып тастаған әрбір бөлік қатеге әсер етпейді деп ойламаңыз, бірақ "егер сіз оны жойған кезде қате жойылып кетсе, сол себепті" деп ескертпе қосыңыз.{{код}}

Түзетуден кейінгі валидация және регрессия сынағы:

Түбірлік себеп {{себеп}} деп есептейік және мен келесі түзетуді жасаймын: {{түзету}}.1) Бұл түзету шынымен симптомды түзете ме, оның қандай да бір жанама әсерлері бар ма?2) Болашақта бұл қатені анықтайтын регрессия сынамасын жазыңыз.

Әлсіз шақыру / Күшті шақыру

Әлсіз: «Код жұмыс істемейді, неге?»
Күшті: "Node 20 / Express. POST /orders элементтер денедегі бос жол болған кезде 500 мәнін қайтарады; 400 қайтарылуы керек еді. Стек ізі: TypeError: Анықталмаған сипаттарды оқу мүмкін емес ("0" оқу) — толық із және байланысты өңдеуші қоса берілген. Осының ең ықтимал 3 себебін және әрбір сынақтың себебін түсіндіріңіз. код]"

Күшті нұсқасы; Ол ортаны, соңғы нүктені, триггер енгізуін, нақты қате түрін және күтілетін әрекетті береді. Модель енді болжам жасай алмайды, талдау жасай алады.

қадам

AI үлесі

сіздің бақылауыңыз

дәлелдемелерді жинау

Қандай дәлел керек, еске салады

Шынымен дәлелдер жинайды

гипотезаны құру

Ықтимал себептерді көрсетіңіз

Мәтінмәнмен басымдық береді

гипотезаны тексеру

Сынақ әдісін ұсынады

Жеке басқарады және бақылайды

түзету

патч ұсынады

Бұл негізгі себепті шеше ме? Бұл рас.

регрессия

тест жазады

Сынақтың бұзылғанын тексереді

Симптомды емес, түпкі себебін шешу

Көбінесе AI симптомды тез өшіретін патчты ұсынады: әрекет ету/ұстау қосу, нөлдік тексеруді қою, қатені жұту. Бұл кейде дұрыс, жиі қауіпті; себебі бастапқы себеп орнында қалады және басқа жерден қайтадан атқылайды. Әрбір түзету кезінде өзіңізден сұраңыз: «Бұл қатенің себебін түзете ме, әлде оны көрінбейтін етеді ме?» Түбір себебін тапқаннан кейін түзету әдетте кішірек, берік және тұрақты болады.

Абайлаңыз: ерекше жағдайды (бос аулау) үнсіз жұту қатені шешпейді; бұл жай ғана жасырады және болашақ диагнозды мүмкін емес етеді. Егер AI осындай «шешімді» ұсынса, оны негізгі себепке күмәнданбай қабылдамаңыз.

Жалпы қателер

  • Дәлелсіз сұрақ қою. Көп мағыналы сөйлемдер модельді галлюцинацияға итермелейді; Толық қатені, ізді және енгізуді беріңіз.
  • Бірінші гипотезаны бекіту. AI бірінші ұсынысы ең ықтимал болмауы мүмкін; Ең арзан басқарылатын гипотезадан бастаңыз.
  • Симптомды түзету және негізгі себебін жоғалту. Дыбыссыз қате қайтарылады.
  • Түзетуді растамай жабу. Қате іс жүзінде жойылатынын өндіріске ұқсас жағдайда қараңыз.
  • Регрессия тесттерін жазбау. Ешбір сынақ қосылмаса, сол қате кейінгі нұсқаларда үнсіз қайтарылады.

Қысқаша айтқанда

Түзету кезінде AI қуаты сіз берген дәлелдерге тікелей пропорционалды: қате туралы толық хабарсыз, стек ізінсіз, енгізуді іске қосусыз және күтілетін әрекетсіз, модель жай ғана болжайды. Тәртіпті ағын – симптомды нақтылау, дәлелдемелерді жинау, гипотезаны құру, ең арзан бақылаумен сынау, түбірлік себепті түзету, тексеру және регрессия тестін қосу – қатені тез және біржола жабады. AI – гипотеза генераторы; Қатенің шынымен шешілгенін өзіңіз шешесіз.

Қолданбалы тапсырма

Жақында кездескен нақты қатені таңдаңыз (немесе сынақ қатесін қайта жасаңыз). Алдымен «ең аз көбейту» қадамын орындаңыз; Қатені тудыратын ең кішкентай кодты және енгізуді алып тастаңыз. Содан кейін «дәлелдерге негізделген гипотезаны құру» үлгісімен AI-дан 3 ықтимал себеп пен сынақ әдістерін алыңыз. Ең арзан гипотезаны өзіңіз сынап көріңіз, түпкі себебін табыңыз, оны түзетіңіз және соңында бұл қатені болашақта ұстайтын және сынақтың шынымен бұзылғанын тексеретін регрессия сынамасын жазыңыз.

бақылау парағы

  • [ ] Мен қатені AI-ге көшірмес бұрын ең кіші қайталанатын үлгіге дейін азайтамын.
  • [ ] Шақыруға толық қате туралы хабарды, стек ізін, енгізуді және күтілетін әрекетті қосып жатырмын.
  • [ ] Мен бір гипотезаға қамалмай, ең арзан бақыланатыннан бастаймын.
  • [ ] Симптомды түзетудің орнына негізгі себебін шешкенімді растаймын.
  • [ ] Түзету қатені түзететінін байқаймын.
  • [ ] Әрбір шешілген қате үшін регрессия сынағы қосамын.