الأخبار

أداة GitHub Copilot أصبحت عامة الآن - إليك ما تحتاج إلى معرفته

أعلنت GitHub الأسبوع الماضي أنها ستطلق Copilot، أداة "مبرمج ثنائي الذكاء الاصطناعي AI pair programmer" للجمهور. يستخدم Copilot الذكاء الاصطناعي لتوفير مجموعة من وظائف الدعم، بما في ذلك تعليمات الإكمال التلقائي، وإنشاء وظائف كاملة، وتحويل السلاسل والأوصاف إلى كود مصدر وظيفي.

تم إطلاق Copilot كمعاينة فنية في عام 2021. الآن يمكن لجميع المطورين التقدم بطلب للحصول على Copilot، والذي يتم تثبيته كملحق في بيئات التطوير المتكاملة (IDE) integrated development environments مثل Visual Studio و VS Code و Neovim و JetBrains IDEs.

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

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

كم هو كود مكتوب مع Copilot؟
وراء Copilot توجد بنية المحولات transformer architecture، وهو نوع من نموذج التعلم العميق المستخدم في نماذج اللغات الكبيرة مثل GPT-3 و LaMDA. المحولات جيدة بشكل خاص في معالجة البيانات المتسلسلة مثل النص ورمز البرنامج وتسلسلات البروتين. في حالة وجود موجه، يمكن لنموذج المحول التنبؤ بالعناصر التالية من التسلسل، سواء كانت كلمات أو تعليمات كمبيوتر. تم بناء Copilot على Codex من OpenAI، وهو محول تم تدريبه على عشرات الملايين من مستودعات الرموز. بمجرد التثبيت على IDE الخاص بك، يقدم Copilot اقتراحات بناءً على الكود الموجود في ملفك بالإضافة إلى الإشارات، مثل أسماء وظائفك وفئاتك والتعليقات في التعليمات البرمجية الخاصة بك.

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

وفقًا لـ GitHub، استخدم أكثر من 1.2 مليون مطور المعاينة الفنية لـ Copilot في الأشهر الـ 12 الماضية. في الملفات التي يتم فيها تمكين Copilot، فإنه يمثل ما يقرب من 40% من التعليمات البرمجية في لغات البرمجة الشائعة مثل Python.

قال Ryan J. Salva، نائب رئيس المنتج في GitHub: "أنه في حين أنه من الصعب تحديد مقدار الترميز الذي تم إجراؤه باستخدام Copilot هو تطوير برامج حقيقي بدلاً من استكشاف الأداة، يبدو أن نسبة 40% ثابتة حيث استخدم المطورون Copilot على مدى عدة أيام".

يقلل GitHub Copilot من المشتتات
قال سالفا: "يتحدث المطورون غالبًا عن قيمة البقاء" في التدفق "والتأثير الإيجابي لـ [Copilot] على إنتاجيتهم وإبداعهم وسعادتهم بشكل عام.

وفقًا لسلفا، في استطلاع تم توزيعه على 17000 مطور خلال المعاينة الفنية لـ Copilot، أفاد أكثر من 75% من المطورين بأنهم عند استخدام Copilot "ينفقون جهدًا عقليًا أقل على مهام البرمجة المتكررة"، و "يركزون على عمل أكثر إرضاءً" و "البقاء في التدفق".

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

تحدث المطورون لتأكيد بعض هذه النقاط. يستخدم أبهيشيك ثاكور، مهندس التعلم الآلي في Hugging Face، برنامج Copilot منذ يونيو 2021. وقد استخدمه في تطوير AutoTrain، وهي أداة بدون رمز لتدريب أحدث نماذج التعلم الآلي. كما أنه يستخدمها في مسابقات التعلم الآلي على Kaggle، حيث يصنع البرامج التعليمية والمشاركة في الهاكاثونات.

قال Thakur: "عندما أقوم بالبرمجة، أريد أقل قدر من الإلهاءات. بهذه الطريقة، كان Copilot عونا كبيرا. لقد قللت من الوقت الذي قد أقضيه في البحث عن حلول على الويب وبدلاً من ذلك أجعلها في متناول يدي في IDE المفضل لدي".

يبحث العديد من المطورين عن حلول للمشكلات الصغيرة في محركات البحث و StackOverflow، وهو منتدى ويب يشارك فيه المطورون مقتطفات التعليمات البرمجية لمهام محددة.

قال ثاكور: "بعد استخدام برنامج Copilot، نادرًا ما أزور هذه المواقع ويمكنني بدلاً من ذلك التركيز على الترميز".

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

التعامل مع المهام المتكررة مع Copilot
استخدم لويس كاستريكاتو، الباحث المتدرب في Hugging Face وقبل ذلك في EleutherAI، Copilot في الحوسبة العلمية، حيث غالبًا ما تكون الوظائف مرهقة ويصعب استخدامها. إحدى هذه الوظائف هي einsum لـ PyTorch، والتي تتطلب معلمات غير عملية حول أبعاد الموترات التي تريد حسابها.

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

يستخدم Snir Shechter، رئيس فريق البحث والتطوير في Aporia، برنامج Copilot منذ ما يقرب من عام. قال: "عند تطوير منتجنا الرئيسي في Aporia، يساعدني Copilot في كتابة الكود السهل". "بالنظر إلى اصطلاحات التسمية الجيدة، يستطيع Copilot إكمال الوظيفة بأكملها/ الكتلة التالية من الكود. بعد ذلك، أحتاج فقط إلى المراجعة لأرى أن كل شيء جيد (وربما إضافة منطق أكثر تحديدًا). إنه أمر جيد حقًا في إكمال الشفرة العامة/ المتكررة وهي تحددها بناءً على السياق".

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

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

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

أصبح Copilot أيضًا أداة جيدة لتوثيق كود البرنامج، وهي مهمة غالبًا ما يتم تجاهلها، خاصةً عندما يلاحق المبرمجون المواعيد النهائية.

يستخدم Castricato Copilot لتوثيق الكود الخاص به، والإكمال التلقائي للسندات وكتابة الاقتراحات في Python. يعمل هذا على تحسين قابلية قراءة الكود ويسهل على نفسه وعلى المطورين الآخرين إدارة الكود لاحقًا.

قال: "قام برنامج Copilot بزيادة كمية الوثائق التي أكتبها لشفري بما لا يقل عن 2x أو 3x".
 
حدود Copilot
قال كاستريكاتو "[Copilot] غالبًا ما يكون ضعيفًا جدًا في تنفيذ خوارزميات كاملة". "على سبيل المثال، عندما حصلت على Copilot لأول مرة، أردت معرفة ما إذا كان بإمكانه تنفيذ الأشكال الأساسية للبرمجة الديناميكية دون توجيه كبير. لقد فشلت فشلاً ذريعاً، وسرعان ما أدركت أنه من أجل استخدام Copilot بأقصى قدرته، تحتاج إلى شرح (من خلال التعليقات) بالتفصيل الخطوات التي يحتاجها Copilot لتنفيذ خوارزمية معينة".

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

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

اعترف Salva أن Copilot لا يزال قيد التنفيذ وتجربة مطور جديدة. يواصل فريق المنتج تعلم الدروس من كيفية استخدام المطورين له ويقومون بتعديل نموذج الذكاء الاصطناعي الذي يعمل عليه.

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

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

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

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

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

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

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

يعتقد Salva أن هذه مجرد بداية للبرمجة المعززة بالذكاء الاصطناعي وترى أن Copilot هو الخطوة التالية في سلسلة طويلة من أدوات المطورين.

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

وأضاف أنه مع وجود أدوات أفضل، زاد طلب الصناعة على المطورين بشكل مطرد. وقال: "نحن متفائلون بأن GitHub Copilot سيكون له تأثيرات مماثلة، مما يكمل عمل المطورين ويمكّنهم من كتابة التعليمات البرمجية بسهولة أكبر مع تركيز وإبداع أكبر".