ما هي GitHub Copilot؟ وما مميزاتها؟
محتوى المقال
تعد منصة GitHub من أشهر المنصات التي تقدم مشاريع البرمجية مفتوحة المصدر، قد قامت في 29 يناير 2021 بالإعلان الأول لأداة متطورة ستكون إحدى أكثر الأدوات استخداماً لدى المبرمجين، وتمت تسميتها GitHub copilot (جيت هاب كوبايلوت). وستتركز عملها على مساعدة المطورين الذين يعملون على Visual Studio Code، وVisual، وبيئات JetBrains، ومجموعة Neovim، و Studio (IDEs) من خلال إضافة مقترحات خارجية لإكمال الكود بطريقة الذكاء الاصطناعي، مع إضافة واقتراح لطرق عملية برمجية متكاملة، وهذا ما سأقوم بذكره في هذا المقال.
ما هي أداة GitHub Copilot؟ وما مميزاتها؟
إن GitHub’s Copilot عبارة عن أداة برمجية متطورة تعمل بالذكاء الاصطناعي، وتم تطويرها من قبل GitHub وبالاشتراك مع OpenAI، حيث تتميز هذه الأداة المسماة Copilot بكتابة التعليمات البرمجية بسهولة وسرعة وبشكل أفضل. وستدعم كلاً من Visual Studio Code و Visual وسيكون بشكل ملحق لمجموعة Neovim و Studio (IDEs).
كيف تعمل أداة GitHub’s Copilot؟
تعمل من خلال استخراج النمط بشكل افتراضي أي تعتمد على سياق نمط الكود البرمجي، فمن خلال كتابة بعض الرموز ستستخرج هذه الأداة الكود الذي ترغب بكتابته وأضافته لسلسلة الأكواد التي قمت بكتابتها. وأيضاً من خلال خزن وجمع عناوين URL الخاصة بالملفات التي تملك صلة وبواسطة OpenAI Codex سيتم اقتراح أسطر إضافية! وربما يعد هذا الأمر صعباً، لكنه معقول مع GitHub التي تعد إحدى أفضل المنصات للمشاريع البرمجية، ولاستعراض الأكواد مفتوحة المصدر.
أما عن تشغيله فيتم تشغيل GitHub Copilot عن طريق Codex الذي يتميز بذكاء اصطناعي متقدم تم إنشاؤه بواسطة OpenAI، والذي تمت برمجته خصيصاً لكي يقوم بكتابة النصوص واستخراج الرموز من المصادر المتاحة للمستخدمين وأهمها منصة GitHub.
وطريقة عمل أداة GitHub copilot تعتمد على نموذج Codex التابع إلى المنظمة غير الربحية لأبحاث الذكاء الاصطناعي OpenAI، وتم تدريبه بصورة تامة على رموز برمجية والكود المُدخل وجمع المصادر المتاحة من كل مكان بضمنها مراكز الخزن على GitHub، ويتم استخدام هذه البيانات بواسطة OpenAI و GitHub و Microsoft لتعديل وإضافة تحسينات على أداء وجودة عمل Copilot بشكل مباشر، بما في ذلك تحسينات على الاقتراحات، وتحسين المنتجات والخدمات، وإجراء كشوفات عن أي طريقة استخدام خاطئة لهذه الأداة.
هل يمكن للمبرمج الاعتماد على GitHub Copilot؟
على الرغم من عمل هذه الأداة بالذكاء الاصطناعي، إلا أن الاعتماد عليها بشكل تام يعد أمراً خاطئاً، إذ إنها مُصممة لكتابة الأكواد حسب السياق المتوفر للكاتب أو المبرمج، وليس من وظيفتها التامة أن تقوم بمراجعة كود ما، أو أن تقوم بتصحيح الأخطاء الناتجة أو كتابة أكواد صعبة. لكن أعلنت GitHub إنها تقوم بكتابة أكواد بشكل مثالي فقط عند سياق محدود، ونظراً لآراء المستخدمين فقد أعرب 40% عن إعجابه بهذه الأداة في برمجة لغة البايثون.
عوضاً عن هذا فيمكنك الاستفادة منها في أمور أخرى في مشروعك خاصة المشاريع التي تعتمد على لغات مثل لغة Python, JavaScript, Go، إذ إن أداءها كان أفضل من غيرها من اللغات ويبقى الاعتماد الكلي لدى المبرمج في المراجعة البشرية لهذه الأكواد المكتوبة لتجنب أي خطأ متوفر. وهذا يثبت فشل بعض الإشاعات التي انتشرت عن أن هذا النظام سيحل محل كل المبرمجين!
للحصول على الاستفادة التامة من GitHub Copilot، صرح الموقع الرسمي إلى GitHub لتقسيم الكود لمقاطع بسيطة يتم برمجة وظائفها كل جزء على حداً، مع مراعاة استخدام أكواد واضحة وأسماء معلومة، وأيضاً الانتباه لكتابة التعليقات أينما تذهب.
وعن سلبياتها أو أخطاء عملها، فقط أعلنت GitHub أن أداة Copilot قد تدخل بعض الرموز العامة إلى أخطاء قد تمت كتابتها مسبقاً وإلى الواجهة البرمجية بعد إضافة اقتراحات للمبرمج نسبة إلى بيانات المستقبلة لها وليس بشكل ذاتي، أي إنها لن تقوم بكتابة أكواد غير آمنة إلا من قبل البيانات الواصلة إليها، لهذا يجب التتبع معها ومراجعة الأدوات والاقتراحات لتلافي الأخطاء.
أما بخصوص الاقتراحات فيمكن إيقافها أو الحد منها من خلال إيقاف تشغيل زر ON. هذه الاقتراحات تبنى مع أداة GitHub Copilot وبوجود الكود المحيط البرمجي، فإذا تطابق الكود مع الكود المكتوب مسبقاً فلن يظهر هذا الاقتراح، فكما ذكرنا إن نقاط الضعف الأمنية والأخطاء الشائعة والتلقائية في الكود تبقى على عاتق المبرمج.
هل يمكن الاستفادة من GitHub copilot في الوطن العربي؟
في الواقع هنالك بعض النقاط التي تم التصريح عنها من قبل منصة GitHub والمستخدمين بهذا الخصوص، إذ إن أداة copilot تعمل باستخدام المصادر العامة المتوفرة، وغالباً هذه المصادر تكون باللغة الإنجليزية، وربما في بعض الأحيان قد لا تتطلب Copilot لغة واضحة في كتابة الأكواد، إلا أن الذين لا يجيدون الإنجليزية سيعانون من مشاكل في الانسياب معها وبهذا سيملكون جودة أقل من غيرهم.
وكما ذكرنا أيضاً أن أداة Copilot لن تساعدك إذا فكرت الاعتماد عليها كلياً، فإن المطورين عديمو الخبرة أو المبتدئين سيعانون من إنشاء أكواد فعالة أو في اختبار ومراجعة الأخطاء الأمنية أو جودة الكود أو في اختيار الاقتراحات المناسبة، لذلك من الأفضل تطوير مستواك البرمجي قبل استعمالها.
هل يمكن لأداة GitHub Copilot أن تسرب بياناتي؟ وكيفية حمايتها؟
كما ذكرنا إنها أداة تقوم بجمع وتحليل البيانات من المصادر المتوفرة فقط لإنشاء اقتراحات لتحسين الأداء، لكنها لن تقوم بمشاركة هذه البينات مع مستخدمين آخرين، كما يمكن قفل ورفض هذه الاقتراحات أو القبول بها بناءً على رغبة المستخدمين. إن GitHub أقرت بإصرارها على حفظ خصوصية المستخدم ولن تتم إظهار أي بيانات ومقترحات للمستخدمين الآخرين لهذه الأداة. كما أنها قد تعطي اقتراحات شخصية نادرة جداً وبناءً على ما يتم تزويدها به من المصادر. وقد تعود هذه البيانات بشكل وهمي، كطلب تاريخ الميلاد فيزودك بتاريخ ميلاد محدد، لكنه فالواقع غير صحيح.
أما بخصوص طريقة حماية البيانات، فتتم عن طريق تشفير هذه البيانات المرسلة وفق رقابة صارمة ومشددة، ولن يتم الوصول لها إلا من قبل مجموعة من الموظفين بضمنهم:
- الموظفين العاملين على أداة GitHub copilot أو موظفين معينين على منصة GitHub.
- الموظفين الذي يعملون لدى OpenAI وعملهم يختص بتطوير أداة Copilot.
- موظفي Microsoft الذي يختصون بالمساعدة والعمل على أداة copilot.
هل يمكنني التحكم في بياناتي التي توجد على GitHub copilot؟
نعم، وذلك لأن هذه الأداة ستوفر لك خيارات متعددة لمعرفة كيفية استخدام هذه البيانات التي يتم جمعها مثل، بيانات المستخدم، والأسماء مستعارة، وبعض بيانات الاستخدام التي تكون مُلزمة الحفظ لدى أداة Copilot، ولكن لن تتم مشاركتها إلا مع Microsoft و OpenAI. كما يمكنك معرفة المعلومات الإضافية التي تم جمعها وتمت معالجتها بواسطة هذه الأداة.
يمكنك أيضاً حذف هذه البيانات الموجودة لدى أداة Copilot والمرتبطة مع ملف GitHub الخاص بك من خلال مراسلة فريق الدعم.
الخاتمة
إن هذه الأداة ستعد المساعد الأمثل لكل مطور، إذ إنها ستسهل عمليات كتابة الأكواد بشكل سلس ومبسط وإضافة اقتراحات مميزة لتلائم المشروع الخاص بالمبرمج، وستعمل جنباً إلى جنب مع المبرمج لزيادة الإنتاجية، وتقليل المهام اليدوية التي تقف على عاتق المبرمج واستبدالها بالذكاء الاصطناعي، وتعد نقلة كبيرة ومتطورة لتحسين النظام البرمجي للجيل التالي.
وحسب ما تم تبليغ عنه على المنصة الرسمية للأداة فإن الاشتراك سيكون مقدراً بحوالي 10$ كل شهر مع 60 يوماً مجاناً أو 100$ للسنة، على الرغم من ذكرها بشكل متكرر عن نيتها بالقيام بتحسينات فرعية لهذه الأداة تضمنت هذه التحسينات تغيير بعض الأساليب المتبعة لتلائم المبرمجين الذين يعانون من إعاقة، وأكدت المنصة عن نيتها لأن تكون هذه الأداة المساعد الكامل لكل المبرمجين وأن تتوفر بنطاق واسع.
قد ذكرت بالتفصيل كل ما ذكر في الموقع الرسمي لمنصة GitHub بخصوص أداة Copilot التي انتشرت أخبارها في الآونة الأخيرة.