எனது RAG Pipeline-இல் ஒரு Reranker-ஐச் சேர்த்தேன் — அது அனைத்தையும் குலைத்துவிட்டது

எனது RAG pipeline-இல் ஒரு reranker-ஐச் சேர்த்தேன். அது உடனடியாக எனது சோதனைகளை (tests) தோல்வியடையச் செய்தது.

பதிப்பு 2-இல் (version 2), FAISS மற்றும் BM25 கொண்டு hybrid retrieval முறையைப் பயன்படுத்தினேன். அது எனது 19 சோதனை வினாக்களையும் வெற்றிகரமாகக் கடந்தது. பின்னர், துல்லியத்தை (precision) மேம்படுத்த ஒரு cross-encoder reranker-ஐச் சேர்த்தேன்.

இதன் கோட்பாடு எளிமையானது:

  • நிலை 1: பரந்த அளவிலான சாத்தியமான முடிவுகளைப் (candidates) பெற வேகமான retrieval முறையைப் பயன்படுத்துதல்.
  • நிலை 2: சிறந்த முடிவுகளைத் தேர்ந்தெடுக்க ஒரு புத்திசாலித்தனமான reranker-ஐப் பயன்படுத்துதல்.

இதைச் செயல்படுத்த 20 நிமிடங்கள் ஆனது. ஆனால் அது உடனடியாக எனது 19 சோதனைகளில் 2 சோதனைகளைத் தோல்வியடையச் செய்தது.

தரவு வடிவம் (data format) காரணமாகவே இந்தத் தோல்வி ஏற்பட்டது. எனது தரவில் இது போன்ற அடர்த்தியான, அட்டவணை வடிவிலான துண்டுகள் (tabular chunks) உள்ளன: "Company: Zentara Robotics | CEO: Iris Kallas | Employees: 287"

cross-encoder மாடல் இயல்பான மொழிப் பத்திகளைக் (natural language paragraphs) கொண்டு பயிற்சியளிக்கப்பட்டது. அது ஒரு அட்டவணை வரிசையைப் பார்த்தபோது, அதற்கு மிகக் குறைந்த மதிப்பெண்ணையே (score) வழங்கியது. அந்தத் தரவுத் துண்டு தேவையற்றது என்று அது கருதியது.

Hybrid retrieval சரியான விடையைக் கண்டறிந்தது, ஆனால் reranker அதைத் தூக்கி எறிந்துவிட்டது.

இதைச் சரிசெய்ய நான் 7 வெவ்வேறு வழிகளை முயற்சி செய்தேன்:

  • பெரிய அளவிலான candidate pool-ஐப் பயன்படுத்துதல்.
  • reranker மற்றும் retriever ஆகியவற்றின் மதிப்பெண்களைக் கலத்தல் (blending scores).
  • rank fusion முறையைப் பயன்படுத்துதல்.

அவற்றில் எதுவும் வேலை செய்யவில்லை. reranker மதிப்பெண் மிகவும் எதிர்மறையாக இருந்ததால், அது மற்ற அனைத்தையும் முறியடித்துவிட்டது. மாடல் குறைந்த தரவரிசையை (ranking) மட்டும் வழங்கவில்லை; அது அந்த அட்டவணை வடிவத்தையே தீவிரமாக நிராகரித்தது.

கணித முறையைச் சரிசெய்ய முயற்சிப்பதை நிறுத்திவிட்டு, கட்டமைப்பை (structure) மாற்றினேன்.

reranker அனைத்தையும் தீர்மானிக்க அனுமதிப்பதற்குப் பதிலாக, எனது சிறந்த முடிவுகளைப் பாதுகாத்தேன். நான் ஒரு "guaranteed slot" உத்தியைப் பயன்படுத்தினேன்:

  • உங்களுக்கு முதல் 3 முடிவுகள் வேண்டுமென்றால், முதல் நிலையிலிருந்து (first stage) முதல் 2 முடிவுகளை அப்படியே வைத்திருங்கள்.
  • 3-வது முடிவைத் தேர்ந்தெடுக்க மட்டுமே reranker-ஐப் பயன்படுத்துங்கள்.

இது hybrid search முடிவுகள் இறுதிப் பட்டியலில் இருப்பதை உறுதி செய்கிறது. reranker மீதமுள்ள இடங்களை மட்டுமே மேம்படுத்துகிறது.

இதன் முடிவு: 19/19 சோதனைகளும் வெற்றி பெற்றன.

கற்றுக்கொண்ட பாடங்கள்:

  • Rerankers என்பவை உடனடி மேம்பாடுகள் அல்ல. அவை கட்டமைக்கப்பட்ட அல்லது அட்டவணைத் தரவுகளில் (structured or tabular data) செயல்திறனைக் குறைக்கலாம்.
  • உங்கள் மதிப்பீட்டுத் தொகுப்பு (evaluation set) தான் உங்கள் பாதுகாப்பு வலை. எனது 19 சோதனைகள் இல்லையென்றால், நான் ஒரு பழுதான அமைப்பையே வெளியிட்டிருப்பேன்.
  • சிறப்பாகச் செயல்படும் விஷயத்தைப் பாதுகாக்கவும். உங்கள் முதல் நிலை retrieval சிறப்பாக இருந்தால், reranker அதை மாற்றியமைக்க அனுமதிக்காதீர்கள்.

ஒரு reranker-ஐப் பயன்படுத்துவதற்கு முன், ஒரு வலுவான retriever-ஐ உருவாக்குங்கள்.

Source: https://dev.to/santanu_mohanta_29/i-added-a-reranker-to-my-rag-pipeline-it-broke-everything-then-i-fixed-it-1c9i

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