Faida:
- Uwezo wa kupunguza haraka sababu zinazowezekana kwa kutoa rekodi za kuacha kufanya kazi (fuatilizi za safu) kwa akili ya bandia na msimbo husika na muktadha wa hali.
- Uwezo wa kusuluhisha kabisa sababu kuu badala ya kudhibitisha utambuzi wa AI kama dhana ya kificho na kupima na kunyamazisha dalili.
- Kulinda faragha unapotatua kwa kuficha data ya kibinafsi katika rekodi za kuacha kufanya kazi na kumbukumbu
Kila programu inatoa makosa; Kinachotofautisha msanidi mzuri ni jinsi wanavyopata na kurekebisha hitilafu kwa haraka. Utatuzi wa rununu - kutafuta na kurekebisha chanzo cha shida - ni ngumu sana kwa sababu hitilafu hutokea kwenye kifaa cha mtumiaji, katika mazingira ambayo huwezi kuona. Mara nyingi, ulicho nacho ni kumbukumbu ya kuacha kufanya kazi (logi ya kuacha kufanya kazi / ufuatiliaji wa rafu — uchanganuzi wa kiufundi wa mahali programu ilipoenda ilipoanguka). AI ina nguvu sana katika kusoma rekodi hizi za siri, kuorodhesha sababu zinazowezekana, na kupendekeza suluhisho. Katika kitengo hiki tutajifunza jinsi ya kutumia AI kama "upelelezi wa hitilafu" lakini tukuachie jukumu la kuthibitisha utambuzi wa mwisho na kurekebisha.
Kusoma logi ya ajali: Ambapo AI inang'aa zaidi
Rekodi ya ajali ni maandishi marefu na ya kutisha; msanidi programu asiye na uzoefu hatajua pa kuangalia. AI huchanganua maandishi haya kwa sekunde: ni kwa mstari gani ilianguka, ni ubaguzi gani ulitupwa, ni sababu gani inayowezekana. Makosa ya kawaida ya rununu ni dhahiri na AI inayatambua haraka: NullPointerException (inajaribu kufikia thamani isiyofaa), IndexOutOfBoundsException (kufikia kipengee cha orodha kisichokuwepo) kwenye Android, EXC_BAD_ACCESS (kufikia kumbukumbu iliyoachiliwa) kwenye iOS, bila kutarajia kupatikana nil (kulazimisha).
Aina za kawaida za ajali za simu na sababu zao za kawaida ni kama ifuatavyo.
Hitilafu (isipokuwa)
Jukwaa
sababu ya kawaida
NullPointerException
Android
Kufikia thamani isiyofaa
IndexOutOfBoundsException
Android
Kufikia kipengee cha orodha ambacho hakipo
bila kutarajia kupatikana hakuna
iOS
Lazimisha kufunua bila hiari (!)
EXC_BAD_ACCESS
iOS
Kupata kumbukumbu huru
ANR/kufungia
Android
Usindikaji mrefu/nzito kwenye uzi mkuu
Mtiririko wa utatuzi wa hatua kwa hatua:
- Kusanya rekodi. Weka pamoja kumbukumbu ya kuacha kufanya kazi, ujumbe wa hitilafu, na hatua za kuitayarisha tena ikiwezekana.
- Toa muktadha wa AI. Niambie sio kosa tu, lakini kipande cha nambari inayofaa na kile kilianguka kikifanya.
- Uliza sababu zinazowezekana. "Niambie sababu 3 zinazowezekana na jinsi ya kuthibitisha kila moja."
- Thibitisha. Thibitisha sababu iliyopendekezwa katika kanuni na majaribio; Usirekebishe kwa kubahatisha.
- Irekebishe na ujaribu tena. Angalia ikiwa kosa limeenda na hakuna makosa mapya yanayotolewa.
Kidokezo: Unapotoa kumbukumbu ya kuacha kufanya kazi kwa AI, jumuisha kijisehemu cha msimbo husika pia. AI hufanya utabiri wa jumla tu kwa ufuatiliaji wa rafu; Unapoona msimbo, uwezekano wa kupata mstari halisi na sababu halisi huongezeka sana. Muktadha huamua ubora wa utambuzi.
Mtego wa data ya kibinafsi
Kumbukumbu za kuacha kufanya kazi mara nyingi huwa na data ya mtumiaji: barua pepe, kitambulisho cha mtumiaji, eneo, hata maudhui ya fomu. Kubandika rekodi hii kwenye AI kama ilivyo ni kuvuja data ya kibinafsi kwa wahusika wengine na ni ukiukaji wa KVKK / GDPR. Futa (mask) maeneo ya kibinafsi kabla ya kuwasilisha rekodi. Pia, kuwa mwangalifu usiandike data ya kibinafsi kwa kumbukumbu za programu yako tangu mwanzo; Rekodi nzuri inaelezea shida lakini haionyeshi utambulisho.
Tahadhari: Marekebisho yaliyopendekezwa na AI yanaweza "kunyamazisha mdudu" lakini haiwezi kutatua chanzo kikuu. Kwa mfano, kufunga NullPointerException na hundi isiyofaa kutasimamisha ajali, lakini ikiwa haujui ni kwa nini thamani haijakamilika, hitilafu halisi ya mantiki itaendelea. Kutibu ugonjwa, sio dalili.
Uchambuzi wa sababu za mizizi
Lengo la utatuzi wa kitaalamu sio kunyamazisha kosa bali kutafuta chanzo. Niliuliza AI "kwa nini hii inaweza kuwa mbaya, inaweza kuwa imepotea wapi katika mtiririko wa data?" wakiuliza, “Ninawezaje kunyamazisha jambo hili?” Ni muhimu zaidi kuliko kuuliza. Mara tu sababu ya msingi inapatikana, kadhaa ya tofauti za makosa sawa hutatuliwa mara moja. AI ni nzuri katika hoja hii ya mnyororo: fuata data kutoka kwa pembejeo hadi pato na iulize ifikirie juu ya mahali inapovunjika.
kesi tatu ndogo
Kesi 1 - masaa 2 ya kazi katika dakika 10. Msanidi programu alitumia saa 2 kutafuta hitilafu iliyoanguka kwenye muundo maalum wa Samsung pekee. Ilitoa logi ya ajali (kusafisha maeneo ya kibinafsi) kwa AI; YZ alisema kuwa hitilafu inaelekeza kwenye kumbukumbu iliyojaa ambayo hutokea kwa azimio tofauti la kamera ya kifaa hicho. Kwa kidokezo, sababu ilipatikana katika dakika 10. AI iliharakisha utafutaji, binadamu alithibitisha suluhisho.
Kesi ya 2 - Mdudu aliyenyamazishwa amerejea. Timu moja ilinyamazisha tukio la kuacha kufanya kazi linalojirudia kwa kutumia pendekezo la AI kujaribu kulikamata. Kuanguka kumesimama, lakini watumiaji walianza kulalamika kwamba "data haihifadhi"; kwa sababu shida halisi (muunganisho wa hifadhidata) ilikuwa bado iko, ilikuwa haijaonekana. Mara tu chanzo kikuu kilipopatikana, ajali na upotezaji wa data zilitatuliwa. Somo: kunyamazisha sio suluhu.
Kesi ya 3 - Data imevuja kwenye logi. Ukaguzi uligundua kuwa majina kamili ya watumiaji na nambari za simu ziliandikwa kwenye kumbukumbu za programu kuacha kufanya kazi. Watengenezaji mara kwa mara walibandika kumbukumbu hizi kwenye AI na mende zilizowekwa; Kwa hivyo data ya kibinafsi imekuwa ikitoka kwa miezi. Kumbukumbu zilifunikwa na mchakato ulisahihishwa. Somo: usiri hutumika hata wakati wa kutatua.
Mwongozo dhaifu / Mwongozo thabiti
Ushauri mbaya: "Kwa nini hitilafu hii inatokea? [ufuatiliaji wa rafu]"
Kidokezo chenye nguvu: "Hii hitilafu inatokea katika programu yangu ya Android. Muktadha:- Wakati nikifanya: mtumiaji anaongeza kikapu kutoka kwa maelezo ya bidhaa- Kwenye baadhi ya vifaa pekee, miundo ya chini ya RAM- Msimbo unaohusiana: [ViewModel na sehemu ya Repository]- Rekodi ya kuacha kufanya kazi (data ya kibinafsi imefutwa): [ufuatiliaji wa mrundikano]Orodhesha sababu 3 zinazowezekana zaidi. Kwa kila:1) Udhibitishaji wako wa Kudumu (2) Je! ambapo huna uhakika."
Violezo vinavyoweza kunakiliwa
Kiolezo cha uchanganuzi wa kuacha kufanya kazi:"Changanua hitilafu ifuatayo ya kuacha kufanya kazi. Muktadha: [unachofanya, kifaa/toleo gani]. Msimbo husika: [msimbo]. Rekodi ya kuacha kufanya kazi (data ya kibinafsi imefutwa): [fuatilia]. Toa sababu 3 zinazowezekana zaidi na uthibitishaji + urekebishaji wa kudumu kwa kila moja. Pia weka alama kwenye njia za kurekebisha ambazo zinazima dalili."
Kiolezo cha chanzo: "Thamani hii inakuja [null/false] bila kutarajiwa. Fuata mtiririko wa data kutoka kwa ingizo hadi hatua hii: ni wapi inaweza kupotea au kuharibika? Niambie ni wapi ninapaswa kuangalia katika kila hatua. [code]"
Kiolezo cha kusoma kumbukumbu: "Tafsiri matokeo haya ya kumbukumbu: ni matukio gani yaliyotokea kwa mpangilio, upotovu uko wapi, ni hatua gani ya mwisho ya afya kabla ya hitilafu? [logi — data ya kibinafsi imefutwa]"
Kiolezo cha utayarishaji: "Je, ni hatua gani, hali ya kifaa na data ninapaswa kujaribu kuzalisha hitilafu hii kwa njia ya kuaminika? Orodhesha hali ambazo zinaweza kusababisha hitilafu kwa mpangilio wa uwezekano. [maelezo]"
Makosa ya kawaida
- Inatoa ufuatiliaji wa rafu bila muktadha. Bila nambari na hali inayofaa, AI hufanya utabiri wa jumla.
- Kubandika data ya kibinafsi kwenye AI pamoja na kumbukumbu. Uvunjaji wa usiri; mask kwanza.
- Nyamazisha dalili. Kuficha ajali kwa kujaribu-kukamata huacha tatizo na huleta matatizo mapya.
- Kutumia pendekezo la kwanza bila kulithibitisha. Utambuzi wa AI ni hypothesis; Thibitisha kwa msimbo.
- Kujaribu kuizalisha tena kwenye emulator. Baadhi ya hitilafu huonekana kwenye kifaa/hali halisi pekee.
- Haijajaribu tena baada ya kusahihisha. Marekebisho yanaweza kuwa yamevunja kitu kingine; Angalia kurudi nyuma.
Kwa muhtasari
Moja ya maeneo ambayo AI inafaulu ni kusoma kumbukumbu za ajali na kutatua sababu zinazowezekana; Ubora wa utambuzi huboreshwa sana wakati muktadha unatolewa. Lakini utambuzi wa mwisho na marekebisho ni ya binadamu: pendekezo la AI ni hypothesis, kuthibitishwa katika kanuni na kupima. Lengo si kunyamazisha dalili bali kutatua chanzo kikuu; Hitilafu iliyonyamazishwa kawaida hurudi katika fomu nyingine. Kumbukumbu za kuacha kufanya kazi zinaweza kuwa na data ya kibinafsi; Ifunge kabla ya kuipa AI na usiandike data ya kibinafsi kwenye kumbukumbu zako tangu mwanzo.
Jukumu la maombi
Chukua kumbukumbu ya kuacha kufanya kazi uliyo nayo (au sampuli unayotoa kutoka kwa AI), funika data yoyote ya kibinafsi/tofauti ndani yake, na uipe AI kwa "kiolezo cha uchanganuzi wa ajali". Tofautisha ni orodha zipi kati ya sababu za msingi za AI ambazo ni marekebisho halisi na ambazo ni kunyamazisha tu. Tekeleza urekebishaji wa kudumu uliochagua na uthibitishe kuwa hitilafu imeenda na hakuna matatizo mapya yanayotokea.
orodha ya ukaguzi
- [ ] Nimetoa logi ya kuacha kufanya kazi yenye msimbo husika na muktadha wa mazingira
- [ ] Nilificha data ya kibinafsi/tofauti kwenye kumbukumbu
- [ ] Niliuliza AI kwa sababu ya msingi na marekebisho ya kudumu, sio kunyamazisha
- [ ] Nilithibitisha utambuzi katika msimbo na upimaji, sikuutumia kwa upofu
- [ ] Baada ya kurekebisha, nilijaribu kuwa kosa limeenda na hakukuwa na urekebishaji
- [ ] Niliangalia kuwa programu yangu haiandiki data ya kibinafsi katika kumbukumbu zake