என்னை நானே ஏமாற்றிக் கொள்ளாமல் LLM Prompts-களை நான் எவ்வாறு A/B சோதனை செய்கிறேன்

நான் ஒருமுறை ஒரு சப்போர்ட் அசிஸ்டன்ட்டை (support assistant) உருவாக்கினேன், அது மிகச்சிறப்பாகச் செயல்படும் என்று நினைத்தேன். முப்பது சோதனைத் தரவுகளை (test cases) இயக்கினேன், புதிய பிராம்ட் (prompt) அதிக மதிப்பெண் பெற்றது, அதனால் அதை வெளியிட்டேன்.

ஆறு மணி நேரம் கழித்து, புகார்களால் சப்போர்ட் வரிசை நிரம்பியது. அன்றிரவே அந்த மாற்றத்தை நான் திரும்பப் பெற வேண்டியதாயிற்று.

அந்த அதிக மதிப்பெண் போலியானது. உண்மையான முன்னேற்றத்தையும் அதிர்ஷ்டத்தையும் வேறுபடுத்திப் பார்க்க முப்பது உதாரணங்கள் போதுமானவை அல்ல. அந்த எண்ணிக்கை வெறும் இரைச்சலாக (noise) மட்டுமே இருந்தது.

அந்தத் தவறைச் செய்யாமல் பிராம்ட்களை எவ்வாறு சோதனை செய்வது என்பது இதோ:

  • சிறிய சோதனைகள் பெரிய மாற்றங்களை மட்டுமே கண்டறியும். நீங்கள் ஒரு சிறிய முன்னேற்றத்தைக் கண்டறிய விரும்பினால், உங்களுக்கு இன்னும் பல உதாரணங்கள் தேவைப்படும். ஒரு மிகச்சிறிய மாற்றத்தைக் கண்டறிய, உங்களுக்கு ஆயிரம்க்கும் மேற்பட்ட உதாரணங்கள் தேவைப்படலாம்.

  • இரண்டு பதிப்புகளுக்கும் (versions) ஒரே மாதிரியான கேள்விகளைப் பயன்படுத்துங்கள். பதிப்பு A-விற்கு ஒரு தொகுப்பையும், பதிப்பு B-விற்கு வேறொரு தொகுப்பையும் கொடுக்காதீர்கள். சில கேள்விகள் மற்றவற்றை விடக் கடினமானவை. பதிப்பு B-க்கு எளிமையான கேள்விகள் கிடைத்தால், அது மோசமானதாக இருந்தாலும் சிறப்பாகத் தோன்றும். இரண்டு பதிப்புகளையும் துல்லியமாக ஒரே மாதிரியான கேள்விகளின் தொகுப்பிற்கு உட்படுத்துங்கள்.

  • சராசரியை (average) மட்டும் பார்க்காமல், வரம்பை (range) கவனியுங்கள். ஒரு வெற்றி எவ்வளவு பெரியது என்பதை சராசரி உங்களுக்குச் சொல்லாது. சாத்தியமான மிகச்சிறிய மற்றும் மிகப்பெரிய முன்னேற்றங்களின் வரம்பைத் தெரிவிக்கவும். அந்த வரம்பில் பூஜ்ஜியம் (zero) இருந்தால், அதை வெளியிட வேண்டாம்.

  • சரியான மதிப்பெண் முறையைத் தேர்ந்தெடுக்கவும். • முழுமையான தரத்திற்காக (absolute quality) ஒரு சரிபார்ப்புப் பட்டியலைப் (checklist) பயன்படுத்தவும். • தொனி (tone) அல்லது பயனுள்ள தன்மை (helpfulness) போன்ற தெளிவற்ற தரங்களுக்கு (fuzzy quality) அருகருகே வைத்து ஒப்பிடும் முறையைப் (side-by-side comparison) பயன்படுத்தவும்.

  • பல பதிப்புகள் இருந்தால் 'bandit' முறையைப் பயன்படுத்தவும். உங்களிடம் மூன்று அல்லது அதற்கு மேற்பட்ட பதிப்புகள் இருந்து, பயனர்களின் விரக்தியைக் குறைக்க விரும்பினால், ஒரு 'bandit'-ஐப் பயன்படுத்தவும். அது கற்றுக்கொண்டே வரும்போது, வெற்றி பெறும் பதிப்பிற்கு அதிக டிராஃபிக்கை (traffic) அனுப்பும். இது பயனர்கள் வாரக்கணக்கில் மோசமான பதில்களைப் பார்ப்பதைத் தடுக்கிறது.

இந்தத் தவறுகளைத் தவிர்க்கவும்:

  • வரம்பின்றி சராசரிகளுடன் ஒப்பிடுவது.
  • வெவ்வேறு பதிப்புகளுக்கு வெவ்வேறு கேள்வித் தொகுப்புகளைப் பயன்படுத்துவது.
  • சோதனையின் நடுவில் உங்கள் மதிப்பெண் முறையை (scorer) மாற்றுவது.
  • எண்கள் நன்றாகத் தெரிந்தவுடன் சோதனையை நிறுத்துவது.
  • ஒரே நேரத்தில் அதிக அளவிலான அளவீடுகளைக் (metrics) கவனிப்பது. இது ஒரு போலியான வெற்றியைப் பார்ப்பதற்கான வாய்ப்பை அதிகரிக்கும்.
  • மனிதத் தீர்ப்புடன் (human judgment) சரிபார்க்கும் முன்பே ஒரு மதிப்பெண் முறையை நம்புவது.

சோதனையை நடத்துவது கடினமான காரியம் அல்ல. முடிவு எப்போது உண்மையானது என்பதை அறிவதுதான் கடினமான காரியம்.

Source: https://dev.to/kartik-nvjk/how-i-ab-test-llm-prompts-without-fooling-myself-528f

Optional learning community: https://t.me/GyaanSetuAi