ஆதாயங்கள்:
- பிழை செய்தி, ஸ்டேக் ட்ரேஸ் மற்றும் மிகச்சிறிய மறுஉருவாக்கம் நிகழ்வு மூலம் AIக்கு ஒரு பிழையை திறம்பட விவரிக்கும் திறன்
- AI உடன் ஒரு முறையான பிழைத்திருத்த ஓட்டத்தை இயக்கும் திறன் மூலம் மூல காரணத்தை அனுமானித்து படிப்படியாகக் குறைக்கும்
- AI பரிந்துரைத்த திருத்தமானது உண்மையில் மறுஉற்பத்தி மற்றும் பின்னடைவு சோதனை மூலம் சிக்கலை சரிசெய்தது என்பதை சரிபார்க்கும் திறன்
பிழைத்திருத்தம் என்பது ஒரு நிரல் ஏன் எதிர்பார்த்ததை விட வித்தியாசமாக செயல்படுகிறது என்பதைக் கண்டறிந்து அதைச் சரிசெய்வது மற்றும் பெரும்பாலான பொறியாளர்களின் நேரத்தைச் செலவழிக்கும் பணியாகும். நல்ல பிழைத்திருத்தம் யூகிக்கும் விளையாட்டை அடிப்படையாகக் கொண்டது அல்ல, ஆனால் முறையான சுருக்கம்: அறிகுறியை தெளிவுபடுத்துதல், கருதுகோள், கருதுகோளைச் சோதித்தல், மூல காரணத்தைப் பெறுதல். AI இந்த சுழற்சியில் மிகவும் சக்திவாய்ந்த பங்குதாரர்; ஆனால் நீங்கள் அவருக்கு சரியான தகவலை கொடுத்தால் மட்டுமே. "குறியீடு வேலை செய்யவில்லை, அதை சரிசெய்யவும்" என்று கூறுவது, AI ஐ யூகிக்கவும் போர்வை பரிந்துரைகளை செய்யவும் கட்டாயப்படுத்துகிறது. அதற்கு முழுப் பிழைச் செய்தி, ஸ்டேக் ட்ரேஸ் மற்றும் மிகச்சிறிய இனப்பெருக்க மாதிரி ஆகியவற்றைக் கொடுங்கள், ஒன்றாக நீங்கள் மூல காரணத்தைக் கண்டறியலாம்.
இந்த யூனிட்டில், AIக்கு ஒரு பிழையை எவ்வாறு திறம்பட விவரிப்பது, கருதுகோள்களை படிப்படியாகக் குறைப்பது மற்றும் முன்மொழியப்பட்ட திருத்தம் உண்மையில் சிக்கலைத் தீர்க்கிறது என்பதை பின்னடைவு சோதனை மூலம் சரிபார்ப்பது எப்படி என்பதைப் பார்ப்போம். நினைவில் கொள்ளுங்கள்: ஒரு பிழையை "சரிசெய்தல்" மற்றும் "பிழையின் அறிகுறியை அடக்குதல்" இரண்டு வெவ்வேறு விஷயங்கள்; மூல காரணத்தைக் கண்டறியாமல் செய்யப்படும் திருத்தம், பிழையை வேறொரு இடத்திற்கு நகர்த்துகிறது.
கருத்துகள்: ஸ்டேக் ட்ரேஸ்: பிழையின் போது எந்தெந்த செயல்பாடுகள் எந்த வரிசையில் அழைக்கப்பட்டன என்பதைக் காட்டும் டம்ப். குறைந்தபட்ச மறுபிரதி: பிழையைத் தூண்டும் எளிய, குறுகிய குறியீடு/உள்ளீடு. மூல காரணம்: பிரச்சனையின் உண்மையான ஆதாரம், அறிகுறி அல்ல. பின்னடைவு சோதனை: அதே பிழை மீண்டும் நிகழாமல் இருப்பதை உறுதி செய்யும் சோதனை.
AIக்கு ஒரு பிழையை விவரிக்கிறது
மூல காரணத்தை AI கண்டுபிடிப்பதற்கான சாத்தியக்கூறுகள் நீங்கள் வழங்கும் தகவலின் தரத்திற்கு நேரடியாக விகிதாசாரமாகும். ஒரு நல்ல பிழை விளக்கத்தில் பின்வருவன அடங்கும்: நீங்கள் என்ன செய்ய முயற்சித்தீர்கள், நீங்கள் என்ன எதிர்பார்த்தீர்கள், என்ன நடந்தது, சரியான பிழை உரை மற்றும் ஸ்டேக் டிரேஸ், சம்பந்தப்பட்ட குறியீடு, சூழல் (மொழி/பதிப்பு/OS) மற்றும் பிழையை உருவாக்கிய சிறிய மாதிரி.
- அறிகுறியை தெளிவுபடுத்துங்கள். "எதிர்பார்க்கப்பட்ட X, உண்மையான Y" வடிவத்தில்.
- முழு பிழை உரை மற்றும் ஸ்டேக் ட்ரேஸை ஒட்டவும். அதை சுருக்கவும், தணிக்கை செய்யவும், ஆனால் கட்டமைப்பை உடைக்க வேண்டாம்.
- மிகச்சிறிய இனப்பெருக்கம் கொடுங்கள். பிழையைத் தூண்டும் குறைந்தபட்ச உள்ளீடு மற்றும் குறியீடு.
- சூழலைக் குறிப்பிடவும். மொழி பதிப்பு, நூலக பதிப்பு, இயக்க நேர சூழல்.
பயனுள்ள பிழை விளக்க அறிவுறுத்தல்: "நான் பிழையை பிழைத்திருத்துகிறேன். தகவல்:- நான் என்ன செய்ய முயற்சிக்கிறேன்: [X]- எதிர்பார்க்கப்படும் நடத்தை: [Y]- உண்மையான நடத்தை: [Z]- முழுப் பிழைச் செய்தி மற்றும் ஸ்டாக் ட்ரேஸ்: [ஒட்டு]- சூழல்: [மொழி/பதிப்பு, நூலகம்/பதிப்பு]- குறைந்தபட்சம் பட்டியலிடப்பட்ட நேரடிக் குறியீட்டைக் கொடுங்கள்'. நிகழ்தகவு வரிசையில் காரணங்கள் மற்றும் ஒவ்வொன்றிற்கும் என்ன சரிபார்க்க வேண்டும் என்று சொல்லுங்கள்."
கருதுகோள் மூலம் குறுகலான ஓட்டம்
முறையான பிழைத்திருத்தம் என்பது சாத்தியங்களை ஒவ்வொன்றாக நீக்கும் கலை. கருதுகோள்களை உருவாக்க AI ஐப் பயன்படுத்தவும் மற்றும் ஒவ்வொரு கருதுகோளையும் சோதிக்க பரிசோதனையை வடிவமைக்கவும்; பின்னர் பரிசோதனையை இயக்கவும் மற்றும் முடிவைத் திரும்பவும். "ஷாட்கன் பிழைத்திருத்தம்" எனப்படும் சீரற்ற மாற்றங்களைச் செய்து நிறுத்தும் பழக்கத்தை விட இந்த சுழற்சி மிக வேகமாக உள்ளது.
பைனரி தேடல் (இருப்பிரிவு) உதவிக்குறிப்பு: "இந்தப் பிழை நேற்று இல்லை, இன்று உள்ளது. கடைசி 20 மாற்றங்களில் எது பைசெக்டுடன் பிழையைக் கொண்டுவந்தது என்பதை நான் கண்டுபிடிக்க விரும்புகிறேன். படிப்படியான திட்டத்தை எனக்குக் கொடுங்கள்: எந்தப் புள்ளியை நான் சோதிக்க வேண்டும், எந்தப் பாதிக்கு செல்ல வேண்டும். ஒவ்வொரு படியிலும் எதைச் சரிபார்க்க வேண்டும் என்பதையும் சொல்லுங்கள்."
பதிவு செருகும் உத்தி வரியில்: "இந்தச் செயல்பாட்டில் இடைநிலை மதிப்புகளைக் காண முடியாததால் பிழையைக் கண்டறிய முடியவில்லை. எந்தெந்த புள்ளிகளில் எந்த மாறிகளை அச்சிட வேண்டும் என்பதைச் சொல்லுங்கள். ஒவ்வொரு பதிவிற்கும் 'இந்தப் பதிவிலிருந்து நான் என்ன கற்றுக்கொள்வேன்' என்ற விளக்கத்தைச் சேர்க்கவும். ரகசியத் தரவைப் பதிவு செய்வதிலிருந்து என்னைத் தடுக்கும் எச்சரிக்கைகளையும் குறிப்பிடவும்."
உதவிக்குறிப்பு: பிழையைத் தீர்க்க முடியாவிட்டால், பெரும்பாலும் நீங்கள் தவறாகக் கருதிய இடத்தில்தான் சிக்கல் இருக்கும். "என்னுடைய அனுமானம் தவறாக இருக்கலாம்?" என்று AIயிடம் கேளுங்கள். கேட்பது உங்கள் குருட்டுத்தன்மையை உடைக்கும். "இது சரியாக வேலை செய்கிறது என்று நான் உறுதியாக நம்புகிறேன்" என்று நீங்கள் கூறும் இடத்தில் கடினமான தவறுகள் மறைக்கப்படுகின்றன.
பலவீனமான ப்ராம்ட் / ஸ்ட்ராங் ப்ராம்ட்
பலவீனம்:"எனது குறியீடு பிழையைத் தருகிறது, அதைச் சரிசெய்து: [200 கோடுகள்]"(முடிவு: AI ஆனது என்ன பிழை என்று தெரியவில்லை, என்ன எதிர்பார்க்கப்படுகிறது; இது யூகத்தின் அடிப்படையில் பொதுவான பரிந்துரைகளை வழங்குகிறது, அவற்றில் பெரும்பாலானவை பயனற்றவை.)STRONG:"எனக்கு NullPointerException கிடைக்கிறது. எதிர்பார்க்கப்படுகிறது: பயனர் பட்டியல் திரும்பப் பெறப்பட வேண்டும். Actual: StackUplodeser க்கு அழைக்கவும். [ஒட்டு].சுற்றுச்சூழல்: ஜாவா 17. குறைந்தபட்ச மறுபரிசீலனை: பயனர்களின் பட்டியல் காலியாக இருக்கும்போது அது நிகழ்கிறது, ஆனால் அது நிரம்பிய 15 வரிகள்: [குறியீடு] மூல காரணத்தை விளக்கவும், பின்னர் ஒரு தீர்வை பரிந்துரைக்கவும்.
சக்திவாய்ந்த ப்ராம்ட் பிழையை சூழலில் வைக்கிறது: எந்த விஷயத்தில் அது நடக்கும் (வெற்று பட்டியல்), இதில் அது நடக்காது (முழு பட்டியல்). இந்த ஒற்றை துப்பு ("காலியாக இருக்கும் போது நடக்கும்") கிட்டத்தட்ட நேரடியாக மூல காரணத்தை சுட்டிக்காட்டுகிறது. பலவீனமான வரியில் இந்தத் தகவல் கிடைக்காததால், AI ஒரு குருட்டுத்தனமான யூகத்தை செய்கிறது.
சரிசெய்தலைச் சரிபார்க்கிறது
திருத்தம் என்பது மூன்று விஷயங்களைச் செய்தால் மட்டுமே உண்மையான தீர்வாகும்:
கட்டுப்பாடு
கேள்வி
எப்படி சரிபார்க்க வேண்டும்
பிழை போய்விட்டதா?
அதே நுழைவு இப்போது வேலை செய்யுமா?
குறைந்தபட்ச ரெப்ரோவை மீண்டும் இயக்கவும்
புதிய பிழைகள் இல்லையா?
வேறு ஏதாவது உடைந்ததா?
முழு சோதனை தொகுப்பையும் இயக்கவும்
அது மீண்டும் நடக்காதா?
மீண்டும் அதே பிழை ஏற்படுமா?
இந்த சூழ்நிலையில் பின்னடைவு சோதனையைச் சேர்க்கவும்
மூல காரணத்தைக் கண்டறியாமல் செய்யப்படும் திருத்தங்கள் பெரும்பாலும் அறிகுறியை அடக்குகின்றன. எடுத்துக்காட்டாக, "பூஜ்யமாக இருந்தால் தவிர்" என்ற பூஜ்யப் பிழையை விளக்குவது உண்மையான காரணத்தை உருவாக்குகிறது, "தரவு ஏன் பூஜ்யமாக வருகிறது?" கண்ணுக்கு தெரியாதது, மற்றும் பிழை வேறு இடத்தில் மீண்டும் நிகழும்.
மினி வழக்குகள்
வழக்கு 1 - அறிகுறிகளை அடக்கும் பொறி. ட்ரை-கேட்ச் மூலம் எப்போதாவது பூஜ்ய பிழையை ஒரு குழு அமைதிப்படுத்துகிறது; பிழை மறைந்துவிடும் ஆனால் 2 வாரங்களுக்குப் பிறகு தரவு காணவில்லை. உண்மையான காரணம் என்னவென்றால், ஒரு சேவை நேரம் முடிந்தவுடன் பூஜ்யமாக திரும்பும். AI யிடம் "ஏன் அது பூஜ்யமாகிறது?" என்று நீங்கள் கேட்கும்போது, மூல காரணம் வெளிப்படுகிறது; உண்மையான திருத்தம் 1 மணிநேரம் எடுக்கும் ஆனால் நிரந்தரமானது.
வழக்கு 2 - குறைந்தபட்ச மறு சக்தி. டெவலப்பரால் "ஒவ்வொரு முறையும் செயலிழக்கிறது" என்று கூறும் பிழையை சரிசெய்ய முடியாது. இது AI இன் பரிந்துரையுடன் சிறிய உள்ளீட்டிற்குப் பிழையைக் குறைக்கிறது: துருக்கிய எழுத்துகள் (குறியீட்டுப் பிழை) கொண்ட கோப்புப்பெயர்களில் மட்டுமே சிக்கல் ஏற்படுகிறது. 300 வரிகள் நிச்சயமற்ற தன்மையை 5 வரிகளாகக் குறைக்கும் போது, தீர்வு தெளிவாகிறது.
வழக்கு 3 - எதிர்ப்பு பின்னடைவு சோதனை. தேதி கணக்கீடு பிழையை AI சரிசெய்கிறது. பொறியாளர் இதில் திருப்தி அடையவில்லை; பிழையான சூழ்நிலையில் பின்னடைவு சோதனையைச் சேர்க்கிறது (மாத இறுதி, ஜனவரி 31 + 1 மாதம்). 4 மாதங்களுக்குப் பிறகு மற்றொரு மாற்றம் அதே பகுதியைத் தொடும்போது, சோதனை சிவப்பு நிறமாக மாறும் மற்றும் உற்பத்தியை அடையும் முன் பிழை பிடிபடுகிறது.
பொதுவான தவறுகள்
- இதன் பொருள் "இது வேலை செய்யவில்லை, அதை சரிசெய்யவும்". பிழை உரை, எதிர்பார்ப்பு மற்றும் மறுபிரதி இல்லாமல், AI யூகிக்கிறது.
- ஸ்டாக் ட்ரேஸ் கொடுக்கவில்லை. ஸ்டாக் ட்ரேஸ் பெரும்பாலும் மூல காரணத்தை நேரடியாகக் குறிக்கிறது.
- சீரற்ற மாற்றங்களைச் செய்து கொண்டே இருங்கள். ஒரு கருதுகோளை நிறுவாமல் சோதனைகள் நேரத்தை வீணடிக்கின்றன.
- அறிகுறியை அடக்குதல் மற்றும் மூல காரணத்தை காணவில்லை. பிழை மீண்டும் பிறக்கிறது.
- பின்னடைவு சோதனை மூலம் சரிசெய்தலைப் பாதுகாக்கவில்லை. அதே பிழை எதிர்காலத்தில் அமைதியாக மீண்டும் வருகிறது.
சுருக்கமாக
பயனுள்ள பிழைத்திருத்தம் என்பது முறையான சுருக்கம், யூகிக்க முடியாது. AI க்கு முழு பிழை உரை, ஸ்டேக் ட்ரேஸ், குறைந்தபட்ச இனப்பெருக்கம் மற்றும் சுற்றுச்சூழல் தகவல்களை வழங்குவது மூல காரணத்தைக் கண்டறியும் வாய்ப்புகளை அதிவேகமாக அதிகரிக்கிறது. கருதுகோள்களை உருவாக்க AI ஐப் பயன்படுத்தவும் மற்றும் ஒவ்வொரு கருதுகோளையும் சோதிக்க பரிசோதனையை வடிவமைக்கவும்; நீங்கள் பரிசோதனையை இயக்குங்கள். பிழை நீங்கிவிட்டதையும், புதிய பிழைகள் எதுவும் அறிமுகப்படுத்தப்படவில்லை என்பதையும், பின்னடைவு சோதனை மூலம் அது பாதுகாக்கப்படுவதையும் நீங்கள் காணும் போது மட்டுமே "முடிந்தது" என்பதைத் திருத்துவதைக் கருத்தில் கொள்ளுங்கள்.
விண்ணப்ப பணி
உண்மையான அல்லது செயற்கையான பிழையைக் கவனியுங்கள். முதலில் பிழையை மிகச்சிறிய மறுஉற்பத்திக்கு குறைக்கவும் (எந்த உள்ளீடு நிகழ்கிறது, அதில் இல்லை). பயனுள்ள பிழை செய்முறை ப்ராம்ட்டைப் பயன்படுத்தி, 3 மூல காரணக் கருதுகோள்கள் மற்றும் ஒவ்வொன்றிற்கும் ஒரு சரிபார்ப்பு படி AIயிடம் கேளுங்கள். கருதுகோள்களை ஒவ்வொன்றாகச் சோதிப்பதன் மூலம் மூல காரணத்தைக் கண்டுபிடித்து, அதைச் சரிசெய்து, பிழை மறைந்துவிட்டதைக் காட்ட, இந்தச் சூழ்நிலையில் ஒரு பின்னடைவு சோதனையை எழுதி இயக்கவும்.
சரிபார்ப்பு பட்டியல்
- [ ] நான் அறிகுறியை "எதிர்பார்க்கப்பட்டது மற்றும் உணரப்பட்டது" என தெளிவுபடுத்தினேன்.
- [ ] நான் AI க்கு முழு பிழை உரை மற்றும் ஸ்டேக் ட்ரேஸ் கொடுத்தேன்.
- [ ] நான் பிழையை மிகச்சிறிய இனப்பெருக்கத்திற்கு குறைத்தேன்.
- [ ] கருதுகோள்களை ஒவ்வொன்றாக சோதிப்பதன் மூலம், நான் மூல காரணத்தைக் கண்டுபிடித்தேன்.
- [ ] அறிகுறியை அடக்குவதற்கு பதிலாக, நான் மூல காரணத்தை சரி செய்தேன்.
- [ ] அதே பிழைக்காக நான் ஒரு பின்னடைவு சோதனையைச் சேர்த்து இயக்கினேன்.