Fine-tuning మరియు RAG గురించి ప్రతి ఒక్కరికీ ఒక అభిప్రాయం ఉంటుంది. ఏదైనా AI ఫోరమ్‌ను స్క్రోల్ చేస్తే, ఆర్కిటెక్చర్ డయాగ్రామ్‌లు మరియు బెంచ్‌మార్క్ క్లెయిమ్‌లతో నిండిన వేడి చర్చలు కనిపిస్తాయి. ఆ కామెంట్లు రాసే వారిలో చాలామంది తమ సొంత డేటాపై మోడల్‌ను ఎప్పుడూ ట్రైన్ చేయలేదు లేదా ప్రొడక్షన్‌లో ఒక RAG పైప్‌లైన్ నిశ్శబ్దంగా విఫలం కావడం చూడలేదు.

నేను నెలల తరబడి ప్రయోగాలు చేశాను. ఖచ్చితంగా చెప్పాలంటే పన్నెండు ప్రయోగాలు. నేను LLMలను fine-tune చేశాను. embeddersలను fine-tune చేశాను. ఆరు వేర్వేరు RAG కాన్ఫిగరేషన్‌లను నిర్మించాను. నా డొమైన్ ఫైనాన్షియల్ ప్రిడిక్షన్ (ఆర్థిక అంచనా), ప్రత్యేకించి గందరగోళంగా ఉన్న చారిత్రక డేటా నుండి అస్థిరమైన మార్కెట్ ఫలితాలను అంచనా వేయడం. నేను నిజమైన సమాధానాల కోసం చూస్తున్నాను కాబట్టి, బ్లాగ్ పోస్ట్ క్లెయిమ్‌ల కోసం కాకుండా, కఠినమైన గణాంక ప్రమాణాలను (statistical standards) పాటించాను.

చాలా ప్రయోగాలు విఫలమయ్యాయి. ఆ వైఫల్యాలు ఏదైనా అదృష్టవశాత్తూ వచ్చిన విజయాల కంటే చాలా ఉపయోగకరంగా మారాయి.

సిగ్నల్ గురించి కఠినమైన నిజం

లోతుగా వెళ్లే ముందు, అన్నింటినీ కలిపి చూపే పాఠం ఇది. Fine-tuning మరియు RAG అనేవి ఒక మోడల్ ఏమి తెలుసు లేదా అది ఏమి చూస్తుంది అనే అంశాన్ని మార్చడానికి ఉపయోగించే సాధనాలు. అవి శూన్యం నుండి సిగ్నల్‌ను సృష్టించే మాయాజాలం కాదు. మీ ప్రాథమిక డేటాలో నిజమైన, ఉపయోగపడే నమూనా (pattern) లేకపోతే, ఈ పద్ధతులు దాన్ని సృష్టించలేవు. అవి కేవలం యాదృచ్ఛిక శబ్దం (random noise) చుట్టూ మరింత నమ్మశక్యంగా ఉండే కథను నిర్మించడంలో మీకు సహాయపడతాయి.

ఫైనాన్షియల్ ప్రిడిక్షన్‌లో, ఈ ఉచ్చు చాలా ప్రమాదకరమైనది. మార్కెట్లు సహజంగానే అస్థిరంగా (noisy) ఉంటాయి. మీరు ఒక శక్తివంతమైన LLMని చారిత్రక ధరల డేటాకు అనుసంధానించి, దానికి retrieval లేదా fine-tuning జోడించినప్పుడు, మీకు ఆటోమేటిక్‌గా అదనపు ప్రయోజనం (edge) లభించదు. మీరు కేవలం నాణేల టాస్ (coin flips) లాంటి అంచనాలను సమర్థించుకోవడానికి మరింత స్పష్టమైన మార్గాన్ని పొందుతారు. సిగ్నల్ లేకపోతే, మోడల్ మీకు అబద్ధం చెప్పడంలో చాలా నైపుణ్యం సాధిస్తుంది. మీరు ముందుగా దానిని తనిఖీ చేయాలి.

పెద్ద మోడల్ నేర్చుకోవడానికి బదులుగా గుర్తుంచుకున్నప్పుడు (Memorizes)

స్కేల్ (scale) అన్నింటినీ సరిచేస్తుందని అనుకోవడం నా మొదటి పెద్ద తప్పు. నేను సరిగ్గా 777 శిక్షణ ఉదాహరణలపై 14 బిలియన్ పారామీటర్ మోడల్‌ను 7 బిలియన్ పారామీటర్ మోడల్‌తో పోల్చి పరీక్షించాను. పెద్ద మోడల్ స్పష్టంగా మెరుగైన eval_loss సాధించింది. దాని perplexity తగ్గింది. కాగితం మీద చూస్తే, అది నేర్చుకుంటున్నట్లు అనిపించింది.

ఆ తర్వాత నేను విన్ రేట్ (win rate)ను చూశాను, అంటే మోడల్ ఎంత రేటుతో సరైన అంచనాలను వేస్తుందో చూశాను. 14B మోడల్ 7B మోడల్ కంటే గణనీయంగా అధ్వాన్నంగా పనిచేసింది. అది శిక్షణ డేటాలోని నాయిస్‌ను (training noise) గుర్తుంచుకుంది (memorized). 3,000 కంటే తక్కువ ఉదాహరణలతో, పెద్ద మోడల్ డేటాలోని తప్పుడు సంబంధాలను (spurious correlations) మరియు యాదృచ్ఛిక మార్పులను అతిగా నేర్చుకోవడానికి (overfit) తగిన సామర్థ్యాన్ని కలిగి ఉంది. అది ప్రాథమికంగా నాయిస్ యొక్క లుకప్ టేబుల్‌ను నిర్మించింది.

7B మోడల్, దాని తక్కువ సామర్థ్యం కారణంగా, విస్తృతమైన నమూనాలను (broader patterns) నేర్చుకోవడానికి ప్రయత్నించింది. అది ప్రతి చిన్న మార్పును గుర్తుంచుకోలేకపోయింది. మీరు చిన్న డేటాసెట్‌లతో పనిచేస్తుంటే, చిన్న మోడళ్లతో ప్రారంభించండి. స్కేల్ అనేది ఉచితంగా రాదు. డేటా తక్కువగా ఉన్నప్పుడు అది మీకు నష్టం కలిగించవచ్చు.

లాస్ కర్వ్ (Loss Curve)ను నమ్మవద్దు

లాస్ కర్వ్‌లను చూడటం ఆపేయడం నేను నేర్చుకున్నాను. ఒక మోడల్ దాని టోకెన్-లెవల్ cross-entropyని మెరుగుపరుచుకుంటూనే, మీరు ఆశించే అసలు వ్యాపార నిర్ణయం (business decision) విషయంలో అధ్వాన్నంగా మారవచ్చు. ఎందుకంటే లాంగ్వేజ్ మోడలింగ్ లాస్ (language modeling loss) తదుపరి టోకెన్‌ను ఖచ్చితంగా అంచనా వేయడానికి ప్రాధాన్యత ఇస్తుంది. అనేక డొమైన్‌లలో, ముఖ్యంగా ఫైనాన్స్‌లో, సరైన నిర్ణయం మరియు అత్యంత సంభావ్యత కలిగిన తదుపరి టోకెన్ ఒకటి కాదు.

శిక్షణలో ఉన్న వచనాన్ని (prose) అద్భుతంగా తిరిగి రాసే మోడల్‌లను నేను చూశాను, కానీ అవి ప్రతిసారీ తప్పుడు దిశలో అంచనా వేసేవి. లాస్ తగ్గింది, కానీ దానితో పాటు బ్యాంక్‌రోల్ (bankroll) కూడా తగ్గిపోయింది. మీ వాస్తవ ప్రపంచ పని ఆధారంగా మీ ఎవాల్యుయేషన్ మెట్రిక్ (evaluation metric)ను ఎంచుకోండి. మీరు డాక్యుమెంట్లను ర్యాంక్ చేస్తుంటే, ర్యాంకింగ్ నాణ్యతను కొలవండి. మీరు ఫలితాలను అంచనా వేస్తుంటే, నిర్ణయ ఖచ్చితత్వాన్ని (decision accuracy) కొలవండి. మీ మోడల్‌ను ఎంచుకోవడానికి ఎప్పుడూ eval_lossని వదిలిపెట్టకండి.

ఫారిన్ వొకాబులరీ (Foreign Vocabulary)పై మాత్రమే Fine-Tuning మెరుగ్గా పనిచేస్తుంది

నేను రెండు వేర్వేరు రకాల వచనాలపై embedder fine-tuning ప్రయోగాలను నిర్వహించాను. మొదటిది ప్రామాణిక ఆర్థిక వార్తలు మరియు పబ్లిక్ ఫైలింగ్‌లను ఉపయోగించింది. fine-tune చేసిన embedder మరియు సాధారణ (off-the-shelf) వెర్షన్ రెండూ ఒకేలా పనిచేసాయి. బేస్ మోడల్‌కు ఇప్పటికే ఈ భాష తెలుసు. నేను తెలిసిన అంశాలపైనే ట్యూనింగ్ చేస్తున్నాను.

రెండవ డేటాసెట్ ప్రైవేట్ జార్గన్ (jargon), అంతర్గత కోడ్ నేమ్స్ మరియు ఇంటర్నెట్‌లో ఎక్కడా కనిపించని డొమైన్-స్పెసిఫిక్ షార్ట్‌హ్యాండ్‌తో నిండి ఉంది. ఇక్కడ, fine-tuning రిట్రీవల్ ఖచ్చితత్వాన్ని (retrieval accuracy) 79 శాతం మెరుగుపరిచింది. బేస్ మోడల్‌కు ఈ పదాల అర్థం తెలియదు. Fine-tuning దానికి స్థానిక పదజాలాన్ని (local vocabulary) నేర్పింది.

ఇది నా దృష్టికోణాన్ని పూర్తిగా మార్చేసింది. Fine-tuning అంటే మోడల్‌ను సాధారణ అర్థంలో తెలివైనదిగా చేయడం కాదు. దానికి కొత్త పదజాలాన్ని, కొత్త ఫార్మాట్‌ను లేదా ఒక నిర్దిష్ట శైలిని (house style) నేర్పించడం గురించి. మీ డేటా ఇంటర్నెట్‌లా ఉంటే, fine-tune చేయవద్దు. మీ డేటా బేస్ మోడల్‌కు ఎప్పుడూ తెలియని భాషలో ఉంటే, fine-tuning తప్పనిసరి అవుతుంది.

RAG మీకు నిశ్చయతను ఇస్తుంది, సత్యాన్ని కాదు

నేను ప్రిడిక్షన్ టాస్క్‌ల కోసం ఎనిమిది వేర్వేరు RAG కాన్ఫిగరేషన్‌లను పరీక్షించాను. అన్నింటిలోనూ, రిట్రీవల్‌ను జోడించడం వల్ల మోడల్ నిర్ణయాలలో సుమారు 30 శాతం మార్పు వచ్చింది. అది ప్రభావవంతంగా అనిపించవచ్చు, కానీ అది కాదు. ఆ మార్పులన్నీ కేవలం నాయిస్ (noise) మాత్రమే. మొత్తం ఖచ్చితత్వం (accuracy) మెరుగుపడలేదు. మారినది ఏమిటంటే మోడల్ యొక్క కాన్ఫిడెన్స్ (confidence). RAG వ్యవస్థ మరింత నిశ్చయంగా మాట్లాడేలా, ఎక్కువ మూలాలను (sources) ఉటంకించేలా మరియు సుదీర్ఘమైన వివరణలను ఇచ్చేలా చేసింది. అదే సమయంలో అది అంతే తప్పుగా ఉంది.

ఈ అతివిశ్వాసం ఒక ప్రొడక్ట్ రిస్క్ (product risk). ఒక వినియోగదారు సైటేషన్లను చూసి, మోడల్ తన పనిని సరిగ్గా చేసిందని భావిస్తారు. వాస్తవానికి, అది చూడటానికి క్లిష్టంగా అనిపించే ఒక ఊహ మాత్రమే.

ఒక RAG వేరియంట్‌ను బ్యాక్‌టెస్టింగ్ చేయడం ద్వారా వచ్చిన పాఠం చాలా బాధాకరమైనది. అది 11 శాతం వార్షిక లాభాన్ని చూపించింది. పైకి చూస్తే, అది ఒక విజయవంతమైన వ్యూహంలా కనిపిస్తుంది. కానీ దాని AUC (area under the ROC curve మరియు క్లాసిఫికేషన్ నైపుణ్యానికి కొలమానం) 0.486 గా ఉంది. ఇది 0.500 ఉండే కాయిన్ ఫ్లిప్ (coin flip) కంటే కూడా అధ్వాన్నం. ఆ లాభం కేవలం ఒక నిర్ది