تشفير

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

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

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

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

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

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

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

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

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

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

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

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

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

ردًا على الانتقادات المذكورة أعلاه، قال متحدث باسم Hugging Face في بيان عبر البريد الإلكتروني: “لقد تم تصميم الترخيص بعناية لتحقيق أقصى قدر من الامتثال للقوانين واللوائح المعمول بها”.

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

وفقًا للمعايير، يبدو أنه أكثر كفاءة من أحد إصدارات Code Llama، Code Llama 33B. يقول Hugging Face إن StarCoder 2 15B يطابق Code Llama 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 Code، فإن أداءه أقل في اللغات غير الإنجليزية والأكواد “منخفضة الموارد” مثل Fortran وHaskell.

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

وقال: “نحن نؤمن بشدة أن بناء الثقة والمساءلة باستخدام نماذج الذكاء الاصطناعي يتطلب الشفافية وقابلية التدقيق في مسار النموذج بأكمله، بما في ذلك البيانات ووصفات التدريب”. “يُظهر StarCoder 2 كيف يمكن للنماذج المفتوحة بالكامل تقديم أداء تنافسي.”

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

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

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

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


Source link

مقالات ذات صلة

اترك تعليقاً

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

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