𝗪𝗵𝘆 𝗠𝘆 𝗥𝗔𝗚 𝗔𝗽𝗽 𝗛𝗮𝗹𝗹𝘂𝗰𝗶𝗻𝗮𝘁𝗲𝗱 𝗔𝗻𝗱 𝗛𝗼𝘄 𝗜 𝗙𝗶𝘅𝗲𝗱 𝗜𝘁
મેં એકવાર મારા સાથી કર્મચારીને મારા RAG સપોર્ટ બોટનું ડેમો આપ્યો હતો.
બોટે તેને કહ્યું કે અમારી રિફંડ પોલિસી 30 દિવસની છે.
અમારી વાસ્તવિક પોલિસી 14 દિવસની છે.
બોટે એવું નહોતું કહ્યું કે તે અનિશ્ચિત છે. તેણે પૂરા આત્મવિશ્વાસ સાથે ખોટો જવાબ બનાવ્યો.
RAG એ hallucinations (ભ્રામક માહિતી) રોકવા જોઈએ. મારું સેટઅપ તો માત્ર તેને એક જગ્યાએથી બીજી જગ્યાએ ખસેડી રહ્યું હતું.
મેં પાંચ સ્ટેપ્સ અનુસરીને આ સમસ્યા સુધારી.
- તમારી chunking strategy સુધારો
હું અગાઉ ડોક્યુમેન્ટ્સને કેરેક્ટર કાઉન્ટ (character counts) દ્વારા વિભાજિત કરતો હતો. આ એક ભૂલ હતી.
એક જ chunk માં ઘણીવાર શિપિંગ અને રિટર્ન જેવા અલગ-અલગ વિષયો મિક્સ થઈ જતા હતા. મોડેલ આ બધું ભેગું કરીને ખોટા જવાબો આપતું હતું.
ઉકેલ: મેં semantic chunking અપનાવી. હવે હું હેડિંગ્સ અને પેરેગ્રાફ દ્વારા ટેક્સ્ટને વિભાજિત કરું છું.
- માત્ર similarity scores પર વિશ્વાસ કરવાનું બંધ કરો
મારો retriever cosine similarity ના આધારે ટોચના ત્રણ chunks ખેંચી લાવતો હતો.
'સમાન' (similar) હોવું એ 'પ્રસ્તુત' (relevant) હોવા સમાન નથી. એક chunk પ્રશ્ન જેવો સમાન દેખાઈ શકે છે પરંતુ તેમાં કોઈ જવાબ હોતો નથી.
ઉકેલ: મેં cross-encoder સાથે reranking સ્ટેપ ઉમેર્યું. આનાથી મને એ જાણવામાં મદદ મળી કે ક્યારે સિસ્ટમ પાસે કોઈ વાસ્તવિક ડેટા નથી.
- મોડેલને નિષ્ફળ જવાની પરવાનગી આપો
મારા જૂના prompt માં ફક્ત એટલું જ લખ્યું હતું: પ્રશ્નનો જવાબ આપવા માટે context નો ઉપયોગ કરો.
જો context માં જવાબ ન હોત, તો મોડેલ અનુમાન લગાવીને ખાલી જગ્યાઓ ભરી દેતું હતું.
ઉકેલ: મેં એક સીધી સૂચના ઉમેરી. જો જવાબ context માં ન હોય, તો કહો કે તમે જાણતા નથી. આનાથી જ મોટાભાગના hallucinations અટકી ગયા.
- retrieval threshold સેટ કરો
ક્યારેક જ્યારે retrieval નિષ્ફળ જાય ત્યારે મોડેલ સામાન્ય જ્ઞાનનો ઉપયોગ કરતું હતું. મને આશા હતી કે prompt કામ કરશે, પરંતુ માત્ર આશા રાખવી એ કોઈ વ્યૂહરચના નથી.
ઉકેલ: મેં score cutoff ઉમેર્યું. જો retrieval score ખૂબ ઓછો હોય, તો સિસ્ટમ fallback response આપે છે. જો context ન હોય, તો તેનો અર્થ છે કે કોઈ જવાબ નથી.
- સફળતા માટે નહીં, પણ નિષ્ફળતા માટે ટેસ્ટ કરો
હું પહેલા ફક્ત સરળ પ્રશ્નોનું જ ટેસ્ટિંગ કરતો હતો. મેં અસ્પષ્ટ ક્વેરીઝ (ambiguous queries) અને ખૂટતી માહિતીને અવગણી હતી.
ઉકેલ: મેં 'trap questions' નો એક evaluation set બનાવ્યો. આ એવા કિસ્સાઓ છે જ્યાં જવાબ ખૂટે છે. આ ટેસ્ટ નિયમિત રીતે ચલાવવાથી તમને ચોક્કસ ખબર પડશે કે તમારી સિસ્ટમ ક્યાં તૂટે છે.
RAG hallucinations ને સંપૂર્ણપણે ખતમ નથી કરતું. તે તેને નિયંત્રિત કરવા યોગ્ય બનાવે છે.
મારો બોટ હજુ પણ દરેક વિગત જાણતો નથી. પરંતુ હવે, જ્યારે તે અનિશ્ચિત હોય ત્યારે તે સ્વીકારી લે છે. આ તેને ઉપયોગી બનાવે છે.
Source: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi