کوڈنگ مقابلوں میں مسائل کو حل کرنے میں AI کو بہتر بنانا

کوڈنگ مقابلوں میں مسائل کو حل کرنے میں AI کو بہتر بنانا

انٹرویو مسابقتی پروگرامنگ کے مسائل کو حل کرنے کے لیے کمرشل بڑے لینگوئج ماڈلز کی صلاحیتوں کو ہوشیار پرامپٹ انجینئرنگ کے ذریعے احتیاط سے رہنمائی کر کے نمایاں طور پر بڑھایا جا سکتا ہے۔

اس کو ظاہر کرنے کے لیے، اسرائیل میں مقیم Codium AI نے الفا کوڈیم اور بنایا جاری اس مہینے GitHub پر سافٹ ویئر۔ الفا کوڈیم زبان کا ایک بڑا ماڈل نہیں ہے۔ اس کے بجائے یہ ایک ایسا طریقہ ہے جو GPT-4 جیسے جنریٹیو AI ٹولز کی مسئلہ حل کرنے کی صلاحیتوں کو بہتر بناتا ہے جسے CEO Itamar Friedman "فلو انجینئرنگ" کہتے ہیں۔

سب سے پہلے، ایک پروگرامنگ سوال بنیادی زبان کے بڑے ماڈل کو کھلایا جاتا ہے، اور اس سے مسئلہ کی وضاحت اور خلاصہ کرنے کو کہا جاتا ہے۔ اس کے بعد یہ معلومات رہنمائی کرتی ہے کہ اسے مسئلہ کو حل کرنے کے لیے کس طرح شروع کرنا چاہیے۔ الفا کوڈیم چیزوں کی وضاحت کرتا ہے، جیسے کہ حل کے ساتھ آتے وقت ان پٹ اور آؤٹ پٹس کیا ہونے چاہئیں۔ یہ سب فطری زبان میں بیان کیا گیا ہے۔

اس کے بعد ماڈل کوڈ تیار کرنا شروع کر دیتا ہے جو ابھی بیان کردہ تصریحات کے ساتھ ہم آہنگ ہوتا ہے۔ پروگرامنگ کے مقابلے دعویداروں سے مخصوص کوڈ کرنے کے لیے کہتے ہیں جو عام طور پر ٹیسٹ فراہم کرتے ہیں جو یہ ظاہر کرتے ہیں کہ اسکرپٹ کو دیے گئے ان پٹ کے لیے کیا آؤٹ پٹ کرنا چاہیے۔ AlphaCodium ان میں سے زیادہ ٹیسٹ کیسز تیار کرتا ہے، اور پھر یہ جانچنے کے لیے ممکنہ حل کے باوجود چلتا ہے کہ آیا کوڈ توقع کے مطابق کام کر رہا ہے۔

اگر یہ کسی بھی ٹیسٹ میں بیان کردہ کسی بھی آؤٹ پٹ سے مماثل نہیں ہوتا ہے، تو ماڈل مختلف حل تیار کرتا ہے جب تک کہ وہ تمام ٹیسٹ پاس نہ کر لے یا یہ ناکام ہو جائے۔ غلطیاں اس وقت پیدا ہو سکتی ہیں جب اس کا کوڈ مرتب نہ ہو یا غلط ہو۔

آپ نیچے دیے گئے خاکے میں فلو انجینئرنگ کے عمل کے مختلف مراحل دیکھ سکتے ہیں۔ یہ بڑے پیمانے پر پروسیسنگ سے پہلے کے مرحلے میں تقسیم ہوتا ہے، جہاں نظام قدرتی زبان میں مسئلے کا تجزیہ کرتا ہے، اور ایک کوڈ تکرار کا مرحلہ، جہاں یہ عوامی اور AI سے تیار کردہ ٹیسٹوں کے خلاف ممکنہ حل چلاتا ہے۔

الفاکوڈیم

وہ تمام وسیع اقدامات جو AlphaCodium کو مسائل کو حل کرنے کے لیے کوڈ بنانے میں رہنمائی کرتے ہیں۔

"ہم مسئلہ کو نہیں لیتے اور ماڈل کے پاس جاتے ہیں اور اسے کہتے ہیں، 'ارے، براہ کرم حتمی حل پیدا کریں،'" فریڈمین نے بتایا رجسٹر. "ہم ماڈل سے کہتے ہیں کہ براہ کرم اس مسئلے کو بلٹ پوائنٹس میں دوبارہ بیان کریں۔" اسے آسان بنانے اور چیزوں کو ٹکڑوں میں تقسیم کرنے سے ماڈل کے لیے بعد میں الگورتھم کے مختلف حصوں کے لیے کوڈ تیار کرنا آسان ہو جاتا ہے۔

بنیادی طور پر، فلو انجینئرنگ ایک ایسا طریقہ کار ہے جو ماڈل کے مسئلے کو حل کرنے کے عمل کو اچھی طرح سے طے شدہ مراحل میں تقسیم کرکے رہنمائی کرتا ہے۔ ہمیں بتایا جاتا ہے کہ "پیدا کردہ کوڈ کو چھوٹے ذیلی فنکشنز میں بامعنی ناموں اور فعالیت کے ساتھ تقسیم کرنے" کا اشارہ کرنا، کم کیڑے کا باعث بنتا ہے اور کوڈ کو جانچنا اور درست کرنا آسان بناتا ہے۔

فریڈمین نے مزید کہا کہ "ہم نے بنیادی طور پر اپنا 95 فیصد وقت فلو انجینئرنگ پر صرف کیا، اور صرف 5 فیصد فوری انجینئرنگ پر اور ہم نے ہر [قدم] کے لیے اشارے تبدیل نہیں کیے،" فریڈمین نے مزید کہا۔

کوڈیم کے انجینئرز نے اپنے ماڈل کی کارکردگی کو دو سال قبل گوگل ڈیپ مائنڈ کے مرتب کردہ CodeForces ڈیٹا سیٹ کی تصدیق اور جانچ کے حصوں میں استعمال ہونے والے سینکڑوں مسائل پر جانچا۔ ان کا دعویٰ ہے کہ الفا کوڈیم گوگل ڈیپ مائنڈ کے الفا کوڈ اور الفا کوڈ 2 ماڈلز کے مقابلے کوڈنگ کے مسائل کو حل کرنے میں بہتر تھا۔

ایک arXiv میں رپورٹ کردہ نتائج میں کاغذ [PDF]، AlphaCodium AlphaCode کے 44 فیصد کے مقابلے میں 24 فیصد سوالات کا صحیح جواب دینے میں کامیاب رہا، جبکہ 107 توثیق کے مسائل کے لیے AlphaCode کے دس منتخب کردہ حلوں کے مقابلے میں صرف پانچ حل پیدا کر سکے۔ دلچسپ بات یہ ہے کہ جب الفا کوڈیم کے 165 فیصد کے مقابلے الفا کوڈیم نے 29 فیصد حل کرنے کے ساتھ 28 ٹیسٹ مسائل کی بات کی تو یہ فرق کم ہوگیا۔

AlphaCode اپنے تیار کردہ ممکنہ اسکرپٹس کے دسیوں ہزار، یا سیکڑوں ہزاروں میں سے دس سب سے زیادہ امید افزا حلوں کا انتخاب کرتا ہے – جو اسے کمپیوٹیشنل طور پر چلانے کے لیے انتہائی سخت بناتا ہے۔

"ہم نے جانچ کے پورے بہاؤ پر بہت زیادہ توجہ مرکوز کی،" فریڈمین نے کہا۔ "[گوگل] کے لیے، انہوں نے نسل پر بہت زیادہ کام کیا۔ وہ سینکڑوں دوسرے اختیارات پیدا کرنے کی کوشش کرتے ہیں اور ہم بہت کم حل پیدا کرتے ہیں، لیکن کوڈ کی بہتری کی رہنمائی کے لیے انہیں واقعی اچھی طرح جانچتے ہیں۔

انہوں نے مزید کہا کہ الفا کوڈیم گوگل ڈیپ مائنڈ کے جدید ترین AlphaCode2 ماڈل سے تھوڑا سا بہتر ہے جو کہ اپنے پیشرو الفا کوڈ سے 10,000 گنا زیادہ موثر ہے۔

alphacodium_2

AlphaCodium درستگی اور کارکردگی کے لحاظ سے دوسرے جدید ترین ماڈلز سے کس طرح موازنہ کرتا ہے

فریڈمین نے کہا کہ انہیں یقین ہے کہ الفا کوڈیم کی کارکردگی ڈیٹا لیکیج کی وجہ سے نہیں ہے، جہاں بنیادی ماڈل کو تربیت دی گئی ہے اور انہی مسائل پر تجربہ کیا گیا ہے۔ الفا کوڈیم کو طاقت دینے والے GPT-4 ورژن کو ستمبر 2021 تک انٹرنیٹ سے سکریپ کیے گئے متن پر تربیت دی گئی تھی، جب کہ اس نے اپنے سسٹم کو جن مسائل پر تجربہ کیا وہ مذکورہ بالا کوڈفورسز ڈیٹا سیٹ سے لیا گیا تھا جو بہت بعد میں جاری کیا گیا تھا۔

سیب سے سیب کا ایک بہتر موازنہ جو بہاؤ انجینئرنگ کے عمل کا اندازہ کرتا ہے، تاہم، GPT-4 کی انہی سوالات کو الفا کوڈیم کے ساتھ اور اس کا اطلاق کیے بغیر حل کرنے کی صلاحیت کو دیکھ رہا ہے۔ سادہ پرانا GPT-4 توثیق اور ٹیسٹ سیٹ میں بالترتیب صرف 19 اور 12 فیصد مسائل کا صحیح جواب دے سکتا ہے، جبکہ AlphaCodium سے چلنے والے مختلف قسم کے 44 اور 29 فیصد کے مقابلے میں۔

مختصراً، ایسا معلوم ہوتا ہے کہ ایک محتاط پائپ لائن پر عمل درآمد کرنا جو اضافی ڈیٹا تیار کرتا ہے اس کی رہنمائی کے لیے کہ کوڈ کیسے تیار کیا جاتا ہے اور جانچ کے عمل کو بہتر بنانا شروع سے ہی زبان کے بڑے ماڈل کو تربیت دینے کی کوشش کرنے سے زیادہ مؤثر ثابت ہو سکتا ہے۔

کوڈیم نے حال ہی میں ازگر کے ڈویلپرز کی مدد کے لیے ایک نیا ٹول جاری کیا، جو اب اپنے IDE میں کوڈنگ کے مسئلے کو براہ راست حل کرنے کے لیے AlphaCodium کو کال کر سکتے ہیں۔ آپ اس کے ساتھ کھیل سکتے ہیں۔ یہاں ®

ٹائم اسٹیمپ:

سے زیادہ رجسٹر