شعار زيفيرنت

مساعد الطيار GitHub وصعود نماذج لغة الذكاء الاصطناعي في أتمتة البرمجة

التاريخ:

مساعد الطيار GitHub وصعود نماذج لغة الذكاء الاصطناعي في أتمتة البرمجة

تابع القراءة لمعرفة المزيد حول ما الذي يجعل Copilot مختلفًا عن أدوات الإكمال التلقائي السابقة (بما في ذلك TabNine) ، ولماذا أثارت هذه الأداة الخاصة الكثير من الجدل.


github-copilot.png

هل يجب علي استخدام جيثب مساعد الطيار؟

 
إذا كنت مهندس برمجيات ، أو تعد أيًا منهم ضمن دائرة معارفك ، فمن المحتمل أنك على دراية بالفعل بمستوى معين من مساعد طيار. Copilot هي أداة إكمال كود التعلم العميق الجديدة من GitHub.

أدوات الإكمال التلقائي للمبرمجين ليست شيئًا جديدًا ، و Copilot ليس أول من استخدم التعلم العميق ولا حتى أول من استخدم محول GPT. بعد كل ذلك، تبنين نشأت من مشروع صيفي من قبل OpenAI alum يعقوب جاكسون ويستفيد من GPT-2 محول للأغراض العامة.

قامت Microsoft (التي تمتلك GitHub) بتعبئة برامجها الخاصة التحسس أداة إكمال الكود مع منتجات البرمجة منذ عام 1996 على الأقل ، وكان الإكمال التلقائي وتصحيح النص مجالًا نشطًا للبحث منذ الخمسينيات.

اقرأ ما إذا كنت ترغب في معرفة المزيد حول ما الذي يجعل Copilot مختلفًا عن أدوات الإكمال التلقائي السابقة (بما في ذلك TabNine) ، ولماذا أثارت هذه الأداة المعينة الكثير من الجدل.

حقوق الطبع والنشر الجدل

 

لقطة شاشة توضح حرص GitHub مساعد الطيار على قراءة دالة الجذر التربيعي العكسي السريع من Quake III.
لقطة شاشة من ارمين روناتشر مما يدل على حرص GitHub مساعد الطيار على تلاوة الجذر التربيعي المعكوس السريع وظيفة من Quake III.

 

منذ إنشائه ، قام كوبيلوت بإثارة نقاش ساخن حول المنتج وآثاره المحتملة على حقوق النشر. يرجع هذا في جزء كبير منه إلى الطريقة التي تم بها تدريب النموذج. يعتمد GitHub Copilot على Codex الخاص بـ OpenAI ، وهو نوع من GPT-3 تم ضبطه بدقة على الكود. GPT-3 هو 175 مليار متغير من OpenAI (يبدو أن Codex يعتمد على إصدار 12 مليار معامل من GPT-3) للأغراض العامة ، وبالطبع يحتاج أي محول عملاق إلى مجموعة بيانات تدريب عملاقة ليكون فعالاً. GitHub هو المكان المناسب للعثور على مجموعة البيانات هذه ومجموعة بيانات تدريب Copilot شملت جميع الرموز العامة استضافتها GitHub.

هذا هو مصدر الجدل الرئيسي حول المشروع ، متجاوزًا النقاش حوله أتمتة هندسة البرمجيات وتأثير أدوات مثل مساعد الطيار على مستقبل البرمجة. يمكن العثور على مزيد من المعلومات الفنية حول النموذج وقيوده في ورقة على Arxiv.


صورة إدموند دي بيلامي ". استخدم Collective Oburred شفرة مفتوحة المصدر لإنشاء القطعة ، وبيعت لاحقًا بأكثر من 400,000 ألف دولار في المزاد ، مما أثار استياء روبي بارات ، الذي استخدموه.

 

ينزعج بعض المبرمجين ببساطة من أن التعليمات البرمجية الخاصة بهم ساهمت في ما يُرجح أن يصبح منتجًا مدفوعًا دون إذن صريح منهم ، مع وجود عدد قليل من المعلقين على أخبار القراصنة مناقشة مغادرة المنصة.

في بعض النواحي ، يكون رد الفعل تجاه أصداء مساعد الطيار الخاص بـ "الرسم الذي تم إنشاؤه بواسطة GAN"التي بيعت بما يقرب من نصف مليون دولار في المزاد. ال تم إنشاء قطعة فنية على رأس المساهمات مفتوحة المصدر من سلالة من عدة مؤلفين ، لم يتلق أي منهم أي تعويض نعرفه كمكافأة على النجاح الملحوظ للعمل في المزاد.

• الكود المستخدمة لإنتاج العمل الفني ، وربما أوزان النموذج المدربة مسبقًا أيضًا ، تم إتاحتها للجمهور بموجب ترخيص BSD من قبل مؤلف النموذج ، روبي بارات ، الذي كان عمله الخاص يعتمد على مشاريع سابقة مفتوحة المصدر والذي قام بتعديل الترخيص لاحقًا إلى عدم السماح بالاستخدام التجاري للأوزان المدربة مسبقًا. من المفهوم أن يشعر المبرمجون بالإحباط عند استبعادهم من الاستخدامات المربحة لعملهم ، ولكن هناك المزيد من الجدل حول حقوق النشر حول Copilot أكثر من ذلك.

"جيثب كوبيلوت ، من خلال قبولهم الخاص ، تم تدريبهم على جبال من كود gpl ، لذلك أنا غير واضح كيف أنه ليس شكلاً من أشكال غسيل التعليمات البرمجية مفتوحة المصدر في الأعمال التجارية."-مستخدم تويتر eevee.

من الواضح أن GitHub Copilot قادر على إعادة إنتاج أقسام ممتدة من كود الحقوق المتروكة ، والتي يعتبرها الكثيرون في مجتمع المصادر المفتوحة انتهاكًا لشروط التراخيص مثل GPL.

تم تدريب مساعد الطيار على جميع التعليمات البرمجية العامة ، بما في ذلك تراخيص مفتوحة المصدر مثل MIT الترخيص. ومع ذلك ، فهي أيضًا تراخيص الحقوق المتروكة مثل رخصة أفيرو العامة (AGPL) الذي يسمح بالاستخدام والتعديل ، ولكنه يتطلب إتاحة الأعمال المعدلة بموجب نفس الترخيص. في بعض التفسيرات ، تم إنشاء الكود بواسطة GitHub Copilot يمكن اعتباره مشتقًا من بيانات التدريب الأصلية ، وربما أكثر إشكالية يمكن لـ Copilot أحيانًا استنساخ التعليمات البرمجية من مجموعة بيانات التدريب حرفيا. وهذا يجعل Copilot حالة أكثر تعقيدًا ، على سبيل المثال ، من سابقة مسح الكتب من Google التي يُشار إليها غالبًا على أنها حجر الزاوية للاستخدام العادل لإلغاء البيانات المحمية بحقوق الطبع والنشر.

يستمر النقاش حول القضايا القانونية المحتملة مع القليل من الإجماع من إما جانب من النقاش في الوقت الحالي ، ومن المحتمل جدًا أن يصبح الموضوع قضية يتعين على المحاكم حلها.

حتى لو افترضنا أن برنامج Copilot واضح تمامًا من الناحية القانونية ، فقد تكون هناك مخاطر أخرى لاستخدام المنتج. إذا كان تدريب كوبيلوت يعتبر استخدامًا عادلًا ولم يتم اعتبار مخرجاته مشتقًا أو عملًا ينتهك حقوق الطبع والنشر / الحقوق المتروكة ، فإنه لا يزال بإمكانه إنتاج مخرجات تتناسب بسهولة مع معايير الانتحال في سياق شيء مثل طالب الدكتوراه الذي يكتب رمزًا لبحث أطروحته. في الوقت الحالي ، قد يكون من الجيد استخدام مساعد الطيار بعناية ، ولكن هناك سبب آخر لكون Copilot موضوعًا شائعًا للمناقشة: يمكن أن يقدم مساعد الطيار حلولًا جيدة بشكل مدهش لمهام البرمجة الشائعة ، ويبدو أنه أكثر قدرة من حيث الكمية والنوعية من أدوات الإكمال التلقائي السابقة.

ما مدى جودة مساعد الطيار الخاص بـ GitHub؟

 

فيديو على Youtube يُظهر كيف يسحق مساعد الطيار جيثب أسئلة مقابلة leetcode
GitHub مساعد الطيار سحق أسئلة مقابلة Leetcode! مصدر

 

حتى لو لم تكن مبرمجًا ، فمن المحتمل أن يكون لديك بعض الخبرة في الإكمال التلقائي في شكل نص تنبؤي على هاتف محمول. سيقترح هذا تلقائيًا الكلمة التالية عندما تبدأ في كتابتها ، وقد يقترح استمرارًا أطول قليلاً مثل إنهاء الجملة الحالية.

بالنسبة لمعظم أدوات الإكمال التلقائي للبرمجة ، يتشابه مقدار وتعقيد الاقتراحات تقريبًا مع ما تجده في لوحة مفاتيح الهاتف المحمول ، ولكن لا تستخدم جميع أدوات إكمال التعليمات البرمجية التعلم الآلي الحديث (المعروف أيضًا باسم التعلم العميق).

الإكمال التلقائي الافتراضي في vim ، على سبيل المثال ، سيقدم ببساطة قائمة بالإكمالات المقترحة بناءً على الكلمات التي أدخلها المستخدم سابقًا. تم تطوير أدوات إكمال التعليمات البرمجية مؤخرًا مثل تبنين or طائرة ورقية أكثر تعقيدًا إلى حد ما ويمكن أن تقترح إكمال باقي السطر أو السطر. يقترح موقع Kite أن هذا يكفي لجعل المبرمج أكثر كفاءة تقريبًا من حيث عدد ضغطات المفاتيح المستخدمة ، لكن Github Copilot يأخذ هذه الخطوة إلى الأمام ، وإن كان بخطوة طويلة جدًا.

يتمتع برنامج Copilot بقدرات إكمال مماثلة للغة القياسية GPT-3 التي يعتمد عليها ، والعمل باستخدام أداة إكمال الكود يبدو ويشبه أسلوب "البرمجة السريعة"التي اعتمدها مجربو GPT-3 عند العمل مع النموذج. يمكن لـ Copilot تفسير محتويات سلسلة docstring وكتابة دالة لمطابقتها ، أو إعطاء وظيفة وبداية دالة اختبار مسماة بشكل مناسب يمكنه إنشاء اختبارات وحدة. هذا يوفر أكثر بكثير من 50٪ من ضغطات المفاتيح للمبرمج.

وبالنظر إلى استنتاجه المنطقي ، عندما يعمل Copilot بشكل مثالي ، فإنه يحول مهمة مهندس البرمجيات إلى شيء يشبه إلى حد كبير مراجعة الكود الثابتة أكثر من كتابة التعليمات البرمجية.

قام العديد من المبرمجين والمدونين الذين لديهم وصول مبكر إلى إصدار المعاينة الفنية بوضع Copilot على المحك من خلال تحدي النموذج بشكل أساسي لحل مشكلات البرمجة على مستوى المقابلة. مساعد الطيار مثير للإعجاب في مدى يمكنها حل هذه الأنواع من التحديات ، ولكنها ليست جيدة بما يكفي لضمان استخدام مخرجاتها دون مراجعتها بعناية أولاً.

وضع العديد من مهندسي البرمجيات عبر الإنترنت "مبرمج ثنائي الذكاء الاصطناعي" (كما يضعه GitHub) على المحك. سنستعرض بعض النقاط المحددة في ورق Arxiv كسيناريوهات يقصر فيها الدستور الغذائي ومحاولة العثور على أمثلة في التجارب التي أجراها المبرمجون المشاركون في المعاينة الفنية.

مجموعة بيانات HumanEval

 
OpenAI Codex عبارة عن 12 مليار متغير GPT-3 تم ضبطه بدقة على الكود ، مع كون Codex-S هو البديل الأكثر تقدمًا من Codex نفسه. لتقييم أداء هذا النموذج ، قامت OpenAI ببناء ما يسمونه مجموعة بيانات HumanEval: مجموعة من 164 تحديًا في البرمجة مكتوبة بخط اليد مع اختبارات الوحدة المقابلة ، وهو النوع الذي قد تجده في موقع ممارسة الترميز مثل الرمزأو Codeforces أو HackerRank.

في HumanEval ، يتم تضمين مواصفات المشكلة في docstrings الوظيفية ، وجميع المشاكل مكتوبة للغة برمجة Python.

في حين أن GPT-3 غير المتمايز بدون رمز خاص لم يكن قادرًا على حل أي من المشكلات في مجموعة بيانات HumanEval (على الأقل في المحاولة الأولى) ، كان Codex و Codex-S المضبوطان جيدًا قادرين على حل 28.8٪ و 37.7٪ من مشاكل ، على التوالي. من خلال انتقاء الكرز من بين أفضل 100 محاولة لحل المشكلات ، كان Codex-S قادرًا على حل 77.5٪ من المشكلات.

تتمثل إحدى طرق تفسير ذلك في أنه إذا كان المبرمج يستخدم Codex ، فيمكنه توقع العثور على حل صالح لمشكلة (تقريبًا بمستوى التعقيد الذي تمت مواجهته في المقابلات الفنية) من خلال النظر في أول 100 اقتراح ، أو حتى محاولة الرمي العمياء. الحلول في مجموعة صالحة من اختبارات الوحدة حتى تنجح. هذا لا يعني أنه لا يمكن العثور على حل أفضل ، إذا كان المبرمج على استعداد لتعديل الاقتراحات من Codex ، في أحد الاقتراحات القليلة الأولى.

استخدموا أيضًا مقدرًا أكثر تعقيدًا لحل كل مشكلة عن طريق توليد حوالي 200 عينة وحساب مقدر غير متحيز لنسبة العينات التي تجتاز اختبارات الوحدة ، والتي أبلغوا عنها كـ "pass @ k" حيث k هو 100 ، وعدد العينات هو مقدر. هذه الطريقة لديها تباين أقل من الإبلاغ عن pass @ k مباشرة.

أفضل نموذج كوديكس لا يزال أقل من أداء طالب علوم الكمبيوتر

 
لاحظ مؤلفو Codex أنه تم تدريب النموذج على أكثر من 150 جيجا بايت في مئات الملايين من أسطر التعليمات البرمجية من GitHub ، وقد تم تدريب النموذج على كود أكثر بكثير مما يمكن للمبرمج البشري أن يتوقع قراءته على مدار حياتهم المهنية. ومع ذلك ، فإن أفضل نموذج Codex (Codex-S مع 12 مليار متغير) لا يزال أقل من قدرات طالب علوم الكمبيوتر المبتدئ أو شخص يقضي بضع فترات بعد الظهر في ممارسة تحديات الترميز بأسلوب المقابلة.

على وجه الخصوص ، يتدهور أداء الدستور الغذائي بسرعة عند ربط العديد من العمليات معًا في مواصفات المشكلة.

في الواقع ، تنخفض قدرة الدستور الغذائي على حل العديد من العمليات المتسلسلة معًا بمعامل 2 أو أسوأ لكل تعليمات إضافية في مواصفات المشكلة. لتقدير هذا التأثير ، أنشأ المؤلفون في OpenAI مجموعة تقييم من التلاعب بالسلسلة التي يمكن أن تعمل بالتتابع (التغيير إلى الأحرف الصغيرة ، واستبدال كل حرف آخر بحرف معين ، وما إلى ذلك). من أجل معالجة سلسلة واحدة ، اجتاز الدستور ما يقرب من 25٪ من المشكلات ، وانخفض إلى أقل من 10٪ بقليل عن 2 من عمليات التلاعب بالأوتار المربوطة ببعضها البعض ، و 5٪ لـ 3 ، وهكذا.

لوحظ الانخفاض السريع في حل المشكلات متعددة الخطوات من قبل مراجع مساعد أول جوليانو جياكاليا على المتوسط. أبلغ جوليانو عن إعطاء Copilot وصفًا لمشكلة عكس الأحرف في كل كلمة في سلسلة إدخال ، ولكن بدلاً من ذلك اقترح Copilot وظيفة تعكس ترتيب الكلمات في الجملة ، وليس الأحرف في جملة من الكلمات ("World Hello" بدلاً من " olleH dlroW "). ومع ذلك ، نجح برنامج Copilot في كتابة اختبار فشل في تنفيذه.

على الرغم من عدم الالتزام بنموذج التلاعب بالسلسلة متعدد الخطوات الذي يستخدمه جوليانو وأوبن إيه آي لاختبار مساعد الطيار ، كومار شوبهام اكتشف Copilot نتيجة رائعة عندما نجح في حل وصف مشكلة متعدد الخطوات يتضمن استدعاء برامج النظام لالتقاط لقطة شاشة وتشغيل التعرف الضوئي على الأحرف على الصورة واستخراج عناوين البريد الإلكتروني من النص في النهاية. ومع ذلك ، فإن هذا يثير مشكلة أن Copilot قد يكتب رمزًا يعتمد على تبعيات خارجية غير متوفرة أو قديمة أو غير موثوق بها. هذه نقطة أثارتها شركة OpenAI جنبًا إلى جنب مع قابلية النموذج للتحيز ، والقدرة على توليد نقاط ضعف أمنية ، والتكاليف الاقتصادية وتكاليف الطاقة المحتملة في قسم ورقتهم التي تناقش المخاطر.

تقييمات أخرى لـ Copilot بواسطة مستخدمي YouTube توجيه DevOps و  بنيامين كارلسون وجدت نتائج مبهرة عند تحدي مساعد الطيار بأسئلة على غرار المقابلة من leetcode.com، بما في ذلك بعض التي بدت أكثر تعقيدًا بشكل ملحوظ من ربط سلسلة من التلاعب البسيط في الأوتار. الاختلاف في تعقيد الكود الذي يمكن لـ Copilot أن يولده وتعقيد مواصفات المشكلة التي يمكن لـ Copilot فهمها أمر مذهل.

ربما يؤدي انتشار الكود المكتوب بأسلوب أسئلة ممارسة المقابلة في مجموعة بيانات التدريب إلى قيام مساعد الطيار بملاءمة تلك الأنواع من المشاكل ، أو ربما يكون من الصعب ربط عدة خطوات للوظائف المعيارية معًا أكثر من إنتاج جزء كبير من التعليمات البرمجية المعقدة التي تشبه إلى حد بعيد شيء شاهده النموذج من قبل. تعد المواصفات الموصوفة بشكل سيء والتفسير السيئ مصدرًا شائعًا للشكاوى للمهندسين ومديريهم من التنوع البشري ، لذلك ربما لا ينبغي أن يكون مفاجئًا العثور على مساعد ترميز AI يفشل في تحليل مواصفات المشكلة المعقدة.

بدائل مساعد الطيار

 
حتى كتابة هذه السطور ، لا يزال برنامج Copilot مقصورًا على المبرمجين المحظوظين بما يكفي للتسجيل في المعاينة الفنية، ولكن لا تخف: عدد لا يحصى من مساعدي إكمال التعليمات البرمجية الآخرين (سواء كانوا يستخدمون التعلم العميق أم لا) متاحون بسهولة للتجربة وليس هذا وقتًا سيئًا للتفكير فيما قد تعنيه زيادة الأتمتة لهندسة البرمجيات.

ذكرنا في وقت سابق تبنين، أداة لإكمال الكود تعتمد جزئيًا على محول GPT-2 الخاص بـ OpenAI. تم بناؤه في الأصل من قبل جاكوب جاكسون ويمتلكها الآن كودوتا، كان TabNine قادرًا على حل 7.6٪ من معيار HumanEval في مقياس pass @ 100 الذي استخدمه مؤلفو OpenAI. هذا مثير للإعجاب إلى حد ما بالنظر إلى أن TabNine تم تصميمه ليكون حلاً عمليًا لإكمال التعليمات البرمجية ، على عكس Codex الذي كان مستوحى بشكل واضح من إمكانات نماذج GPT-3 لإنتاج رمز من أوصاف المشكلة. كان TabNine موجودًا منذ عام 2018 ولديه إصدارات مجانية ومدفوعة.

طائرة ورقية هي أداة أخرى لإكمال الكود في نفس السياق مثل TabNine ، مع إصدارات (سطح المكتب) المجانية والمدفوعة (الخادم) التي تختلف في حجم النموذج المستخدم بواسطة عامل 25. وفقًا لإحصائيات استخدام Kite ، يختار المبرمجون استخدام الخيار المقترح غالبًا ما تكفي عمليات الإكمال لخفض ضغطات المفاتيح إلى النصف مقارنةً بالكتابة يدويًا لكل سطر ، وتستشهد Kite's بزيادة إنتاجية المستخدمين المبلغ عنها ذاتيًا بنسبة 18٪. بالانتقال إلى العروض التوضيحية المتحركة على موقع الويب الخاص بهم ، يقترح Kite بالتأكيد عمليات إكمال أقصر من كل من TabNine و Copilot. يختلف هذا في الدرجة عن TabNine ، والذي يقترح فقط عمليات إكمال أطول قليلاً في معظم الأحيان ، لكنه يختلف نوعياً عن مساعد الطيار: يمكن أن يقترح مساعد الطيار كتل ممتدة من التعليمات البرمجية ويغير التجربة من اختيار أفضل إكمال إلى مراجعة التعليمات البرمجية للعديد من الأساليب المقترحة للمشكلة.

هل مساعد الطيار موجود هنا ليأخذ وظيفتك أم مجرد كودك؟

 
لدى GitHub Copilot بعض مهندسي البرمجيات يمزحون أن الأتمتة التي كانوا يبنونها لسنوات عادت أخيرًا إلى المنزل لتستقر ، وسرعان ما سنكون جميعًا عاطلين عن العمل. في الواقع ، من غير المرجح أن يكون هذا هو الحال لسنوات عديدة لأن هناك المزيد من البرمجة أكثر من مجرد كتابة التعليمات البرمجية.

إلى جانب ذلك ، إنها مجاز يتكرر كثيرًا حتى أن تفسير ما يريده العميل أو المدير بالضبط في مجموعة من مواصفات البرامج هو فن أكثر منه علم.

من ناحية أخرى ، من المحتمل بالفعل أن يكون لـ Copilot وأدوات أخرى لإكمال كود اللغة الطبيعية مثله (وثق بنا ، المزيد قادم) تأثير كبير على الطريقة التي يؤدي بها مهندسو البرمجيات وظائفهم. من المحتمل أن يقضي المهندسون وقتًا أطول في مراجعة الكود وفحص الاختبارات ، سواء أكان الكود قيد التدقيق قد كتب بواسطة نموذج ذكاء اصطناعي أو مهندس زميل. من المحتمل أيضًا أن نرى طبقة أخرى من التعريف لفن البرمجة حيث أصبحت "البرمجة السريعة" لمساعدي برمجة التعلم الآلي شائعة.

كمؤلف cyberpunk وليام جيبسون ضعها كل تلك السنوات الماضية: "المستقبل هنا بالفعل - إنه غير موزع بالتساوي."

أشعل كوبيلوت أيضًا جدلاً حول حقوق النشر والحقوق المتروكة وجميع أنواع تراخيص المصادر المفتوحة وفلسفة بناء التكنولوجيا الجيدة ، وهي مناقشة يجب أن تتم عاجلاً وليس آجلاً. بالإضافة إلى ذلك ، تتطلب معظم التفسيرات المعاصرة للملكية الفكرية وجود مؤلف بشري للعمل ليكون مؤهلاً لحقوق الطبع والنشر. نظرًا لأن المزيد من التعليمات البرمجية تتم كتابتها بنسب أكبر بواسطة نماذج التعلم الآلي بدلاً من البشر ، فهل ستدخل هذه الأعمال بشكل قانوني إلى المجال العام عند إنشائها؟

من تعرف؟ ربما يفوز مجتمع المصدر المفتوح أخيرًا في النهاية ، حيث يصبح الخليفة العظيم العظيم لـ Copilot مدافعًا قويًا عن المصادر المفتوحة ويصر على العمل فقط على البرامج المجانية ومفتوحة المصدر.

 
السيرة الذاتية: كيفين فو تدير مدونة Exxact Corp وتعمل مع العديد من مؤلفيها الموهوبين الذين يكتبون عن جوانب مختلفة من التعلم العميق.

أصلي. تم إعادة النشر بإذن.

هذا الموضوع ذو علاقة بـ:


أفلاطون. Web3 مُعاد تصوره. تضخيم ذكاء البيانات.
انقر هنا للوصول.

المصدر: https://www.kdnuggets.com/2021/09/github-copilot-rise-ai-language-models-programming-automation.html

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة