عنوان: خرابی صرف ایک محور (axis) کی وجہ سے تھی
PyTorch کے chunked-scan کے نفاذ (implementation) میں ایک چھپی ہوئی خرابی کی وجہ سے مخصوص ہائبرڈ ماڈلز مستقبل کے ٹوکنز (tokens) کو دیکھ سکتے ہیں جب فاسٹ فیوزڈ کرنلز (fast fused kernels) موجود نہ ہوں، جس سے Zamba2-1.2B اور Nemotron-H-8B جیسے چیک پوائنٹس متاثر ہوتے ہیں۔ یہ نقص ایک غلط محور (axis) پر کیے گئے سنگل ریڈکشن (reduction) سے پیدا ہوتا ہے، اور یہ اس ایگزیکیوشن پاتھ پر ظاہر ہوتا ہے جس پر زیادہ تر CI پائپ لائنز اور CPU رنز انحصار کرتے ہیں۔
یہ خرابی کیوں اہم ہے
ہائبرڈ اور اسٹیٹ-اسپیس ماڈلز اب صرف attention پر انحصار نہیں کرتے؛ وہ linear recurrences، scans، اور convolutions کا بھی استعمال کرتے ہیں۔ ماسکنگ کا وہ عمل جو attention matrix میں مستقبل کے ٹوکنز کو روکتا ہے، ان اضافی آپریشنز کے لیے خود بخود causality کی ضمانت نہیں دیتا۔ جب وہ فاسٹ فیوزڈ کرنلز غائب ہوتے ہیں جو عام طور پر scan کو درست طریقے سے سنبھالتے ہیں، تو PyTorch ایک خالص-Python chunked-scan پاتھ پر منتقل ہو جاتا ہے۔ اس فال بیک (fallback) میں axis-mixup موجود ہے، جو انفرنس (inference) کے دوران بعد کے پوزیشنز سے معلومات کو پیچھے کی طرف بہنے کی اجازت دیتا ہے۔
یہ معلومات کا اخراج (leak) خاموش ہے۔ یہ ماڈل کو کریش نہیں کرتا اور نہ ہی کوئی واضح غلطی (error) ظاہر کرتا ہے۔ اس کے بجائے، یہ loss اور perplexity کو مصنوعی طور پر کم دکھاتا ہے کیونکہ ماڈل عملی طور پر دھوکہ دہی کر رہا ہے—یعنی وہ بالکل وہی ٹوکنز دیکھ رہا ہے جن کی اسے پیش گوئی کرنی چاہیے۔ اس لیے کوئی بھی ڈاؤن اسٹریم ایویلیوایشن (downstream evaluation) جو ان میٹرکس پر بھروسہ کرتی ہے، ایک ناقص بنیاد پر قائم ہوتی ہے۔
مسئلے کا پتہ کیسے چلا
محققین نے ایک ہی ماڈل کے ذریعے دو فارورڈ پاسز (forward passes) کا موازنہ کیا:
- ایک رینڈم ٹوکن سیکوئنس۔
- ایک ہی سیکوئنس جس میں ایک ٹوکن بدلا گیا ہو۔
انہوں نے لیئر بہ لیئر ہڈن اسٹیٹس (hidden states) میں فرق کی پیمائش کی۔ ماسک کے معائنے میں کچھ بھی سامنے نہیں آیا، لیکن فی-لیئر آڈٹ (per-layer audit) جس میں فالٹس (faults) شامل کیے گئے تھے، اس نے 192 میں سے 192 شامل کردہ غلطیوں کو پکڑ لیا، جس سے معلومات کے اخراج کی تصدیق ہوئی۔
transformers لائبریری کے ایک فوری جائزے سے معلوم ہوا:
- Zamba2-1.2B اس وقت معلومات کا اخراج کرتا ہے جب chunk size 256 پر سیٹ ہو۔
- Nemotron-H-8B 128 کے chunk size پر معلومات کا اخراج کرتا ہے۔
- زیادہ تر دیگر چیک پوائنٹس نے انہی حالات میں کوئی اخراج نہیں دکھایا۔
یہ نقص chunked-scan کوڈ پاتھ میں موجود ہے جو اس وقت چلتا ہے جب اختیاری فیوزڈ کرنلز غائب ہوتے ہیں۔ اس میں شامل ہیں:
- تمام CPU ایگزیکیوشن۔
- وہ GPU ماحول جن میں مخصوص fused-kernel پیکیجز موجود نہ ہوں۔
- معیاری PyTorch انسٹالیشنز جن میں اضافی ڈیپینڈنسیز (dependencies) شامل نہ ہوں۔
چونکہ یہ خرابی صرف تب ظاہر ہوتی ہے جب وہ کرنلز موجود نہ ہوں، اس لیے یہ CI ماحول اور CPUs پر سامنے آ سکتی ہے۔
کون خطرے میں ہے اور اس کی کیا قیمت ہے
کوئی بھی ٹیم جو فیوزڈ کرنلز کے بغیر ہائبرڈ ماڈلز کو ٹرین، فائن ٹیون، یا ایویلیویٹ کرتی ہے، وہ بڑھا چڑھا کر کارکردگی کے اعداد و شمار شائع کرنے کے خطرے میں ہے۔ loss یا perplexity میں ظاہری بہتری محض ایک دھوکہ ہے؛ ماڈل نے عملی طور پر "آگے دیکھ لیا" ہے۔ ریسرچ گروپس کے لیے، یہ اسٹیٹ آف دی آرٹ (state-of-the-art) نتائج کے بارے میں گمراہ کن دعووں کا باعث بن سکتا ہے۔ کمرشل استعمال کے لیے، یہ جنریشن ٹاسکس میں ایسی ڈاؤن اسٹریم غلطیوں کا سبب بن سکتا ہے جو حقیقت میں کبھی سیکھی ہی نہیں گئیں۔
مخالف دلیل
کچھ ڈویلپرز کا استدلال ہے کہ مستقبل کے ٹوکنز کے اخراج کو روکنے کے لیے صحیح طریقے سے لاگو کردہ causal mask کافی ہے۔ یہ خرابی اس تصور کو غلط ثابت کرتی ہے: scans، convolutions، اور کچھ نارملائزیشن لیئرز ماسک کو مکمل طور پر نظر انداز کر سکتے ہیں۔ chunked scan میں axis-mixup یہ ظاہر کرتا ہے کہ causality کو ہر جگہ نافذ کیا جانا چاہیے جہاں ڈیٹا بہتا ہے، نہ کہ صرف attention matrix میں۔
آگے کیا دیکھنا ہے
- ڈیپینڈینسی ہائیجین (Dependency hygiene): تمام ٹریننگ اور انفرنس نوڈز پر فاسٹ فیوزڈ-کرنل پیکیجز انسٹال کریں، خاص طور پر CI پائپ لائنز میں۔
- آڈٹ اسکرپٹس (Audit scripts): دریافت کرنے والوں کی تجویز کردہ دو مرحلہ وار آڈٹ پر عمل کریں:
- ایک مثبت کنٹرول (positive control) کے طور پر اس چیک پوائنٹ میں ایک معلوم فالٹ شامل کریں جس کی آپ ٹیسٹنگ کر رہے ہیں۔
- ماڈل کے chunk یا ونڈو سائز سے زیادہ لمبے سیکوئنسز چلائیں؛ مختصر سیکوئنسز کبھی بھی اخراج کو ظاہر نہیں کریں گے۔
کسی بھی ہائبرڈ یا اسٹیٹ-اسپیس چیک پوائنٹ پر آڈٹ چلانا، جس کی سیکوئنس لمبائی chunk size سے زیادہ ہو، یہ ظاہر کر دے گا کہ آیا ماڈل اب بھی غیر محفوظ ہے۔
خلاصہ: یہاں تک کہ ایک ماڈل جو ہر معیاری ٹیسٹ پاس کر لیتا ہے، وہ بھی خاموشی سے دھوکہ دے سکتا ہے جب ایگزیکیوشن پاتھ کسی ناقص نفاذ (buggy implementation) پر منتقل ہو جائے۔ کسی بھی ہائبرڈ ماڈل کے میٹرکس پر بھروسہ کرنے سے پہلے یہ تصدیق کرنا کہ فاسٹ فیوزڈ کرنلز موجود ہیں—اور attention masks سے ہٹ کر معلومات کے اخراج کے لیے واضح طور پر ٹیسٹ کرنا—اب ضروری اقدامات ہیں۔
