آپ کی ایویلیویشنز بھی غیر مستحکم ہیں: ایسی پاس ریٹ پر بھروسہ کرنا چھوڑ دیں جسے آپ دوبارہ دہرانے سے قاصر ہیں
زیادہ تر لوگ جانتے ہیں کہ AI ایجنٹس غیر حتمی (non-deterministic) ہوتے ہیں۔ آپ ایک ہی پرامپٹ بھیجتے ہیں، لیکن آپ کو مختلف نتائج ملتے ہیں۔
ہم نے اسے تسلیم کر لیا۔ ہم نے ان ایجنٹس کی درجہ بندی کرنے کے لیے LLMs کو ججز کے طور پر استعمال کرنا شروع کر دیا۔
لیکن ہم نے ایک بہت بڑی غلطی کی۔ ہم نے فرض کر لیا کہ ہمارے ججز حتمی (deterministic) ہیں۔ وہ نہیں ہیں۔
آپ کا ایویلیویشن سویٹ (eval suite) ایک بے ترتیب سسٹم ہے جو دوسرے بے ترتیب سسٹم کی درجہ بندی کر رہا ہے۔ اگر آپ یہ ناپتے نہیں ہیں کہ آپ کا گریڈر کتنا اتار چڑھاؤ رکھتا ہے، تو آپ کے پاس کوئی کوالٹی گیٹ نہیں ہے۔ آپ کے پاس صرف ایک سکہ اچھالنے جیسا معاملہ ہے۔
میں نے یہ ایک سپورٹ ایجنٹ کے ساتھ ہوتے دیکھا۔ ڈیش بورڈ ہفتوں تک سبز رہا۔ پھر، صارفین کی شکایات میں اچانک اضافہ ہو گیا۔ میں نے 200 پرانے جوابات پر وہی ایویلیویشن چلائی۔ ان میں سے 14 نے اپنا فیصلہ بدل دیا۔ ایجنٹ نہیں بدلا تھا۔ جج نے اپنا فیصلہ بدل لیا تھا۔
ایک غیر مستحکم گیٹ کا نہ ہونے سے بھی برا ہونا ہے۔ یہ آپ کو جھوٹی خود اعتمادی دیتا ہے۔
آپ کی ایویلیویشنز کے ناکام ہونے کی تین وجوہات ہیں:
- جج ماڈل: ہر LLM جج میں تغیر (variance) ہوتا ہے۔ یہاں تک کہ ٹیمپریچر 0 پر بھی، فراہم کنندہ ایک ہی نتیجے کی ضمانت نہیں دیتے۔ ماڈل کی ایک خاموش اپ ڈیٹ راتوں رات آپ کی بیس لائن کو تباہ کر سکتی ہے۔
- ہارنس (The harness): اگر آپ کے رن کے درمیان آپ کا سیاق و سباق (context) یا ٹول کے آؤٹ پٹس تبدیل ہو جاتے ہیں، تو جج ایک مختلف سوال دیکھتا ہے۔ ان پٹ تبدیل ہو گیا۔
- ربرک (The rubric): "کیا یہ اچھا ہے؟" جیسے مبہم قواعد تغیر پیدا کرتے ہیں۔ سخت اور مخصوص قواعد اسے کم کرتے ہیں۔
آپ کو غیر مستحکم ایویلیویشنز کے ساتھ ویسا ہی سلوک کرنا چاہیے جیسا کہ غیر مستحکم سافٹ ویئر ٹیسٹ کے ساتھ کیا جاتا ہے۔ انہیں ریلیز نہ کریں۔ انہیں کوارنٹائن کریں۔ فلیک ریٹ (flake rate) کو ناپیں۔
صرف ایک پاس ریٹ رپورٹ کرنا بند کریں۔ اتفاق (agreement) رپورٹ کرنا شروع کریں۔
ہر جج کال کو کئی بار چلائیں۔ اگر جج خود سے اتفاق نہیں کر سکتا، تو فیصلہ کوئی سگنل نہیں ہے۔ یہ UNSTABLE ہے۔
ایک UNSTABLE نتیجہ آپ کے CI/CD پائپ لائن میں ایک اہم نتیجہ ہونا چاہیے۔ اسے واضح طور پر ناکام ہونا چاہیے۔
ایک غیر مستحکم ایویلیویشن کو ٹھیک کرنے کے لیے، آپ کو دو چیزوں کی ضرورت ہے:
- اسکورنگ لیئر: یہ استحکام کا حساب لگاتی ہے اور نتائج کو PASS، FAIL، یا UNSTABLE میں تبدیل کرتی ہے۔
- ٹریسنگ لیئر: آپ کو ہر رن کے لیے خام بائٹس (raw bytes)، بالکل وہی پرامپٹ، اور ٹول کے آؤٹ پٹس دیکھنے چاہئیں۔
ٹریسز کے بغیر، آپ کو لگے گا کہ ماڈل محض بے ترتیب ہے۔ آپ ٹیمپریچر کم کر دیں گے اور سمجھیں گے کہ آپ نے اسے ٹھیک کر دیا ہے۔ آپ نے اسے ٹھیک نہیں کیا۔ آپ نے صرف بگ (bug) کو خاموش کر دیا ہے۔
حقیقی معیار بنانے کے لیے ان قواعد پر عمل کریں:
- صرف اوسط نہیں، بلکہ اتفاق (agreement) رپورٹ کریں۔
- اپنے پائپ لائن میں UNSTABLE کو ایک ناکام حالت (failing state) بنائیں۔
- اپنے جج ماڈل کے ورژنز کو پن (pin) کریں۔
- جب کوئی چیک ناکام ہو جائے تو ٹریسز پڑھیں۔
ایک سبز ڈیش بورڈ جسے آپ دوبارہ دہرانے سے قاصر ہیں، کوئی سگنل نہیں ہے۔ یہ وہ کہانی ہے جو آپ خود کو سناتے ہیں۔
Optional learning community: https://t.me/GyaanSetuAi
