எனது இணையதளத்தில் நான் ஒரு டிஜிட்டல் ட்வினை (digital twin) இயக்குகிறேன். அது எனது வாழ்க்கை மற்றும் திறன்கள் குறித்த கேள்விகளுக்குப் பதிலளிக்கும். அதற்கு நான் ஒரு கடுமையான விதியை வழங்கினேன்: எதையும் கற்பனை செய்து சொல்லக்கூடாது. எனக்குத் தெரியாத ஒரு திறனைப் பற்றி யாராவது கேட்டால், அது தனக்குத் தெரியாது என்று ஒப்புக்கொள்ள வேண்டும். பல மாதங்களாக, இந்த அமைப்பு சரியாக வேலை செய்வதாக நான் நம்பினேன். அவ்வப்போது நான் அதைச் சோதனை செய்தேன், பதில்களும் சரியாகவே இருந்தன. பின்னர் நான் ஒரு முறையான மதிப்பீட்டு கருவியை (evaluation harness) உருவாக்கினேன். அதன் முடிவுகள் என்னை அதிர்ச்சியடையச் செய்தன. 35 கேள்விகளில், ஒன்பது கேள்விகள் முற்றிலும் பொய்யான தகவல்களைக் கொண்டிருந்தன. பதிலளிக்க முடியாத வகையில் வடிவமைக்கப்பட்ட எட்டு கேள்விகளில், மாடல் நான்கு கேள்விகளுக்கு மட்டுமே மறுப்பு தெரிவித்தது. எனது 'மாயத்தோற்றத் தடுப்பு' (anti-hallucination) ப்ராம்ப்ட் கிட்டத்தட்ட கால் பங்கு நேரங்களில் தோல்வியடைந்தது. பயனர்களிடம் பொய் சொல்லும் ஒரு தயாரிப்பை நான் வழங்கித் கொண்டிருந்தேன்.
மிகவும் எளிமையான ஒரு மீட்டெடுப்பு அமைப்பு (Retrieval Setup)
நான் Pinecone அல்லது எந்தவொரு கனமான வெக்டர் தரவுத்தளத்தையும் (vector database) பயன்படுத்தவில்லை. இந்த முழு அமைப்பும் ஒரு சாதாரண JSON கோப்பிலேயே உள்ளது. எனது குறியீடு (code) எனது சுயவிவரத்தை தனித்தனிப் பிரிவுகளாகப் பிரிக்கிறது. ஒரு கேள்வி வரும்போது, அந்த வினவலுக்கும் (query) ஒவ்வொரு உரைத் துண்டுக்கும் (chunk) இடையிலான cosine similarity-ஐ கணக்கிட்டு, நெருக்கமான பொருத்தங்களைத் தேர்ந்தெடுத்து, அவற்றைச் சூழலாக (context) ப்ராம்ப்ட்டில் சேர்க்கிறது. மாடல் அந்தச் சூழலில் பார்ப்பவற்றின் அடிப்படையில் மட்டுமே பதிலைத் தயாரிக்கிறது.
குறுகிய அளவிலான உண்மைகளை வழங்கும் ஒரு சிறிய தனிப்பட்ட இணையதளத்திற்கு, இந்த அணுகுமுறை வேகமானது மற்றும் செலவும் மிகக் குறைவு. தொலைதூர வெக்டர் சேமிப்பகத்திற்கு நெட்வொர்க் ரவுண்ட்-ட்ரிப் தேவையில்லை, இண்டெக்சிங் சுமை (indexing overhead) இல்லை, மற்றும் சிக்கலான ஒருங்கிணைப்பு தேவையில்லை. கோப்பைப் படியுங்கள், துண்டுகளை மதிப்பிடுங்கள், ப்ராம்ப்ட்டை உருவாக்குங்கள், அவ்வளவுதான். ஆனால், பின்புல அமைப்பின் எளிமை, வெளியீட்டில் நேர்மையை உறுதி செய்வதில்லை. மாடல் தானாகவே ஒன்றைச் செய்யத் தீர்மானிக்கும்போது, ஒரு லேசான குழாய் அமைப்பு (lightweight pipeline) கூட கடுமையான சிக்கல்களை உருவாக்கலாம். "இதோ சூழல் (context)" என்பதற்கும் "அதைப் பற்றி நான் என்ன சொல்லப் போகிறேன்" என்பதற்கும் இடையிலான இடைவெளியில்தான் மாயத்தோற்றங்கள் (hallucinations) உருவாகின்றன. உங்கள் பணி வரலாறு குறித்த ஒரு பத்தியை மாடலுக்குக் கொடுத்தாலும், நீங்கள் தொடாத ஒரு புரோகிராமிங் மொழி பற்றி அது நம்பிக்கையுடன் ஒரு பொய்யான தகவலைத் தரக்கூடும்.
எனது நம்பிக்கையைச் சிதைத்த எண்கள்
பல மாதங்களாக, கைமுறையாகச் சரிபார்ப்பதே போதுமானது என்று நான் நினைத்தேன். நான் சாட் விண்டோவைத் திறந்து, எனக்குத் தெரிந்த ஒரு கேள்வியைக் கேட்பேன், பதில் சரியாக இருந்தால் தலையசைப்பேன். அதுதான் எனது சோதனை உத்தி. நான் நானே அந்த இடைமுகத்தைப் பயன்படுத்தியதால், அது முழுமையானது என்று எனக்குத் தோன்றியது. ஆனால் அது இல்லை.
முறையான முறையில் இயங்கக்கூடிய ஒரு மதிப்பீட்டு கருவியை (evaluation harness) நான் இறுதியாக எழுதியபோது, உண்மை நிலை மாறியது. அந்த சோதனைத் தொகுப்பு (test suite) டிஜிட்டல் ட்வினைடம் 35 கேள்விகளைக் கேட்டது. ஒன்பது பதில்கள் பொய்களைக் கொண்டிருந்தன. எனது சுயவிவரத்தில் எங்கும் விடை இல்லாத எட்டு கேள்விகளையும் நான் சேர்த்திருந்தேன். மாடல் அவை அனைத்தையும் நிராகரித்திருக்க வேண்டும். ஆனால் அது நான்கு கேள்விகளை மட்டுமே நிராகரித்தது. எதையும் கற்பனை செய்து சொல்லக்கூடாது என்று மிகத் தெளிவாகக் கூறப்பட்ட எனது நுணுக்கமான 'மாயத்தோற்றத் தடுப்பு' ப்ராம்ப்ட், சுமார் 25 சதவீதம் நேரங்களில் தோல்வியடைந்தது. நான்கு முறைக்கு ஒரு முறை. இது ஒரு சிறிய பிழை அல்ல. இது ஒரு பழுதான தயாரிப்பு.
எளிமையான கேள்விகளைக் கொண்டு சோதிப்பதை நிறுத்துங்கள்
உங்கள் சொந்தத் தயாரிப்பைப் பயன்படுத்துவதன் மூலம் மட்டுமே பிழைகளைக் (bugs) கண்டறிய முடியாது. அதை உடைக்க முயற்சிப்பதன் மூலமே பிழைகளைக் கண்டறிய முடியும். எனது கைமுறைச் சோதனைகள் மிகவும் மென்மையாக இருந்தன. எனக்குத் தெரிந்த சரியான பதில்களைக் கொண்ட கேள்விகளை மட்டுமே நான் கேட்டேன், இதன் மூலம் நான் அறியாமலேயே மாடலை பாதுகாப்பான பகுதிக்கு வழிநடத்தினேன். நான் அதன் எல்லைகளைச் சோதிக்கவில்லை. எனக்குத் தேவைப்படும் திறன்கள் பற்றியோ அல்லது நடக்காத அனுபவங்கள் பற்றியோ நான் ஒருபோதும் கேட்கவில்லை.
உண்மையான சோதனைக்கு எதிரித்தனமான அணுகுமுறை (adversarial intent) தேவை. AI தோல்வியடையும் வகையில் நீங்கள் கேள்விகளை உருவாக்க வேண்டும். ஒரு பார்வையாளருக்கு முன்னால் அது தவறு செய்வதைத் தவிர்க்க, ஆய்வகத்திலேயே அதைத் தவறு செய்ய வைக்க வேண்டும். நீங்கள் ஏற்கனவே நம்பிக் கொண்டிருக்கும் விஷயங்களை மட்டும் உறுதிப்படுத்தும் ஒரு சோதனைத் தொகுப்பு என்பது வெறும் ஒரு டெமோ மட்டுமே. நீங்கள் விளிம்பு நிலைச் சூழல்களையும் (edge cases) பொறி வைக்கும் கேள்விகளையும் (trap questions) தீவிரமாக உருவாக்கவில்லை என்றால், நீங்கள் சோதனை செய்யவில்லை; நீங்கள் வெறும் நம்பிக்கை வைத்துள்ளீர்கள்.
முக்கியமான இரண்டு தவறுகள்
Prompting என்பது ஒரு உத்தரவாதம் அல்ல. AI மாயத்தோற்றம் செய்யக்கூடாது என்று சொல்லும் ஒரு நீண்ட, விரிவான அறிவுறுத்தல் என்பது ஒரு கட்டளையாகத் தோற்றமளிக்கும் ஒரு ஆலோசனையே ஆகும். மாடல் பெரும்பாலான நேரங்களில் அதைப் பின்பற்றலாம், ஆனால் புள்ளிவிவர அழுத்தம் (statistical pressure) அதை வேறு பக்கம் தள்ளும் தருணத்தில் அது அந்த அறிவுறுத்தலைப் புறக்கணிக்கும். Temperature, token probability மற்றும் பயிற்சித் தரவின் வடிவம் ஆகிய அனைத்தும் உங்கள் சிஸ்டம் ப்ராம்ப்ட்டில் உள்ள ஒரு வாக்கியத்தை விட அதிகத் தாக்கத்தை ஏற்படுத்தும். நீங்கள் கீழ்ப்படிதலைத் தரவுகளால் அளவிட வேண்டுமே தவிர, நம்பிக்கையினால் அல்ல. ஒரு வலுவான அறிவுறுத்தல் என்பது சரிபார்க்கப்பட்ட உண்மை அல்ல. அது ஒரு வேண்டுகோள், வேண்டுகோள்கள் நிராகரிக்கப்படலாம். உங்கள் முழுப் பாதுகாப்பு உத்தியும் ப்ராம்ப்ட்டை உறுதியாக எழுதுவதிலேயே தங்கியிருந்தால், நீங்கள் டிஷ்யூ பேப்பரால் செய்யப்பட்ட பாதுகாப்பு வேலிகளை (guardrails) உருவாக்கியுள்ளீர்கள் என்று அர்த்தம். மாடல் எவ்வளவு அடிக்கடி கீழ்ப்படிகிறது, எந்தச் சூழலில், மற்றும் தோல்வியடையும் போது ஏன் தோல்வியடைகிறது என்பதைக் கணக்கிடும் ஒரு மதிப்பீட்டு கருவி (eval harness) உங்களுக்குத் தேவை. உங்கள் குரல் தொனி எதற்கும் பொருட்டல்ல, எண்கள் மட்டுமே உண்மையைச் சொல்லும்.
The evaluation loop was flawed. Here is a subtle trap that almost got me. My original testing tool ran the retrieval process twice. The first run fetched context to check against the ground truth. The second run fetched context for the actual answer generation. In practice, this meant the chunks the judge saw could differ from the chunks the model saw. The judge was grading the answer against data the AI might never have received. An evaluation that grades the wrong input is worse than no evaluation. It gives you a false sense of security. You look at the score, see a high pass rate, and relax. Meanwhile your users are
