تقنية

StarCoder 2 عبارة عن ذكاء اصطناعي يعمل على إنشاء التعليمات البرمجية ويعمل على معظم وحدات معالجة الرسومات


يعتمد المطورون مولدات الأكواد التي تعمل بالذكاء الاصطناعي – خدمات مثل GitHub Copilot وAmazon CodeWhisperer، إلى جانب نماذج الوصول المفتوح مثل Meta’s CodeLlama – بمعدل مذهل. لكن الأدوات بعيدة عن المثالية. الكثير منها ليس مجانيًا. والبعض الآخر كذلك، ولكن فقط بموجب تراخيص تمنع استخدامها في السياقات التجارية المشتركة.

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

StarCoder 2 ليس نموذجًا واحدًا لتوليد التعليمات البرمجية، بل هو عائلة. تم إصداره اليوم، ويأتي في ثلاثة أنواع، يمكن تشغيل أول اثنين منها على معظم وحدات معالجة الرسومات الاستهلاكية الحديثة:

  • نموذج مكون من 3 مليارات معلمة (3B) تم تدريبه بواسطة ServiceNow
  • نموذج مكون من 7 مليارات معلمة (7B) تم تدريبه بواسطة Hugging Face
  • نموذج ذو 15 مليار معلمة (15B) تم تدريبه بواسطة Nvidia، أحدث الداعمين لمشروع StarCoder.

(لاحظ أن “المعلمات” هي أجزاء النموذج المستفادة من بيانات التدريب وتحدد بشكل أساسي مهارة النموذج في حل مشكلة ما، وفي هذه الحالة توليد التعليمات البرمجية.)

مثل معظم مولدات الأكواد الأخرى، يمكن لـ StarCoder 2 اقتراح طرق لإكمال الأسطر غير المكتملة من الأكواد بالإضافة إلى تلخيص واسترجاع مقتطفات من الأكواد عندما يُطلب منك ذلك باللغة الطبيعية. تم تدريب StarCoder 2 باستخدام بيانات أكثر بأربعة أضعاف من StarCoder الأصلي، وهو يقدم ما تصفه Hugging Face وServiceNow وNvidia بأنه أداء محسّن “بشكل كبير” وبتكاليف تشغيل أقل.

يمكن ضبط StarCoder 2 “في غضون ساعات قليلة” باستخدام وحدة معالجة الرسومات مثل Nvidia A100 على بيانات الطرف الأول أو الطرف الثالث لإنشاء تطبيقات مثل برامج الدردشة الآلية ومساعدي الترميز الشخصي. ولأنه تم تدريبه على مجموعة بيانات أكبر وأكثر تنوعًا من StarCoder الأصلي (حوالي 619 لغة برمجة)، يمكن لـ StarCoder 2 تقديم تنبؤات أكثر دقة ووعيًا بالسياق – على الأقل من الناحية النظرية.

قال Harm de Vries، رئيس فريق تطوير StarCoder 2 في ServiceNow، لـ TechCrunch في مقابلة: “تم إنشاء StarCoder 2 خصيصًا للمطورين الذين يحتاجون إلى إنشاء التطبيقات بسرعة”. “مع StarCoder2، يمكن للمطورين استخدام قدراته لجعل البرمجة أكثر كفاءة دون التضحية بالسرعة أو الجودة.”

الآن، أجرؤ على القول إنه ليس كل المطورين يتفقون مع De Vries بشأن نقاط السرعة والجودة. يَعِد مُنشئو الأكواد بتبسيط بعض مهام البرمجة، ولكن بتكلفة.

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

قد يكون ترخيص StarCoder 2 بمثابة عائق بالنسبة للبعض.

تم ترخيص StarCoder 2 بموجب Hugging Face’s RAIL-M، والذي يهدف إلى تعزيز الاستخدام المسؤول من خلال فرض قيود “اللمسة الخفيفة” على كل من حاملي تراخيص النماذج والمستخدمين النهائيين. على الرغم من أنها أقل تقييدًا من العديد من التراخيص الأخرى، إلا أن RAIL-M ليس “مفتوحًا” حقًا بمعنى أنه لا يسمح للمطورين باستخدام StarCoder 2 من أجل كل تطبيق يمكن تصوره (تطبيقات تقديم النصائح الطبية محظورة تمامًا، على سبيل المثال). يقول بعض المعلقين إن متطلبات RAIL-M قد تكون غامضة للغاية بحيث لا يمكن الالتزام بها على أي حال – وأن RAIL-M قد تتعارض مع اللوائح المتعلقة بالذكاء الاصطناعي مثل قانون الاتحاد الأوروبي للذكاء الاصطناعي.

إذا وضعنا كل هذا جانبًا للحظة، هل يتفوق StarCoder 2 حقًا على مولدات الأكواد الأخرى المتوفرة، مجانًا أم مدفوعة الأجر؟

اعتمادًا على المعيار، يبدو أنه أكثر كفاءة من أحد إصدارات CodeLlama، CodeLlama 33B. يقول Hugging Face أن StarCoder 2 15B يطابق CodeLlama 33B في مجموعة فرعية من مهام إكمال التعليمات البرمجية بسرعة مضاعفة. ليس من الواضح ما هي المهام؛ لم يتم تحديد معانقة الوجه.

تتمتع StarCoder 2، باعتبارها مجموعة مفتوحة المصدر من النماذج، أيضًا بميزة القدرة على النشر محليًا و”تعلم” الكود المصدري للمطور أو قاعدة التعليمات البرمجية – وهو احتمال جذاب للمطورين والشركات التي تشعر بالقلق من تعريض التعليمات البرمجية لذكاء اصطناعي مستضاف على السحابة. في استطلاع عام 2023 من Portal26 وCensusWide، قالت 85% من الشركات إنها كانت حذرة من اعتماد GenAI مثل مولدات الأكواد البرمجية بسبب مخاطر الخصوصية والأمان – مثل مشاركة الموظفين للمعلومات الحساسة أو تدريب البائعين على البيانات الخاصة.

كما تؤكد شركات Hugging Face وServiceNow وNvidia على أن StarCoder 2 أكثر أخلاقية – وأقل خطورة من الناحية القانونية – من منافسيها.

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

تعهد عدد قليل من البائعين، بما في ذلك GitHub وMicrosoft (الشركة الأم لـ GitHub) وAmazon، بتوفير تغطية قانونية في المواقف التي يُتهم فيها عميل منشئ التعليمات البرمجية بانتهاك حقوق الطبع والنشر. لكن التغطية تختلف من بائع إلى بائع وتقتصر عمومًا على عملاء الشركات.

على عكس مولدي الأكواد الذين تم تدريبهم باستخدام أكواد محمية بحقوق الطبع والنشر (GitHub Copilot، من بين آخرين)، تم تدريب StarCoder 2 فقط على البيانات بموجب ترخيص من Software Heritage، وهي منظمة غير ربحية تقدم خدمات أرشيفية للكود. قبل تدريب StarCoder 2، أعطى BigCode، الفريق متعدد المنظمات الذي يقف خلف الكثير من خارطة طريق StarCoder 2، لأصحاب الأكواد فرصة إلغاء الاشتراك في مجموعة التدريب إذا أرادوا ذلك.

كما هو الحال مع StarCoder الأصلي، فإن بيانات تدريب StarCoder 2 متاحة للمطورين للتفرع أو إعادة الإنتاج أو التدقيق كما يحلو لهم.

أشار لياندرو فون ويرا، مهندس التعلم الآلي في Hugging Face والقائد المشارك لـ BigCode، إلى أنه على الرغم من انتشار مولدات الأكواد المفتوحة مؤخرًا، إلا أن القليل منها كان مصحوبًا بمعلومات حول البيانات التي تم استخدامها في تدريبهم، وفي الواقع، كيف تم تدريبهم.

“من وجهة نظر علمية، المشكلة هي أن التدريب غير قابل للتكرار، ولكن أيضًا كمنتج بيانات (أي شخص يقوم بتحميل الكود الخاص به إلى GitHub)، فإنك لا تعرف ما إذا تم استخدام بياناتك وكيف تم ذلك”، قال فون ويرا في مقال له. مقابلة. “يعالج StarCoder 2 هذه المشكلة من خلال الشفافية الكاملة عبر مسار التدريب بأكمله بدءًا من استخراج بيانات التدريب المسبق وحتى التدريب نفسه.”

قال ذلك StarCoder 2 ليس مثاليًا. مثل مولدات التعليمات البرمجية الأخرى، فهي عرضة للتحيز. يشير De Vries إلى أنه يمكنه إنشاء تعليمات برمجية تحتوي على عناصر تعكس الصور النمطية حول الجنس والعرق. ولأن StarCoder 2 تم تدريبه على التعليقات باللغة الإنجليزية في الغالب، ورموز Python وJava، فإنه كان أداؤه أضعف في اللغات الأخرى غير الإنجليزية والأكواد “ذات الموارد المنخفضة” مثل Fortran وHaksell.

ومع ذلك، يؤكد فون ويرا أنها خطوة في الاتجاه الصحيح.

وقال: “نحن نؤمن بشدة أن بناء الثقة والمساءلة باستخدام نماذج الذكاء الاصطناعي يتطلب الشفافية وإمكانية التدقيق في خط النموذج الكامل بما في ذلك بيانات التدريب ووصفات التدريب”. “ستاركودر 2 [showcases] كيف يمكن للنماذج المفتوحة بالكامل أن تقدم أداءً تنافسيًا.”

ربما تتساءل – كما كان هذا الكاتب – ما هو الحافز الذي يجب أن تدفعه شركات Hugging Face وServiceNow وNvidia للاستثمار في مشروع مثل StarCoder 2. فهي شركات تجارية، ونماذج التدريب ليست رخيصة.

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

لقد استخدمت ServiceNow بالفعل StarCoder لإنشاء Now LLM، وهو منتج لإنشاء التعليمات البرمجية المضبوطة بدقة لأنماط سير عمل ServiceNow وحالات الاستخدام والعمليات. تقدم Hugging Face، التي تقدم خططًا استشارية لتنفيذ النماذج، إصدارات مستضافة من نماذج StarCoder 2 على منصتها. وكذلك الأمر بالنسبة لشركة Nvidia، التي تجعل StarCoder 2 متاحًا من خلال واجهة برمجة التطبيقات (API) والواجهة الأمامية للويب.

بالنسبة للمطورين المهتمين صراحةً بالتجربة المجانية دون اتصال بالإنترنت، يمكن تنزيل StarCoder 2 – النماذج والكود المصدري والمزيد – من صفحة GitHub الخاصة بالمشروع.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى