Fine-tuning بمقابلہ RAG پر ہر کسی کی اپنی رائے ہے۔ کسی بھی AI فورم کو دیکھیں، آپ کو آرکیٹیکچر ڈائیگرامز اور بینچ مارک دعووں سے بھرپور تکراری تھریڈز ملیں گے۔ ان تبصروں کو لکھنے والے زیادہ تر لوگوں نے کبھی اپنے ڈیٹا پر ماڈل ٹرین نہیں کیا اور نہ ہی پروڈکشن میں کسی RAG پائپ لائن کو خاموشی سے ناکام ہوتے دیکھا ہے۔
میں نے مہینوں تجربات کرنے میں گزار دیے۔ بالکل درست کہا جائے تو بارہ تجربات۔ میں نے LLMs کو fine-tune کیا، ایمبیڈرز (embedders) کو fine-tune کیا، اور چھ مختلف RAG کنفیگریشنز بنائیں۔ میدان مالیاتی پیش گوئی (financial prediction) کا تھا، خاص طور پر غیر مستحکم مارکیٹ کے نتائج کی پیش گوئی کرنا جو بکھرے ہوئے تاریخی ڈیٹا سے حاصل کیے جا سکیں۔ میں نے خود پر سخت شماریاتی معیار لاگو کیے کیونکہ میں حقیقی جوابات چاہتا تھا، نہ کہ بلاگ پوسٹ کے دعوے۔
زیادہ تر تجربات ناکام رہے۔ وہ ناکامیاں کسی بھی خوش قسمتی سے ملنے والی کامیابی سے کہیں زیادہ مفید ثابت ہوئیں۔
سگنل کے بارے میں تلخ حقیقت
تفصیلات میں جانے سے پہلے، یہاں وہ سبق ہے جو سب کو ایک ساتھ جوڑتا ہے۔ Fine-tuning اور RAG ماڈل کے جاننے یا دیکھنے کی صلاحیت کو تبدیل کرنے کے اوزار ہیں۔ یہ کوئی جادوئی چھڑیاں نہیں ہیں جو ہوا میں سے سگنل پیدا کر دیں۔ اگر آپ کے بنیادی ڈیٹا میں کوئی حقیقی اور قابلِ استعمال پیٹرن نہیں ہے، تو یہ تکنیکیں اسے تخلیق نہیں کریں گی۔ یہ صرف آپ کو بے ترتیب شور (random noise) کے گرد ایک زیادہ قائل کرنے والی کہانی بنانے میں مدد دیں گی۔
مالیاتی پیش گوئی میں، یہ جال خاص طور پر خطرناک ہے۔ مارکیٹیں اپنی فطرت کے مطابق شور (noisy) سے بھرپور ہوتی ہیں۔ جب آپ تاریخی قیمتوں کے ڈیٹا کے ساتھ ایک طاقتور LLM جوڑتے ہیں اور اس میں retrieval یا fine-tuning شامل کرتے ہیں، تو آپ کو خود بخود کوئی برتری (edge) حاصل نہیں ہو جاتی۔ آپ کو صرف سکہ اچھالنے کے عمل کو منطقی بنانے کا ایک زیادہ بہتر طریقہ مل جاتا ہے۔ اگر سگنل موجود نہیں ہے، تو ماڈل آپ سے جھوٹ بولنے میں بہت ماہر ہو جاتا ہے۔ آپ کو پہلے یہ چیک کرنے کی ضرورت ہے۔
جب بڑا ماڈل سیکھنے کے بجائے یاد کر لیتا ہے
میری پہلی بڑی غلطی یہ فرض کرنا تھا کہ سکیل (scale) سب کچھ ٹھیک کر دے گا۔ میں نے ٹھیک 777 ٹریننگ مثالوں پر 14 بلین پیرامیٹر والے ماڈل کا 7 بلین پیرامیٹر والے ماڈل کے ساتھ مقابلہ کیا۔ بڑے ماڈل نے نمایاں طور پر بہتر eval_loss حاصل کیا۔ اس کی perplexity کم ہو گئی۔ کاغذ پر، وہ سیکھ رہا تھا۔
پھر میں نے ون ریٹ (win rate) دیکھا، یعنی وہ اصل شرح جس پر ماڈل نے درست پیش گوئیاں کیں۔ 14B ماڈل کی کارکردگی 7B ماڈل کے مقابلے میں کافی خراب تھی۔ اس نے ٹریننگ کے شور (noise) کو یاد کر لیا تھا۔ 3,000 سے کم مثالوں کے ساتھ، بڑے ماڈل میں ڈیٹا میں موجود مصنوعی تعلقات (spurious correlations) اور بے ترتیب اتار چڑھاؤ پر اوور فٹ (overfit) ہونے کی کافی صلاحیت تھی۔ اس نے بنیادی طور پر شور کا ایک لک اپ ٹیبل (lookup table) بنا لیا تھا۔
7B ماڈل، اپنی کم صلاحیت کی وجہ سے، وسیع تر پیٹرنز سیکھنے پر مجبور تھا۔ وہ ہر چھوٹی موٹی انفرادیت کو یاد کرنے کی گنجائش نہیں رکھتا تھا۔ اگر آپ چھوٹے ڈیٹا سیٹس پر کام کر رہے ہیں، تو چھوٹے ماڈلز سے آغاز کریں۔ سکیل مفت نہیں ملتا۔ جب ڈیٹا کم ہو تو یہ آپ کو نقصان پہنچا سکتا ہے۔
لوس کرو (Loss Curve) پر بھروسہ نہ کریں
میں نے لوس کرو (loss curves) کو گھورنا چھوڑ دیا۔ ایک ماڈل اپنے ٹوکن لیول کی کراس انٹروپی (token-level cross-entropy) کو بہتر بنا سکتا ہے جبکہ اس کاروباری فیصلے میں خراب ہو رہا ہو جس کی آپ کو پرواہ ہے۔ ایسا اس لیے ہوتا ہے کیونکہ لینگویج ماڈلنگ لوس اگلے ٹوکن کی درست پیش گوئی کرنے پر انعام دیتا ہے۔ بہت سے شعبوں میں، خاص طور پر فنانس میں، درست فیصلہ اور سب سے زیادہ ممکنہ اگلا ٹوکن ایک ہی چیز نہیں ہوتے۔
میں نے ایسے ماڈلز دیکھے جنہوں نے ٹریننگ کے نثر (prose) کو خوبصورتی سے دوبارہ پیش کیا لیکن ہر بار غلط سمت کا انتخاب کیا۔ لوس (loss) نیچے گیا، اور اس کے ساتھ ہی سرمایہ (bankroll) بھی نیچے چلا گیا۔ اپنا ایویلیوایشن میٹرک (evaluation metric) حقیقی دنیا کے کام کی بنیاد پر منتخب کریں۔ اگر آپ دستاویزات کی درجہ بندی (ranking) کر رہے ہیں، تو رینکنگ کے معیار کو ناپیں۔ اگر آپ نتائج کی پیش گوئی کر رہے ہیں، تو فیصلے کی درستگی کو ناپیں۔ کبھی بھی eval_loss کو اپنے لیے ماڈل کا انتخاب نہ کرنے دیں۔
Fine-Tuning صرف غیر ملکی ذخیرہ الفاظ پر چمکتی ہے
میں نے دو مختلف قسم کے متن پر ایمبیڈر fine-tuning کے تجربات کیے۔ پہلے میں نے معیاری مالیاتی خبروں اور عوامی فائلنگز کا استعمال کیا۔ fine-tuned ایمبیڈر اور عام دستیاب (off-the-shelf) ورژن کی کارکردگی یکساں تھی۔ بیس ماڈل پہلے سے ہی اس زبان کو جانتا تھا۔ میں پہلے سے واقف میدان میں ٹیوننگ کر رہا تھا۔
دوسرا ڈیٹا سیٹ نجی اصطلاحات (jargon)، اندرونی کوڈ نیمز، اور شعبہ جاتی مخففات سے بھرا ہوا تھا جو کبھی بھی کھلے انٹرنیٹ پر ظاہر نہیں ہوئے۔ یہاں، fine-tuning نے retrieval کی درستگی کو 79 فیصد تک بہتر بنا دیا۔ بیس ماڈل کو سادہ طور پر معلوم نہیں تھا کہ ان اصطلاحات کا کیا مطلب ہے۔ Fine-tuning نے اسے مقامی ذخیرہ الفاظ سکھا دیے۔
اس نے میرے لیے پورے عمل کا تصور ہی بدل دیا۔ Fine-tuning کا مقصد ماڈل کو کسی عام معنوں میں ذہین بنانا نہیں ہے۔ یہ اسے ایک نیا ذخیرہ الفاظ، ایک نیا فارمیٹ، یا ایک مخصوص انداز (house style) سکھانے کے بارے میں ہے۔ اگر آپ کا ڈیٹا انٹرنیٹ جیسا ہے، تو fine-tune کو چھوڑ دیں۔ اگر آپ کا ڈیٹا ایسی زبان بولتا ہے جو بیس ماڈل نے کبھی نہیں دیکھی، تو fine-tuning ضروری ہو جاتی ہے۔
RAG آپ کو یقین دیتا ہے، حقیقت نہیں
میں نے پیشگوئی کے کاموں (prediction tasks) کے لیے آٹھ الگ الگ RAG کنفیگریشنز کا تجربہ کیا۔ مجموعی طور پر، ریٹریول (retrieval) شامل کرنے سے ماڈل کے فیصلوں میں تقریباً 30 فیصد تبدیلی آئی۔ یہ سننے میں اثر انگیز لگتا ہے۔ لیکن ایسا نہیں تھا۔ وہ تبدیلیاں محض شور (noise) تھیں۔ مجموعی درستگی (accuracy) میں کوئی بہتری نہیں آئی۔ جو چیز بدلی وہ ماڈل کا اعتماد تھا۔ RAG نے سسٹم کو زیادہ یقینی بنایا، زیادہ ذرائع (sources) کا حوالہ دیا، اور طویل تر جواز پیش کیے، جبکہ وہ اب بھی اتنی ہی غلطی کر رہا تھا۔
یہ ضرورت سے زیادہ اعتماد ایک پروڈکٹ کا خطرہ ہے۔ ایک صارف حوالوں کو دیکھتا ہے اور یہ فرض کر لیتا ہے کہ ماڈل نے اپنی تیاری مکمل کر لی ہے۔ حقیقت میں، وہ محض ایک پیچیدہ نظر آنے والا اندازہ لگا رہا تھا۔
سب سے تکلیف دہ سبق ایک RAG ورژن کی بیک ٹیسٹنگ (backtesting) سے ملا۔ اس نے 11 فیصد سالانہ منافع دکھایا۔ بظاہر، یہ ایک کامیاب حکمت عملی معلوم ہوتی ہے۔ لیکن اس کا AUC، جو کہ ROC curve کے نیچے کا رقبہ اور درجہ بندی کی مہارت کا پیمانہ ہے، 0.486 تھا۔ یہ سکہ اچھالنے سے بھی بدتر ہے، جس کی قدر 0.500 ہوتی ہے۔ منافع مارکیٹ کے ایک مخصوص دور کا محض ایک اتفاق تھا، نہ کہ کوئی قابلِ اعادہ برتری (repeatable edge)۔ صرف P&L کو بطور پیمانہ استعمال کرنا خطرناک ہے۔ مارکیٹیں ہر وقت خوش قسمتی کے سلسلے فراہم کرتی رہتی ہیں۔ اتفاقات اور مہارت کے درمیان فرق کرنے کے لیے آپ کو شماریاتی مہارت کے پیمانوں (statistical skill metrics) کی ضرورت ہوتی ہے۔
جانیں کہ ہر ٹول اصل میں کیا کرتا ہے
تو اس کا کیا نتیجہ نکلتا ہے؟ fine-tuning کا استعمال تب کریں جب ماڈل کو نئے الفاظ، مخصوص فارمیٹس، یا ایک منفرد انداز سیکھنے کی ضرورت ہو۔ RAG کا استعمال تب کریں جب ماڈل کو حقائق، code repositories، یا ادارہ جاتی یادداشت (institutional memory) تک رسائی کی ضرورت ہو جو اس کے weights سے باہر موجود ہو۔ ایسے ڈیٹا میں سگنل تلاش کرنے کے لیے ان میں سے کسی بھی ٹول کا استعمال نہ کریں جس میں کوئی سگنل موجود ہی نہ ہو۔ اگر بنیادی پیٹرن موجود نہیں ہے، تو retrieval اور fine-tuning صرف شور (noise) کو ایک بہتر لباس پہنا کر پیش کرنے میں آپ کی مدد کریں گے۔
اصل رکاوٹ
fine-tuning اور RAG کے لیے انفراسٹرکچر کو ترتیب دینا پہلے سے کہیں زیادہ آسان ہو گیا ہے۔ آپ ایک دوپہر میں ایک پائپ لائن (pipeline) تیار کر سکتے ہیں۔ تکنیک اب رکاوٹ نہیں رہی، بلکہ ایویلیوایشن (evaluation) رکاوٹ ہے۔ زیادہ تر ٹیمیں مشکل شماریاتی کام کو چھوڑ دیتی ہیں اور اس کے بجائے دکھاوے کے پیمانوں (vanity metrics) کا جشن مناتی ہیں۔ وہ ایسے سسٹم لانچ کرتے ہیں جو سمجھدار لگتے ہیں لیکن خاموشی سے ناکام ہو جاتے ہیں۔
رقم خرچ کرنے سے پہلے ایماندارانہ تجربات کریں۔ اپنے پیمانوں پر سوال اٹھائیں۔ overfitting کی جانچ کریں۔ اس بات کو یقینی بنائیں کہ ماڈل واقعی بہتر ہے،
