آئی ڈی ایز (Integrated Development Environments) کی دنیا میں آٹو کمپلیشن کی خصوصیات ایک عرصے سے طاقت اور درستی کا مظاہرہ کر رہی ہیں۔ تاہم، اب ایک نیا کھلاڑی میدان میں اترا ہے: مصنوعی ذہانت (Artificial Intelligence)۔ آئی ڈی ایز میں اے آئی کا انضمام تیزی سے عام ہوتا جا رہا ہے، جس کی وجہ سے روایتی ٹولز کا از سر نو جائزہ لینا پڑ رہا ہے۔ اگرچہ یہ پرانے طریقے اب بھی کام کرتے ہیں، لیکن اب وہ جدید ترین مدد فراہم نہیں کر پاتے جو ڈویلپرز کی توقعات کے مطابق ہو۔
یہ مضمون جیٹ برینز کے ایک بلاگ پوسٹ سے ماخوذ ہے، اور میلم کی تربیت اور صلاحیتوں پر روشنی ڈالتا ہے، جو کہ کلاؤڈ بیسڈ آٹو کمپلیشن کی بنیاد ہے۔ جیٹ برینز، جو کہ پروگرامرز کے لیے آئی ڈی ایز اور کوڈ ایڈیٹرز کے لیے مشہور ہے، نے میلم کو تیز رفتار اور موثر کوڈ آٹو کمپلیشن فراہم کرنے کے لیے تیار کیا ہے۔ میلم کو مقامی ڈیوائس پر مؤثر طریقے سے کام کرنے کے لیے ڈیزائن کیا گیا ہے، جو اسے اپنی کلاس میں سب سے تیز اور سب سے چھوٹے ماڈلز میں سے ایک بناتا ہے۔ ایک تصوراتی طور پر ملتا جلتا پروجیکٹ مائیکروسافٹ فائی (Microsoft Phi) ہے۔
واضح چیلنجز سے نمٹنا
جیٹ برینز کے انجینئرز کو اے آئی سے چلنے والی آٹو کمپلیشن کے حصول میں کئی اہم چیلنجز کا سامنا کرنا پڑا:
- رفتار اور لاگت: روایتی چیٹ ماڈلز اپنی اعلیٰ کمپیوٹیشنل لاگت اور سست ردعمل کے اوقات کی وجہ سے غیر عملی ثابت ہوئے۔ ان ماڈلز میں کوڈ کی مخصوص تکنیکوں جیسے فل اِن دی مڈل (FIM) یا ٹوکن ہیلنگ سے متعلق آگاہی بھی نہیں تھی۔
- آؤٹ پٹ فارمیٹنگ: فلیگ شپ چیٹ ماڈلز اکثر غیر مستقل فارمیٹس میں ڈیٹا تیار کرتے تھے، جس کی وجہ سے رسپانس کو پارس کرنا اور اسے ایڈیٹر میں بغیر کسی رکاوٹ کے ضم کرنا مشکل ہو جاتا تھا۔
- ڈیٹا کی اصلیت: تربیتی ڈیٹا کی اصلیت کا تعین کرنا اور ممکنہ کاپی رائٹ کی خلاف ورزی کے مسائل کو کم کرنا ایک اہم رکاوٹ تھا۔
میلم: ایک جائزہ
جیٹ برینز کی ڈیولپمنٹ ٹیم نے محسوس کیا کہ اپنا ماڈل بنانا بہترین طریقہ ہے۔ ان کا مقصد ایک ایسا ماڈل ڈیزائن کرنا تھا جو معیار، انفرنس لاگت اور تاخیر کے درمیان توازن برقرار رکھے، اور جسے واضح اصلیت کے ساتھ ڈیٹا پر تربیت دی جائے۔ ابتدائی تحقیق سے پتہ چلا کہ تقریباً 4 بلین پیرامیٹرز والا ماڈل وسیع پیمانے پر منظرناموں اور صارفین کے لیے قابل آٹو کمپلیشن صلاحیتیں فراہم کر سکتا ہے۔ مزید برآں، ماڈل کو صرف کوڈ پر تربیت دے کر، وہ ٹوکن کی ایک خصوصی لغت قائم کر سکتے ہیں، جو غیر متعلقہ ڈیٹا سے پاک ہو۔
میلم ماڈل کے لیے تربیتی عمل تین مختلف مراحل پر مشتمل ہے، جن میں سے ہر ایک نیا علم فراہم کرتا ہے اور تیار کردہ کوڈ کے معیار کو بڑھاتا ہے۔ ابتدائی مرحلے میں انفرادی فائلوں کے ایک بڑے ذخیرے پر بنیادی پری ٹریننگ شامل ہے۔ دوسرا مرحلہ مخصوص مثالوں کے ایک چھوٹے سیٹ کے ساتھ ماڈل کو بہتر بنانے پر مشتمل ہے۔ مصنوعی ذہانت کے تاثرات (Reinforcement Learning with AI Feedback - RLAIF) کے ساتھ کمک لرننگ کو تیسرے مرحلے میں آئی ڈی ای کی مخصوص خصوصیات کے مطابق ماڈل کو ڈھالنے اور ناپسندیدہ آؤٹ پٹ کو ختم کرنے کے لیے استعمال کیا جاتا ہے۔
پری ٹریننگ
مبہم ڈیٹا کی اصلیت سے متعلق ممکنہ مسائل سے بچنے کے لیے، ماڈل کو شروع سے تربیت دی گئی، جس میں متعدد زبانوں، پروگرامنگ نحو، پیٹرن اور بنیادی تصورات سے متعلق جامع تعارف کی ضرورت تھی۔
ڈیٹا سیٹ
پری ٹریننگ کے لیے بنیادی ڈیٹا کا ذریعہ دی اسٹیک (TheStack) تھا۔ یہ ڈیٹا سیٹ اس بات کو یقینی بناتا ہے کہ ڈیٹا قانونی طور پر درست اور عملی طور پر فائدہ مند ہو۔
پری ٹریننگ کا عمل
پری ٹریننگ کے دوران، تقریباً 3 ٹریلین ٹوکن تک پہنچنے کے لیے ڈیٹا سیٹ کو متعدد بار نمونہ لیا گیا۔ 8192 ٹوکن کی ایک سیاق و سباق ونڈو استعمال کی گئی، جس میں ڈیٹا سیٹ کو اس سائز کے ٹکڑوں میں تقسیم کیا گیا۔ فل اِن دی مڈل (FIM) ٹرانسفارمیشن ہر ٹکڑے میں آدھی فائلوں پر لاگو کی گئی، جس سے ماڈل کو پہلے اور بعد کے کوڈ دونوں پر غور کرنے کی ترغیب ملی۔ یہ تکنیک حقیقی دنیا کے کوڈ جنریشن منظرناموں کی قریبی تقلید کرتی ہے۔
پری ٹریننگ کا مرحلہ سولہ نوڈس کے ایک کلسٹر پر کیا گیا، جن میں سے ہر ایک آٹھ ایچ 100 جی پی یوز (H100 GPUs) سے لیس تھا۔ اس مرحلے کو مکمل ہونے میں تقریباً 15 دن لگے، جس کے نتیجے میں 4 بلین پیرامیٹرز والا میلم بیس (Mellum-base) ماڈل تیار ہوا۔
پری ٹریننگ ایک عام مقصد والا کوڈ آٹو کمپلیشن ماڈل تیار کرتا ہے جس میں بہت سی پروگرامنگ زبانوں کا وسیع علم ہوتا ہے۔ تاہم، اس مرحلے پر، ماڈل کو صرف بے ترتیب طور پر منتخب فائل سیگمنٹ میں اگلے ٹوکن کی پیش گوئی کرنے کی تربیت دی جاتی ہے۔ اضافی سیاق و سباق کے بغیر، ماڈل میں کوڈ کی ساخت سے متعلق آگاہی نہیں ہوتی اور اس کے پاس یہ تعین کرنے کا کوئی طریقہ کار نہیں ہوتا کہ کوڈ جنریٹ کرنا کب بند کرنا ہے۔
فائن ٹیوننگ کا مرحلہ ان حدود کو دور کرنے کے لیے ڈیزائن کیا گیا ہے۔
سیاق و سباق سے آگاہ فائن ٹیوننگ
بہتر فل اِن دی مڈل
پری ٹریننگ کے برعکس، جہاں کوڈ کے ٹکڑوں کو پیش گوئی کے لیے بے ترتیب طور پر منتخب کیا جاتا ہے، فائن ٹیوننگ کوڈ کو زیادہ بامعنی انداز میں تقسیم کرنے پر توجہ مرکوز کرتی ہے، جس سے ماڈل کو کوڈ کے ٹکڑے نکالنے کی تعلیم دی جاتی ہے جو ‘جنگل میں’ ہوتے ہیں۔
مخصوص مثالیں
عملی طور پر، کوڈ آٹو کمپلیشن کے لیے آس پاس کی فائلوں اور وسیع تر سیاق و سباق کو سمجھنے کی ضرورت ہوتی ہے، جس میں ممکنہ طور پر پورے پروجیکٹس شامل ہوتے ہیں۔
ڈیٹا پری پروسیسنگ کے لیے، کمپنی نے کوڈ انجن کے نام سے ایک داخلی پروجیکٹ شروع کیا: ایک کراس پلیٹ فارم ایس ڈی کے (SDK) اور کنسول یوٹیلیٹیز کا ایک سیٹ جو مکمل پروجیکٹ انڈیکسنگ کی ضرورت کے بغیر براہ راست عام فائلوں سے سیاق و سباق بنانے کے لیے تیار کیا گیا ہے۔ اس ایس ڈی کے کو ایک داخلی میپ ریڈیوس (MapReduce) کلسٹر پر تعینات کیا گیا تھا اور اسے ہزاروں پبلک ریپوزٹریز پر کارروائی کرنے کے لیے استعمال کیا گیا تھا، جس سے مناسب وقت میں تربیت کے لیے بہت سی مفید مثالیں تیار ہوئیں۔
درست الگورتھم تلاش کرنے میں کچھ آزمائش اور غلطی کی ضرورت تھی۔
مخصوص زبانوں کے لیے ٹیوننگ
چھوٹے ماڈلز کو مخصوص زبانوں کے لیے مہارت حاصل کرنے سے بہت فائدہ ہو سکتا ہے۔ اگرچہ بیس ماڈل کو 80 سے زیادہ زبانوں پر تربیت دی جاتی ہے، لیکن زیادہ تر صارفین عام طور پر صرف ایک یا دو کے ساتھ کام کرتے ہیں۔ اس مسئلے کو حل کرنے کے لیے، جیٹ برینز نے متعدد خصوصی ماڈلز بنائے:
- میلم آل (mellum-all): جیٹ برینز آئی ڈی ایز میں دستیاب زیادہ تر زبانوں اور بولیوں کی حمایت کرتا ہے، لیکن خصوصی ماڈلز کے مقابلے میں آٹو کمپلیشن کا معیار کم ہے۔
- میلم پائتھون (mellum-python): پائتھون اور جوپیٹر میں مہارت رکھتا ہے۔
- میلم کوٹلن (mellum-kotlin): جاوا اور کوٹلن میں مہارت رکھتا ہے۔
- میلم ویب (mellum-web): ویب ٹیکنالوجیز میں مہارت رکھتا ہے۔
آخری مرحلہ: آر ایل اے آئی ایف (RLAIF)
آخر میں، ان معاملات کو حل کرنا ضروری ہے جہاں سیکھنے کے مقاصد صارف کی توقعات سے میل نہیں کھاتے۔ ایک اضافی تربیتی مرحلہ، آر ایل اے آئی ایف - مصنوعی ذہانت کے تاثرات کے ساتھ کمک لرننگ، ایسے مسائل کو حل کرنے کے لیے استعمال کیا جاتا ہے۔
ماڈل صارف کے تعاملات سے سیکھتا ہے اور سمجھتا ہے کہ صارف کی ترجیحات کو بہتر طریقے سے کیسے ظاہر کیا جائے۔
یہ طریقہ نہ صرف مجموعی معیار کے اسکور کو بہتر بناتا ہے بلکہ پریشان کن جنریشن آرٹفیکٹس کی تعداد کو بھی کم کرتا ہے۔
میلم کتنا اچھا ہے؟
ماڈل اپنے سائز کے حساب سے غیر معمولی طور پر اچھا کام کرتا ہے۔ یہاں یہ کیسے جانچا گیا:
- سب سے پہلے، ماڈل کا جائزہ ایک داخلی بینچ مارک پر لیا گیا جس کا نام ‘جیٹ برینز بگ کوڈ’ ہے۔
- پھر اس کا تجربہ معروف پبلک بینچ مارکس جیسے ایس اے ایف آئی ایم (SAFIM) پر کیا گیا۔
- آخر میں، خصوصیات کے لیے استعمال کے اعدادوشمار جمع کیے گئے، اور صارف کے میٹرکس کا حساب لگایا گیا۔
آف لائن تشخیص
ڈیٹا جمع کرنا ایک پیچیدہ کام ہے، لیکن ایک اچھا میٹرک بنانا جو اصل تجویز کا نیورل نیٹ ورک کی تجویز کردہ نئی تجویز سے موازنہ کرے اور بھی مشکل ہے۔ ہم نے ایک چھوٹا سا مطالعہ کیا اور آخر کار دو بنیادی میٹرکس کے مجموعے پر سمجھوتہ کیا:
ای ایم (EM):
- ایگزیکٹ میچ (Exact Match) ایک بہت مقبول خیال ہے۔
- ایک پیش گوئی کو اچھا سمجھا جاتا ہے اگر تکمیل کی پہلی سطر اصل کی پہلی سطر سے کم سے کم پری پروسیسنگ کے ساتھ ملتی ہو۔
کے کے (KK):
- یہ میٹرک اس کے مصنفین کے نام پر رکھا گیا تھا۔
- اصل سے مجوزہ لائنوں کی تعداد کو مجوزہ تکمیل میں لائنوں کی تعداد سے تقسیم کیا گیا۔
جیٹ برینز بگ کوڈ
ماڈل کا جائزہ ایک بینچ مارک ڈیٹا سیٹ کے خلاف لیا گیا جو داخلی جیٹ برینز بگ کوڈ ٹول کا استعمال کرتے ہوئے حاصل کیا گیا تھا۔
عوامی بینچ مارکس پر انحصار کرنے کے بجائے اپنے ڈیٹا سیٹ پر مکمل کنٹرول برقرار رکھنے سے، مختلف کوڈنگ اسٹائلز اور طریقوں کے لیے ماڈل کے معیار کا قابل اعتماد طریقے سے جائزہ لینا ممکن ہو جاتا ہے۔
ہمارے جیٹ برینز بگ کوڈ تشخیص کے نتائج مشہور ماڈلز کے مساوی معیار کو ظاہر کرتے ہیں، لیکن میلم چھوٹا اور زیادہ موثر ہے۔
سنگل لائن تجاویز کا معیار (ای ایم میٹرک)
پبلک بینچ مارکس
ماڈل کا جائزہ نہ صرف داخلی ڈیٹا سیٹ پر لیا گیا بلکہ مختلف پبلک بینچ مارکس پر بھی لیا گیا، جیسے کثیر لسانی بینچ مارک ایس اے ایف آئی ایم (نحو سے آگاہ فل اِن دی مڈل)۔
آن لائن تشخیص
مرکزی میٹرک کو مکمل کوڈ کا تناسب (RoCC) کہا جاتا ہے۔ اسے کوڈ آٹو کمپلیشن کا استعمال کرتے ہوئے لکھے گئے کوڈ حروف کے تناسب کے طور پر بیان کیا جاتا ہے جو ایڈیٹر میں کوڈ کی کل مقدار سے متعلق ہے۔
ایک اور اہم میٹرک قبولیت کی شرح (AR) ہے، جس کا حساب دکھائی گئی تمام تجاویز کی تعداد سے تقسیم کردہ قبول شدہ تجاویز کی تعداد کے طور پر لگایا جاتا ہے۔
یہ ایک پیچیدہ سفر تھا، لیکن جیٹ برینز کے ماہرین نے اسے وقار کے ساتھ مکمل کیا۔ آخر میں، ایک عام اور کئی خصوصی ماڈلز حاصل کیے گئے، جو جیٹ برینز اے آئی پلیٹ فارم کے ذریعے دستیاب ہیں۔ وہ اب کامیابی کے ساتھ جیٹ برینز اے آئی اسسٹنٹ میں کام کر رہے ہیں۔
آگے کیا ہے؟
- جیٹ برینز کے انجینئرز اس وقت ویب ڈیولپمنٹ زبانوں کے لیے ایک ماڈل پر کام کر رہے ہیں۔ یہ مستقبل قریب میں عوام کے لیے دستیاب ہو سکتا ہے۔
- ایک ہی وقت میں پیرامیٹرز کی تعداد اور ڈیٹا کی تنوع دونوں کو بڑھانے کے منصوبے ہیں۔ کوڈنگ میں بہت سے مختلف کام ہیں - میلم ان کو بھی انجام دینے کے قابل ہو گا۔ سروس کی کارکردگی اب بھی ایک اہم میٹرک ہے، اس لیے ماڈل کی توسیع مناسب حدود میں ہو گی۔