برمجية اقتراحات الكود Github Copilot وتداعيتها على البرمجيات الحرة

السلام عليكم ورحمة الله وبركاتة


unsplash

في شهر يونيو 2021, أعلنت منصة Github, أكبر منصة أستضافة أكواد برمجية في العالم, وهي تابعة ل Microsoft عن اطلاق نسخه تجريبية من مساعدها البرمجي Github Copilot.

برمجية Copilot هي عبارة عن ذكاء اصطناعي يقترح عليك أكواد برمجية بناءا على الكود البرمجي المكتوب سابقا, ويمكنه اقتراح كود بسيط او حتى دوال(functions) كاملة.

تم تطويرة بالتعاون مع OpenAI ويستخدم نموذج OpenAI Codex للذكاء الاصطناعي, وهو يستطيع فهم الكود البرمجي بشكل اكبر, وهو افضل بشكل كبير في كتابة الكود البرمجية من نموذج GPT-3

أستخدام كامل المستودعات العامة

أكبر الخلاف على Copilot ليس حول قدراته, او النموذج المغلق الذي تم استخدامه لبناءة(نعم اسم المنظمة OpenAI لكن كل شيء مغلق), المشكلة الاكبر في تراخيص المستودعات العامة.

البرمجيات المفتوحة

هذه برمجيات تستخدم تراخيص مفتوحة المصدر, والمقصود انه برمجيات تكشف المصدر للعامة ويمكنك تعديلها واعادة توزيعها.
وأشهرها هي تراخيص MIT, BSD, Apache وغيرها من التراخيص.
هذه التراخيص لا تضع حدود على الاستخدام معظم الوقت, يعني بإمكانك استخدام الكود في برنامَج مفتوح تحت ترخيص أخر, او تحت برنامَج مغلق. معظم الوقت فقط تطلب وضع توضيح ملكية الكود لأصحاب المستودع, بالإضافة لحمايات قانونية لكتاب الكود.

البرمجيات الحرة

البرمجيات الحرة يمكن القول عنها انها مفتوحة ايضا, فمصدرها مفتوح و يمكن لاي احد تعديله وأعاده توزيعة.
الفرق ان البرمجيات الحرة تكون لها شروط اقوى, أهم شرط هو ابقاء الكود مفتوح المصدر.
واكبر ترخيص للبرمجيات الحرة هو الترخيص الشهير GPL المستخدم من قبل نواة لينكس. أذ يشترط الترخيص نشر الكود المعدل تحت نفس الترخيص في حالة تم توزيعة.

وهناك عدة نسخ معدلة من الترخيص مثل AGPL, وهو أكثر ترخيص صرامة يعدّ مفتوح المصدر حسب علمي, وهو يعتبر الاستخدام عبر الأنترنت توزيع. واحد اشهر البرامج التي تستخدمه هي Nextcloud.

هناك أيضا نسخ مخففة منة, مثل LGPL وهو يسمح للكود أن يتم أستخدامه داخل برمجية اخرى, دون تحويل كامل ترخيص البرمجية الى GPL, مع ابقاء الكود الحر مكشوف.
ومثال اخر على نسخ معدلة منه هو ترخيص MPL من Mozilla.

هذا شرح مختصر جدا جدا جدا, يمكن فتح موضوع مُفصّل حول هذا النقاش والفرق بين الفكرتين والتراخيص و التاريخ الحافل بينهم. لكنني حاولت اشرح الفرق بسهولة لأوصل الفكرة.

مشكلة التراخيص في Copilot

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

لذلك قد يقترح عليك كود تحت ترخيص حر, وانت مشروعك تحت ترخيص مفتوح أو حتى مغلق.
وهذا لا يصح قانونيا لأنة يكسر شروط الترخيص, وقد يمكن القول عنه سرقة للكود.

الأوراق البحثية التي تم تمويلها من منظمة البرمجيات الحرة

بعد أعلان Github عن برمجية الذكاء الاصطناعي Copilot, قامت منظمة البرميجات الحرة (FSF) بطلب تقديم الباحثين باوراق بحثية عن حقوق الملكية في البرمجيات الحرة, و كيفية تأثير Copilot وبرمجيات اقتراح الاكواد الذكية عليها لدعمها ماليا.

واعلنت ال FSF عن الأوراق التي تم تمويلها وهي باللغة الانجليزية.

Copilot, copying, commons, community, culture

Copyright implications of the use of code repositories to train a machine learning model

  • John A. Rothchild, Professor of Law, Wayne State University and Daniel H. Rothchild, PhD candidate, University of California, Berkeley
  • PDF
  • HTML
  • CC BY 4.0

If software is my copilot, who programmed my software?

Interpreting docstrings without common sense

  • Darren Abramson, Associate Professor, Dalhousie University and Ali Emami, assistant professor, Brock University
  • PDF
  • HTML
  • CC BY-ND 4.0

On the nature of AI code copilots

الخطوات القادمة من منظمة البرمجيات الحرة FSF

حاليا لا يوجد اي خطوات واضحه غير النقاش حول هذه الاوراق.
عدد من الكتاب سيحضرون نقاشات حول محتوى هذه الاوراق.

مواعيد النقاشات المباشرة

جميعها على بروتوكول IRC.

مارأيكم ؟ هل يعتبر Copilot محاولة لسرقة الكود البرمجي للبرمجيات الحرة؟ ام انها تقنية جديدة لتحسن وتسرع انتاجية المطور ؟

المصادر

https://www.fsf.org/news/publication-of-the-fsf-funded-white-papers-on-questions-around-copilot

3 إعجابات

نعم تقنية جديدة تحسن وتسرع انتاجية المطور, بنفس الوقت يجب على جميع البرمجيات المكتوبة بـCopilot ان ترخص برخصة حرة, حتى Copilot نفسه. على اي حال قد لا يحدث هذا “قانونيًا”. ولكن واضح هذا خرق لرخصة GPL

إعجاب واحد (1)

لا يمكنك كتابة برنامج كامل بستخدام Copilot فقط.
لكن الكود الذي يقترحه قد يكون تحت ترخيص GPL, واذا كان اقتباس كبير قد تطبق عليه الشروط.

الأوراق العلمية تناقش هذا الموضوع, والصراحة يجب علي تفرغة وقت لقارئتها, لأنها مهمه.

الان Copilot نفسة صعب ان يكون تحت رخصة حرة.
هو يستخدم نمذوج ذكاء اصطناعي مغلق. ولا اتوقع برنامج التعلم يدخل تحت حدود الGPL.
المشكلة في الكود المصدر من Copilot.

ننتظر الأمور حتى تتضح أكثر.

من الافضل اضافة ميزة تحدد فيها الرخصة الخاصة بك، ويتم جلب الاكواد البرمجية تحت هذه الرخصة واللذي يوافقها، وايضا يتم وضع الحقوق الخاصة بالبرمجية التي تم اخذ الكود منها في الملف الذي تم استخدامها فيه

اتوقع فكرتهم كانت انه مجرد تعلم فقط.

أقرب حل = إنشاء رخصة GPLv4 لإغلاق هذي الثغرة :slight_smile:

اذا لم يجدو حلا

إعجاب واحد (1)

اقوى سوال من the software conservancy وطبعا لا جواب.

We further asked if there are no licensing concerns on either side, why did Microsoft not also train the system on their large proprietary codebases such as Office? They had no immediate answer. Microsoft and GitHub promised to get back to us, but have not