મેં મારા RAG પાઇપલાઇનમાં એક Reranker ઉમેર્યો — તેનાથી બધું બગડી ગયું
મેં મારા RAG પાઇપલાઇનમાં એક reranker ઉમેર્યો. તેનાથી તરત જ મારા ટેસ્ટ નિષ્ફળ ગયા.
વર્ઝન 2 માં, મેં FAISS અને BM25 સાથે hybrid retrieval નો ઉપયોગ કર્યો હતો. તે મારા તમામ 19 ટેસ્ટ પ્રશ્નોમાં સફળ રહ્યું હતું. ત્યારબાદ, ચોકસાઈ (precision) સુધારવા માટે મેં એક cross-encoder reranker ઉમેર્યો.
સિદ્ધાંત સરળ છે:
- સ્ટેજ 1: ઉમેદવારોનો (candidates) વિશાળ સેટ મેળવવા માટે ઝડપી retrieval નો ઉપયોગ કરો.
- સ્ટેજ 2: શ્રેષ્ઠ પરિણામો પસંદ કરવા માટે સ્માર્ટ reranker નો ઉપયોગ કરો.
તેને અમલમાં મૂકતા 20 મિનિટ લાગી. તેનાથી તરત જ મારા 19 માંથી 2 ટેસ્ટ નિષ્ફળ ગયા.
આ નિષ્ફળતા ડેટા ફોર્મેટને કારણે થઈ હતી. મારા ડેટામાં આ પ્રકારના ડેન્સ, ટેબ્યુલર ચંક્સ (tabular chunks) છે: "Company: Zentara Robotics | CEO: Iris Kallas | Employees: 287"
cross-encoder મોડેલને નેચરલ લેંગ્વેજ પેરેગ્રાફ્સ પર તાલીમ આપવામાં આવી હતી. જ્યારે તેણે ટેબલ રો (table row) જોયું, ત્યારે તેણે તેને ખૂબ જ ઓછો સ્કોર આપ્યો. તેને લાગ્યું કે આ ચંક અપ્રસ્તુત (irrelevant) છે.
Hybrid retrieval એ જવાબ શોધી કાઢ્યો હતો, પરંતુ reranker એ તેને ફેંકી દીધો.
આને સુધારવા માટે મેં 7 અલગ-અલગ રીતો અજમાવી:
- મોટા candidate pool નો ઉપયોગ કરીને.
- reranker અને retriever ના સ્કોર્સને મિક્સ (blend) કરીને.
- rank fusion નો ઉપયોગ કરીને.
તેમાંથી એક પણ કામ ન આવ્યું. reranker નો સ્કોર એટલો નેગેટિવ હતો કે તેણે બાકીની બધી બાબતો પર પ્રભુત્વ જમાવી લીધું. મોડેલ માત્ર નીચું રેન્કિંગ જ નથી આપી રહ્યું હતું, પરંતુ તે સક્રિયપણે ટેબલ ફોર્મેટને નકારી રહ્યું હતું.
મેં ગણિત સુધારવાનો પ્રયાસ કરવાનું છોડી દીધું અને સ્ટ્રક્ચર બદલી નાખ્યું.
reranker ને બધું નક્કી કરવા દેવાને બદલે, મેં મારા શ્રેષ્ઠ પરિણામોને સુરક્ષિત કર્યા. મેં "guaranteed slot" વ્યૂહરચનાનો ઉપયોગ કર્યો:
- જો તમારે ટોપ 3 પરિણામો જોઈતા હોય, તો પ્રથમ સ્ટેજમાંથી ટોપ 2 પરિણામો રાખો.
- માત્ર ત્રીજા પરિણામ માટે reranker નો ઉપયોગ કરો.
આ સુનિશ્ચિત કરે છે કે hybrid search ના પરિણામો અંતિમ યાદીમાં રહે. reranker માત્ર બાકીના સ્લોટ્સમાં સુધારો કરે છે.
પરિણામ: 19/19 ટેસ્ટ પાસ થયા.
શીખવા મળેલા પાઠ:
- Rerankers એ તાત્કાલિક અપગ્રેડ નથી. તેઓ સ્ટ્રક્ચર્ડ અથવા ટેબ્યુલર ડેટા પર કામગીરીને નુકસાન પહોંચાડી શકે છે.
- તમારો evaluation set એ તમારું સેફ્ટી નેટ છે. મારા 19 ટેસ્ટ વગર, મેં એક ખામીયુક્ત સિસ્ટમ લોન્ચ કરી દીધી હોત.
- જે કામ કરે છે તેને સુરક્ષિત રાખો. જો તમારું પ્રથમ-સ્ટેજ retrieval સારું હોય, તો reranker ને તેને ઓવરરાઈડ કરવા ન દો.
Reranker નો ઉપયોગ કરતા પહેલા એક મજબૂત retriever બનાવો.
Optional learning community: https://t.me/GyaanSetuAi
