શૂન્યથી RAG પાઇપલાઇન બનાવવી

હું SmartQueue માં એક AI આસિસ્ટન્ટ ઉમેરવા માંગતો હતો.

SmartQueue એ IT સપોર્ટ ટિકિટ્સ માટે મેં Go માં બનાવેલી એક ટાસ્ક ક્યુ (task queue) છે. મારે કોઈ સામાન્ય AI જોઈતું નહોતું. એક સામાન્ય મોડેલ તમારા ચોક્કસ પાસવર્ડ રીસેટ નિયમો અથવા તમારા આઉટેજ રનબુક્સ વિશે જાણતું નથી.

મને Retrieval-Augmented Generation (RAG) ની જરૂર હતી. આ પહેલા તમારા દસ્તાવેજોમાંથી તથ્યો મેળવે છે. પછી તે આ તથ્યોને મોડેલને સંદર્ભ તરીકે આપે છે.

આ પાઇપલાઇન બનાવતી વખતે મેં જે શીખ્યું તે અહીં છે.

ડિપ્લોયમેન્ટ નિષ્ફળતા

મારા પ્રથમ વર્ઝનમાં વેક્ટર સર્ચ માટે ChromaDB નો ઉપયોગ કરવામાં આવ્યો હતો. તે લોકલી કામ કરતું હતું. ડિપ્લોયમેન્ટ દરમિયાન તે નિષ્ફળ ગયું.

મેં Hugging Face Spaces પર એક જ કન્ટેનરમાં બધું ચલાવ્યું હતું. જેમાં Redis, એક Go API, workers, એક FastAPI સર્વિસ અને ChromaDB નો સમાવેશ થતો હતો. પાંચ પ્રક્રિયાઓ મર્યાદિત મેમરી અને CPU માટે સ્પર્ધા કરી રહી હતી. ChromaDB ને કારણે સ્ટાર્ટઅપ રેસ અને સાયલન્ટ ફેલ્યોર થતા હતા.

મેં એક નિર્ણય લીધો. મેં વેક્ટર ડેટાબેઝને કાઢી નાખ્યો અને તેના બદલે એક સરળ BM25 સર્ચનો ઉપયોગ કર્યો.

સરળ ઉકેલ

નવો વિકલ્પ Python ની 50 લાઇનનો છે. તેમાં કોઈ બાહ્ય પ્રક્રિયા નથી. તેમાં કોઈ નેટવર્ક કોલ્સ નથી. તે મેમરીમાં કીવર્ડ્સ મેળવવા માટે Okapi BM25 ફોર્મ્યુલાનો ઉપયોગ કરે છે.

તેના ફાયદા અને ગેરફાયદા સ્પષ્ટ છે:

સિસ્ટમને ટ્યુન કરવી

સિસ્ટમને સ્થિર રાખવા માટે મેં કેટલાક સેટિંગ્સમાં ફેરફાર કર્યા: • Retrieved docs (k): 4. આ ટોકન લિમિટ વટાવ્યા વગર પૂરતો સંદર્ભ પૂરો પાડે છે. • Bot temperature: 0.2. ટ્રબલશૂટિંગ માટે સર્જનાત્મકતા નહીં, પણ સીધા અને સચોટ જવાબોની જરૂર હોય છે. • Classifier temperature: 0.1. આ સુનિશ્ચિત કરે છે કે JSON આઉટપુટ અનુમાનિત હોય. • Session history: છેલ્લા 10 ટર્ન. આ વધુ પડતી મેમરીનો ઉપયોગ કર્યા વગર સાતત્ય જાળવી રાખે છે. • Rate limits: પ્રતિ મિનિટ 30 રિક્વેસ્ટ. આ મારા API ક્વોટાનું રક્ષણ કરે છે.

શ્રેષ્ઠ ડિઝાઇન એ 'ડિગ્રેડિંગ ડિઝાઇન' છે

મેં દરેક એન્ડપોઇન્ટને નોન-AI ફોલબેક (non-AI fallback) સાથે બનાવ્યું છે. જો AI સર્વિસ બંધ થઈ જાય, તો સિસ્ટમ કીવર્ડ મેચિંગ અથવા રૂલ-બેઝ્ડ લોજિકનો ઉપયોગ કરે છે. સિસ્ટમ સંપૂર્ણ નિષ્ફળ જવાને બદલે તેની કાર્યક્ષમતામાં ઘટાડો કરે છે.

આ કોઈ જટિલ RAG સેટઅપ નથી. તેમાં કોઈ re-ranking કે hybrid search નથી. તે ચોક્કસ સ્કેલ માટે બનાવેલ એક નાનું અને સ્માર્ટ સાધન છે.

શીખવા મળેલા પાઠ:

સ્ત્રોત: https://dev.to/ambarish_0221/building-a-rag-pipeline-from-scratch-what-smartqueue-taught-me-about-retrieval-4gdb

વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi