તમારું RAG સિસ્ટમ શા માટે Hallucinate કરે છે
તમારી RAG સિસ્ટમની retrieval accuracy 34% છે. તમે દરેક ટ્યુટોરિયલ અનુસર્યા. તમે યોગ્ય libraries નો ઉપયોગ કર્યો. તમે બ્લોગ પોસ્ટમાંથી chunk size પસંદ કર્યો. તેમ છતાં, સિસ્ટમ હજુ પણ નિષ્ફળ જાય છે.
આ ટૂલિંગની સમસ્યા નથી. આ પાયાની (fundamentals) સમસ્યા છે.
જ્યારે તમે તેની નીચેના સ્તરોને સમજ્યા વિના libraries નો ઉપયોગ કરો છો, ત્યારે તમે abstraction debt ઊભો કરો છો. તમે ઝડપ મેળવો છો પરંતુ debug કરવાની ક્ષમતા ગુમાવો છો. તમે એક black box બનાવો છો.
તમારી RAG pipeline ને સુધારવા માટે, તમારે ત્રણ સ્તરોમાં નિપુણતા મેળવવી પડશે:
Chunking Strategy Chunk size એ એક semantic નિર્ણય છે. જો તમારા chunks 512 tokens ના હોય, તો તમે પેરેગ્રાફ્સ મેળવો છો. જો તમારા પ્રશ્નો માટે ઘણા પેરેગ્રાફ્સ વચ્ચેના વિચારોને જોડવાની જરૂર હોય, તો તમારા chunks ખૂબ નાના છે. તમારે નક્કી કરવું જોઈએ કે chunks વચ્ચે કેટલો context વહે છે.
Embedding Models Dense embeddings અર્થને પકડે છે પરંતુ ચોક્કસ syntax ગુમાવે છે. એક મોડેલ "error 403" અને "error 404" ને લગભગ સમાન ગણી શકે છે. તમારું મોડેલ શું પકડે છે તે તમારે જાણવું જોઈએ. કાયદાકીય કરાર (legal contract) માટે કોડ રિપોઝિટરી કરતા અલગ embeddings ની જરૂર હોય છે.
Retrieval vs. Recall Vector search સંભવિત રીતે સુસંગત હોય તેવી તમામ વસ્તુઓ શોધી કાઢે છે. આ recall છે. Production RAG ને precision ની જરૂર છે. તમારે દસ સમાન પેરેગ્રાફ્સ નહીં, પણ ચોક્કસ જવાબ જોઈએ છે. આથી જ તમારે hybrid search ની જરૂર છે.
Hybrid search એ dense vectors ને keyword matching (BM25) સાથે જોડે છે.
- Pure semantic search ચોક્કસ કોડ અથવા IDs ચૂકી જાય છે.
- Pure keyword search વૈચારિક અર્થ (conceptual meaning) ચૂકી જાય છે.
- Hybrid search સત્ય શોધવા માટે બંનેને વજન (weights) આપે છે.
સાચું વજન (weight) કોઈ મેન્યુઅલમાં નથી હોતું. તમે તમારા ચોક્કસ ડેટાનું પરીક્ષણ કરીને તેને શોધી શકો છો.
જાદુ પર આધાર રાખવાનું બંધ કરો. જો તમે શૂન્યથી (from scratch) મૂળભૂત RAG pipeline બનાવી શકતા નથી, તો તમે Agentic RAG માટે તૈયાર નથી. જ્યારે તમે પાયાની બાબતો નથી સમજતા ત્યારે જટિલતા વધતી જાય છે.
તમારા આગામી પ્રોજેક્ટ પહેલા આ ચાર વસ્તુઓ કરો:
- Chunking નું benchmark કરો. ત્રણ અલગ-અલગ sizes ટેસ્ટ કરો. top-1 અને top-5 પર precision માપો.
- વાસ્તવિક ડેટા સાથે embeddings ટેસ્ટ કરો. synthetic tests નો ઉપયોગ કરશો નહીં. તમારા વાસ્તવિક યુઝર ક્વેરીઝનો ઉપયોગ કરો.
- નિષ્ફળતાઓ (failures) નો લોગ રાખો. બે અઠવાડિયા માટે, નિષ્ફળ જતી દરેક ક્વેરીનો લોગ રાખો. તમારી સર્ચ કઈ બાબતો ચૂકી જાય છે તેમાં પેટર્ન શોધો.
- એકવાર BM25 અમલમાં મૂકો. ભલે તમે પછીથી કોઈ library નો ઉપયોગ કરો, તમારે keyword baseline સમજવાની જરૂર છે.
Libraries તમને સમય આપે છે. સમજણ તમને વિશ્વસનીયતા આપે છે.
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi