లాభాలు:
- మోడల్ బరువులను మార్చకుండా RAG సందర్భాన్ని ఇంజెక్ట్ చేస్తుందని మరియు 'ఓపెన్ బుక్ ఎగ్జామ్' లాజిక్తో పనిచేస్తుందని వివరిస్తోంది
- RAGని ఫైన్-ట్యూనింగ్ మరియు లాంగ్ కాంటెక్స్ట్ అప్రోచ్లతో ఖర్చు, సమయపాలన మరియు వినియోగ దృష్టాంతం ప్రకారం పోల్చడం
- ఇండెక్సింగ్ మరియు ప్రశ్న దశలతో కూడిన సాధారణ RAG పైప్లైన్ దశలను జాబితా చేయడం
భాషా నమూనా ఎంత శక్తివంతమైనదైనా (టెక్స్ట్ని అర్థం చేసుకుని ఉత్పత్తి చేసే కృత్రిమ మేధస్సు; ఇకపై దీనిని సంక్షిప్తంగా మోడల్ అని పిలుస్తాము) అయినా, మీ కంపెనీ నిన్న సంతకం చేసిన ఒప్పందం, మీ అంతర్గత వికీ (అంతర్గత నాలెడ్జ్ బేస్) పేజీ లేదా ఈ ఉదయం ప్రచురించిన విడుదల నోట్ దానికి తెలియదు. మోడల్ శిక్షణ పొందిన తేదీ వరకు సాధారణ పరిజ్ఞానానికి పరిమితం చేయబడింది; దీన్నే "ఎడ్యుకేషన్ కట్-ఆఫ్ డేట్" అంటారు. RAG (రిట్రీవల్-ఆగ్మెంటెడ్ జెనరేషన్) సరిగ్గా ఈ ఖాళీని పూరిస్తుంది: ఇది ప్రశ్నకు సంబంధించిన కంపెనీ పత్రాలను కనుగొంటుంది, మోడల్కు సందర్భం వలె ఇస్తుంది (అంటే, సమాధానాన్ని రూపొందించేటప్పుడు అది చదివే అదనపు వచనం) మరియు ఈ సందర్భం ఆధారంగా ఉత్పత్తి చేయబడిన సమాధానాన్ని కలిగి ఉంటుంది.
ఈ యూనిట్లో, RAG అంటే ఏమిటో, ఏ ప్రత్యామ్నాయాల కంటే దానికి ప్రాధాన్యత ఇవ్వబడినప్పుడు మరియు సాధారణ RAG పైప్లైన్ యొక్క దశలను మేము స్పష్టంగా చూస్తాము. అన్ని తదుపరి యూనిట్లు ఈ మ్యాప్లోని భాగాలను ఒక్కొక్కటిగా లోతుగా మారుస్తాయి.
RAG యొక్క ప్రాథమిక ఆలోచన: ఓపెన్ బుక్ పరీక్ష
RAGని ఒక వాక్యంలో వివరించండి: "మొదట సంబంధిత పత్రాన్ని కనుగొని, ఆపై మోడల్ను ఆ పత్రాన్ని చదవండి మరియు తదనుగుణంగా సమాధానాన్ని ముద్రించండి."
అత్యంత ఉపయోగకరమైన సారూప్యత ఇది: RAG మోడల్ను "క్లోజ్డ్ బుక్ ఎగ్జామ్" నుండి "ఓపెన్ బుక్ ఎగ్జామ్"కి తరలిస్తుంది. క్లోజ్డ్ బుక్ పరీక్షలో, విద్యార్థి జ్ఞాపకశక్తి నుండి మాత్రమే సమాధానం ఇస్తాడు; మీకు గుర్తులేని వాటిని తయారు చేయడంలో ఎక్కువ ప్రమాదం ఉంది. ఓపెన్ బుక్ పరీక్షలో, విద్యార్థి తన ముందు ఉంచిన మూలాన్ని చూసి సమాధానం ఇస్తాడు. RAGలో, మోడల్ దాని స్వంత మెమరీ నుండి సమాధానం ఇవ్వదు, కానీ మీరు ఇచ్చిన ప్రస్తుత మరియు నిర్దిష్ట టెక్స్ట్ నుండి.
క్లిష్టమైన అంశం: RAG మోడల్ యొక్క బరువులను మార్చదు, అంటే మోడల్ నేర్చుకున్న బిలియన్ల సంఖ్యా పారామితులను మార్చదు. మీరు మోడల్కు మళ్లీ శిక్షణ ఇవ్వరు. ప్రతి ప్రశ్నకు, మీరు ఆ ప్రశ్నకు సంబంధించిన టెక్స్ట్ భాగాలను ప్రాంప్ట్లోకి ఇంజెక్ట్ చేస్తారు (మోడల్కి పంపబడిన సూచన వచనం). కాబట్టి మీరు పత్రం నవీకరించబడినప్పుడు మోడల్కు మళ్లీ శిక్షణ ఇవ్వాల్సిన అవసరం లేదు; మీరు శోధన డేటాబేస్లో సంబంధిత రికార్డును రిఫ్రెష్ చేయండి.
సూచన: రెండు ప్రశ్నలు RAG నాణ్యతను నిర్ణయిస్తాయి: (1) మీరు సరైన పత్రాన్ని కనుగొన్నారా? (2) మోడల్ సరిగ్గా చదివారా? మొదటిది "రిట్రీవల్ నాణ్యత", రెండవది "తరం నాణ్యత". రెండింటినీ విడివిడిగా కొలుస్తారు మరియు మెరుగుపరచారు.
RAG, ఫైన్-ట్యూనింగ్ లేదా లాంగ్ కాంటెక్స్ట్?
సంస్థాగత సమస్యకు పరిష్కారం కోసం చూస్తున్నప్పుడు మూడు మార్గాలు తరచుగా గందరగోళానికి గురవుతాయి. వారి విభేదాలను స్పష్టం చేద్దాం. ఫైన్-ట్యూనింగ్ అనేది మీ డేటాతో మోడల్ బరువులను అప్డేట్ చేయడం మరియు దానికి కొత్త ప్రవర్తన/శైలిని బోధించడం. సుదీర్ఘ సందర్భం అంటే ఎటువంటి ఎంపిక లేకుండా నేరుగా అన్ని పత్రాలను ప్రాంప్ట్లో నింపడం.
అప్రోచ్
ఏమి చేస్తుంది
ఇది ఎప్పుడు తగినది?
ఖర్చు / ప్రమాదం
RAG
సందర్భానుసారంగా సంబంధిత పత్రాన్ని ఇంజెక్ట్ చేస్తుంది
తరచుగా మారుతున్న, విస్తృతమైన, నిర్దిష్ట సమాచారం
తక్కువ; నవీకరించడం సులభం, మూలాన్ని ఉదహరించవచ్చు
ఫైన్-ట్యూనింగ్
కొత్త డేటాతో బరువులను అప్డేట్ చేస్తుంది
స్థిర శైలి/ఫార్మాట్/భాష బోధన
అధిక; ప్రతి అప్డేట్తో మళ్లీ శిక్షణ అవసరం
సుదీర్ఘ సందర్భం మాత్రమే
ప్రాంప్ట్లో అన్ని పత్రాలను నింపుతుంది
చిన్న, స్థిర పత్రం సెట్
టోకెన్ ధర మరియు "మధ్య భాగాన్ని కోల్పోయే" ప్రమాదం పెరుగుతుంది
నియమం ప్రకారం: ఫైన్-ట్యూనింగ్ మోడల్కు ఎలా మాట్లాడాలో నేర్పుతుంది; RAG మోడల్కు ఏమి తెలుసుకోవాలో చెబుతుంది. చాలా ఎంటర్ప్రైజ్ దృష్టాంతాలలో, RAG మొదట ప్రయత్నించబడుతుంది ఎందుకంటే ఇది చౌకగా ఉంటుంది, అప్డేట్ చేయబడుతుంది మరియు సమాధానం యొక్క మూలాన్ని చూపగలదు. పత్రం సెట్ నిజంగా చిన్నది మరియు స్థిరంగా ఉంటే సుదీర్ఘ సందర్భం సహేతుకమైనది (ఉదా. ఒకే 20-పేజీ మాన్యువల్); కానీ వేలాది పేజీలతో, ఇది ఖరీదైనది మరియు మోడల్ పొడవైన టెక్స్ట్ మధ్యలో సమాచారాన్ని కోల్పోవచ్చు.
ఒక సాధారణ RAG పైప్లైన్
RAG రెండు ప్రధాన దశలను కలిగి ఉంటుంది: ఇండెక్సింగ్ (తయారీ, ఒకసారి లేదా క్రమానుగతంగా జరుగుతుంది) మరియు ప్రశ్నించడం (ప్రతి వినియోగదారు ప్రశ్నపై నడుస్తుంది).
స్టెప్ బై స్టెప్ ఇండెక్సింగ్ (ఆఫ్లైన్, యూజర్ వెయిటింగ్ లేకుండా):
- సేకరించండి: మూలాల నుండి పత్రాలను లాగండి (PDF, వికీ, టిక్కెట్ సిస్టమ్, డేటాబేస్, ఇమెయిల్).
- ఛంకింగ్: పొడవాటి వచనాన్ని చిన్న నిర్వహించదగిన ముక్కలుగా విభజించండి.
- పొందుపరచండి: ప్రతి భాగాన్ని ఎంబెడ్డింగ్గా మార్చండి (టెక్స్ట్ యొక్క అర్థాన్ని కలిగి ఉన్న సంఖ్య వెక్టర్).
- సేవ్: వెక్టర్ డేటాబేస్కు టెక్స్ట్ మరియు మెటాడేటా (మూలం, తేదీ, అధికార సమాచారం)తో పాటు వెక్టర్లను వ్రాయండి.
దశల వారీ ప్రశ్న (ఆన్లైన్లో, వినియోగదారు వేచి ఉన్నప్పుడు):
- వినియోగదారు ప్రశ్నను పొందుపరచడానికి మార్చండి.
- వెక్టర్ డేటాబేస్ నుండి చాలా సారూప్య భాగాలను తిరిగి పొందండి.
- ఈ ముక్కలు + ప్రశ్నను ప్రాంప్ట్ టెంప్లేట్లో ఉంచండి.
- మోడల్ నుండి సందర్భోచిత సమాధానం మరియు దాని మూలాలను పొందండి.
# విచారణ దశ (భాషపై ఆధారపడదు)ప్రశ్న = "ఎన్ని రోజులు వార్షిక సెలవు?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # అత్యంత సారూప్య భాగాలుప్రాంప్ట్ = f"""ఈ ప్రశ్నకు సమాధానం ఇవ్వండి Fitting.CONTEXT:{parts}QUESTION: {question}"""answer = model.uret(prompt) # ఉదా. మోడల్: క్లాడ్-ఓపస్-4-8
ఈ ప్రవాహం ప్రతి దశ యొక్క మ్యాప్, మేము తదుపరి యూనిట్లలో ఒక్కొక్కటిగా అన్ప్యాక్ చేస్తాము.
బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్
అదే RAG సందర్భంతో కూడా, ప్రాంప్ట్ నాణ్యత సమాధానాన్ని మారుస్తుంది.
బలహీనమైన ప్రాంప్ట్ (మోడల్ ఫిట్టింగ్కు తెరిచి ఉంటుంది, వనరులు అవసరం లేదు):
ఈ సమాచారాన్ని ఉపయోగించండి మరియు వార్షిక సెలవు చెప్పండి: {parts}. ప్రశ్న: {question}
శక్తివంతమైన ప్రాంప్ట్ (గ్రౌండింగ్ + "నాకు తెలియదు" అనుమతి + వనరుల అభ్యర్థన):
దిగువ CONTEXT ఆధారంగా మాత్రమే సమాధానం ఇవ్వండి. సందర్భంలో స్పష్టమైన సమాధానం లేనట్లయితే, "నేను డాక్యుమెంటేషన్లో దీని గురించి సమాచారాన్ని కనుగొనలేకపోయాను" అని వ్రాయండి; ఊహించవద్దు. మీ సమాధానం చివరిలో మీరు ఆధారపడే ముక్క యొక్క [మూలం: ఫైల్_పేరు] ట్యాగ్ను జోడించండి. సందర్భం: {pieces} ప్రశ్న: {question}
మూడు మినీ కేసులు
కేసు 1 — HR అసిస్టెంట్ (మానవ వనరులు). ఒక కంపెనీకి 340 పేజీల HR హ్యాండ్బుక్ ఉంది మరియు ఉద్యోగులు రోజుకు సగటున 90 ప్రశ్నలు అడుగుతారు. ఫైన్-ట్యూనింగ్ ప్రయత్నించబడింది, కానీ మాన్యువల్ నెలవారీగా నవీకరించబడినందున, ప్రతిసారీ తిరిగి శిక్షణ అవసరం; ఖర్చు నెలకు వేల డాలర్లకు చేరుకుంది. RAGకి మారిన తర్వాత, నవీకరణ "డాక్యుమెంట్ని రీ-ఇండెక్స్" దశ (నిమిషాలు)కి తగ్గించబడింది మరియు మాన్యువల్ కొలతలో సరైన-సమాధానం రేటు 71% నుండి 93%కి పెరిగింది.
కేసు 2 - కస్టమర్ మద్దతు. సహాయక బృందంలో 12,000 పరిష్కరించబడిన టిక్కెట్లు మరియు 800 సహాయ కథనాలు ఉన్నాయి. మాన్యువల్గా సమాధానాన్ని కనుగొనడానికి ప్రతినిధికి సగటున 4 నిమిషాలు పడుతుంది. RAG అసిస్టెంట్ 5 అత్యంత సంబంధిత రికార్డులను తీసుకువచ్చి, డ్రాఫ్ట్ ప్రతిస్పందనను అందించినప్పుడు, సమయం 40 సెకన్లకు తగ్గించబడింది; కానీ బృందం "తప్పు కథనాన్ని తీసుకురావడం ద్వారా ఖచ్చితంగా తెలియకుండా చూడటం" యొక్క ప్రమాదాన్ని గ్రహించి, మూలాన్ని పేర్కొనడం తప్పనిసరి చేసింది.
కేసు 3 - చట్టం. ఒక కాంట్రాక్టు బృందం "ఏ కాంట్రాక్ట్లలో గోప్యత నిబంధన 5 సంవత్సరాలు ఉంటుంది?" అతను ప్రశ్న అడుగుతాడు. సుదీర్ఘ సందర్భ ట్రయల్లో, 60 ఒప్పందాలు ఒకే ప్రాంప్ట్లో పూరించబడ్డాయి; మోడల్ మధ్య రెండు ఒప్పందాలను దాటేసింది. RAGతో సంబంధిత అంశాలను మాత్రమే ప్రవేశపెట్టినప్పుడు, టోకెన్ ధర 80% తగ్గింది మరియు మిస్సింగ్ స్కిప్పింగ్ రీసెట్ చేయబడింది.
RAG ఎందుకు అవసరం?
- ప్రస్తుతత: శిక్షణ కట్-ఆఫ్ తేదీ తర్వాత మీరు సమాచారాన్ని యాక్సెస్ చేస్తారు.
- ప్రత్యేక సమాచారం: మీ అంతర్గత పత్రాలు ఏ మోడల్ శిక్షణలో చేర్చబడలేదు; మీరు మాత్రమే ఇవ్వగలరు.
- ధృవీకరణ: మీరు సమాధానం యొక్క మూలాన్ని ఉదహరించవచ్చు (అనులేఖనము) — ఆడిటింగ్ మరియు నమ్మకం కోసం అవసరం.
- భ్రాంతి నియంత్రణ: ఇది మోడల్ను రూపొందించడం కంటే దాని ముందు ఉంచిన వచనంపై ఆధారపడుతుంది.
- ఖర్చు: ఫైన్-ట్యూనింగ్ కంటే ఆపరేషన్లో ఉంచడం చాలా చౌకగా మరియు వేగంగా ఉంటుంది.
జాగ్రత్త: RAG అనేది మేజిక్ కాదు. మీరు తప్పు భాగాన్ని తీసుకువస్తే, మోడల్ "నమ్మకంగా" కనిపించే తప్పు సమాధానానికి చేరుకుంటుంది. "రిట్రీవల్ నాణ్యత = RAG నాణ్యత" అనే పదబంధాన్ని గుర్తుంచుకోండి.
సాధారణ తప్పులు
- ఫైన్-ట్యూనింగ్ కోసం RAGని తప్పుపట్టడం: RAG బరువులను మార్చదు; ఇది కేవలం సందర్భాన్ని జోడిస్తుంది. ఈ రెండింటినీ గందరగోళానికి గురిచేయడం తప్పు వాస్తును ఎంచుకోవడానికి దారి తీస్తుంది.
- "నాకు తెలియదు"ని అనుమతించడం లేదు: ప్రాంప్ట్ మోడల్ను ఖాళీగా పూరించడానికి వదిలివేస్తే, అది భర్తీ చేయబడుతుంది.
- మూలాలను ఉదహరించడం లేదు: మూలం లేని సమాధానం తనిఖీ చేయబడదు; వినియోగదారు తప్పును గమనించలేరు.
- అన్నింటినీ ఒకే ప్రాంప్ట్లో క్రామ్ చేయడం: సుదీర్ఘ సందర్భం చౌకగా కనిపిస్తుంది కానీ ఖరీదైనది మరియు మధ్య సమాచారాన్ని కోల్పోతుంది.
- తిరిగి పొందడాన్ని కొలవకుండా తరంలో చిక్కుకోవడం: సమాధానం చెడ్డదైతే, ముందుగా "సరైన భాగం వచ్చిందా?" అని అడగాలి.
సారాంశంలో
- RAG అనేది ప్రశ్నకు సంబంధించిన పత్రాలను సందర్భోచితంగా మోడల్లోకి చొప్పించే విధానం; బరువులను మార్చదు ("ఓపెన్ బుక్ ఎగ్జామ్").
- ఫైన్-ట్యూనింగ్ శైలి/ఫార్మాట్ బోధిస్తుంది, RAG ప్రస్తుత మరియు నిర్దిష్ట సమాచారాన్ని అందిస్తుంది; దీర్ఘ సందర్భం చిన్న స్థిర సెట్లకు బాగా పని చేస్తుంది. చాలా సందర్భాలలో, RAG మొదట ప్రయత్నించబడుతుంది.
- పైప్లైన్ రెండు దశలను కలిగి ఉంటుంది: ఆఫ్లైన్ ఇండెక్సింగ్ (చంక్ + ఎంబెడ్డింగ్ + సేవ్) మరియు ఆన్లైన్ క్వెరీయింగ్ (రిట్రీవల్ + ప్రాంప్ట్ + జెనరేట్).
- RAG సమయపాలన, నిర్దిష్ట సమాచారం, ధృవీకరణ, భ్రాంతి నియంత్రణ మరియు తక్కువ ధరను అందిస్తుంది.
- సిస్టమ్ యొక్క నాణ్యత నేరుగా తిరిగి పొందే నాణ్యతపై ఆధారపడి ఉంటుంది: తప్పు ముక్క అంటే తప్పు సమాధానం.
అప్లికేషన్ టాస్క్
మీ స్వంత బృందం నుండి నిజమైన సమాచార మూలాన్ని ఎంచుకోండి (ఉదా. ప్రక్రియ పత్రం లేదా తరచుగా అడిగే ప్రశ్నలు పేజీ). (1) ఈ మూలం గురించి 5 వాస్తవిక ప్రశ్నలను వ్రాయండి. (2) పత్రంలోని ఏ భాగం ప్రతి ప్రశ్నకు సరైన సమాధానాన్ని కలిగి ఉందో గమనించండి — ఇది మీ “బంగారు సమాధానం” జాబితా అవుతుంది. (3) పైన ఉన్న "బలమైన ప్రాంప్ట్" టెంప్లేట్ని ఉపయోగించి, సంబంధిత విభాగాన్ని సందర్భానుసారంగా మాన్యువల్గా అతికించి, మోడల్ను అడగండి. (4) మోడల్ ఇచ్చిన సమాధానాన్ని బంగారు సమాధానంతో సరిపోల్చండి మరియు నిజం/తప్పు అని గుర్తించండి. భవిష్యత్ యూనిట్లలో మీరు ఆటోమేట్ చేసే అంచనా యొక్క మొదటి మాన్యువల్ వెర్షన్ ఇది.
చెక్లిస్ట్
- [ ] RAG బరువులను మార్చదని నేను ఒక వాక్యంలో వివరించగలను, అది కేవలం సందర్భాన్ని జోడిస్తుంది.
- [ ] నేను RAG, ఫైన్-ట్యూనింగ్ మరియు లాంగ్ కాంటెక్స్ట్ మరియు ఏది సముచితమో మధ్య తేడాను గుర్తించగలను.
- [ ] నేను ఇండెక్సింగ్ (కలెక్ట్-ష్రెడ్-ఎంబెడ్-సేవ్) మరియు క్వెరీ (ఎంబెడ్-ఫెచ్-ప్రాంప్ట్-జెనరేట్) దశలను క్రమంలో లెక్కించగలను.
- [ ] నేను ప్రాంప్ట్కు "సందర్భంలో లేకుంటే, నాకు తెలియదని చెప్పండి" మరియు "మూలాన్ని ఉదహరించండి" సూచనలను ఎందుకు జోడించానో నాకు తెలుసు.
- [ ] నేను "పునరుద్ధరణ నాణ్యత = RAG నాణ్యత" సూత్రాన్ని నా స్వంత కేసుకు అనుగుణంగా మార్చగలను.