مقدمة
الذكاء الاصطناعي التوليدي على وشك أتمتة توليد الكود بالكامل، لكنه لم يصل بعد إلى هذا الإنجاز. ومع ذلك، فإن أفضل أداة متاحة الآن هي Code Llama! تم إطلاقها في عام 2023 من قبل Meta، وهي أحدث أداة لتوليد الكود، مصممة لمساعدة المبرمجين في مهام برمجية متنوعة. تركز Code Llama على تحسين سير عمل المطورين، وتوليد وإكمال الكود، والمساعدة في الاختبار. دعنا نستكشف Code Llama كأداة مستقلة ثم نقارنها بأدوات الذكاء الاصطناعي التوليدي الأخرى المتخصصة في البرمجة.
كيف تعمل Code Llama
Code Llama هي نسخة متخصصة في الكود من Llama 2، تم تطويرها عن طريق تدريب Llama 2 بشكل إضافي على مجموعات بيانات خاصة بالكود وأخذ عينات أكثر من هذه البيانات لفترات أطول. هذه العملية منحت Code Llama قدرات برمجية محسّنة، مبنية على أساس Llama 2. يمكنها توليد الكود وأوصاف الكود باللغة الطبيعية من كل من الكود والطلبات النصية (مثل: “اكتب لي دالة تنتج تسلسل فيبوناتشي”). بالإضافة إلى ذلك، يمكن استخدامها لإكمال الكود وتصحيح الأخطاء. تدعم Code Llama العديد من لغات البرمجة الشائعة، بما في ذلك Python و C++ و Java و PHP و TypeScript (JavaScript) و C# و Bash.
المصدر: Meta AI
تطلق Meta أربعة أحجام من Code Llama، وتتميز بنماذج تحتوي على 7 مليار و 13 مليار و 34 مليار و 70 مليار معلمة على التوالي. يتم تدريب كل من هذه النماذج، باستثناء إصدار 70 مليار، على 500 مليار رمز من الكود والبيانات المتعلقة بالكود، بينما يتم تدريب نموذج 70 مليار على 1 تريليون رمز. تتميز النماذج الأساسية والتعليمية بحجم 7 مليار و 13 مليار أيضًا بقدرة الملء في المنتصف، مما يسمح لها بإدراج الكود في الكود الحالي ودعم مهام مثل إكمال الكود مباشرة.
تلبي هذه النماذج متطلبات الخدمة وزمن الانتقال المختلفة. على سبيل المثال، يمكن تقديم نموذج 7 مليار على وحدة معالجة رسوميات واحدة. بينما تقدم نماذج 34 مليار و 70 مليار أفضل النتائج وتوفر مساعدة برمجية فائقة، فإن النماذج الأصغر 7 مليار و 13 مليار أسرع وأكثر ملاءمة للمهام التي تتطلب زمن انتقال منخفض، مثل إكمال الكود في الوقت الفعلي.
قدرات Code Llama
توفر نماذج Code Llama توليدات مستقرة يصل حجمها إلى 100,000 رمز من السياق. يتم تدريب جميع النماذج على متواليات من 16,000 رمز وتظهر تحسينات مع مدخلات تصل إلى 100,000 رمز.
هذه القدرة على التعامل مع متواليات إدخال أطول لا تسهل فقط توليد برامج أطول، بل تفتح أيضًا حالات استخدام جديدة لنموذج لغة كود. على سبيل المثال، يمكن للمستخدمين توفير سياق أكبر للنموذج من قاعدة الكود الخاصة بهم، مما يجعل الكود المولد أكثر صلة. بالإضافة إلى ذلك، فهي مفيدة في سيناريوهات تصحيح الأخطاء في قواعد الكود الأكبر، حيث قد يكون من الصعب على المطورين تتبع جميع الأكواد المتعلقة بمشكلة معينة. من خلال السماح للمطورين بإدخال طول كامل للكود، يمكن للنموذج المساعدة في تصحيح أقسام كود واسعة النطاق.
بالإضافة إلى ذلك، قامت Meta بضبط إصدارين إضافيين من Code Llama: Code Llama — Python و Code Llama — Instruct.
Code Llama — Python هو إصدار متخصص في لغة معينة، تم ضبطه بشكل إضافي على 100 مليار رمز من كود Python. نظرًا لأن Python هي اللغة الأكثر اختبارًا لتوليد الكود وتلعب دورًا مهمًا في مجتمع الذكاء الاصطناعي إلى جانب PyTorch، فإن هذا النموذج المتخصص يقدم فائدة إضافية.
Code Llama — Instruct هو إصدار مضبوط ومحاذى للتعليمات. يستمر ضبط التعليمات في عملية التدريب بهدف مختلف، حيث يتم توفير مدخلات “تعليمات باللغة الطبيعية” للنموذج والإخراج المتوقع. يعزز هذا قدرته على فهم التوقعات البشرية من الطلبات. يُوصى باستخدام إصدارات Code Llama — Instruct لتوليد الكود، حيث يتم ضبطها لإنتاج إجابات مفيدة وآمنة باللغة الطبيعية.
لا يُوصى باستخدام Code Llama أو Code Llama — Python للمهام العامة باللغة الطبيعية، لأن هذه النماذج ليست مصممة لاتباع التعليمات باللغة الطبيعية. إذا كنت ترغب في إكمال مهام معالجة اللغة الطبيعية، يمكنك اختيار نماذج Llama2 أو Llama3، حيث يمكنك الوصول إليها عن طريق التكامل مع واجهة برمجة تطبيقات LLM من novita.ai:

مع أسعار منخفضة ونماذج قابلة للتوسع، يوفر LLM Inference API من Novita AI استقرارًا لا يُصدق وزمن انتقال منخفض جدًا في أقل من ثانيتين. يمكن تحسين أداء LLM بشكل كبير باستخدام LLM Inference API من Novita AI.
Code Llama متخصصة في المهام الخاصة بالكود وليست مناسبة كنموذج أساسي للتطبيقات الأخرى.
يجب على مستخدمي نماذج Code Llama الامتثال لترخيص Meta وسياسة الاستخدام المقبولة.
تقييم أداء Code Llama
لتقييم أداء Code Llama مقارنة بالحلول الحالية، استخدمت Meta معيارين شائعين للبرمجة: HumanEval و Mostly Basic Python Programming (MBPP). يقيم HumanEval قدرة النموذج على إكمال الكود بناءً على سلاسل الوثائق، بينما يختبر MBPP قدرة النموذج على كتابة الكود بناءً على وصف.
أظهرت الاختبارات المعيارية أن Code Llama تفوقت على نماذج اللغة المفتوحة المصدر والمتخصصة في الكود وتجاوزت أداء Llama 2. على سبيل المثال، حققت Code Llama 34B درجة 53.7% على HumanEval و 56.2% على MBPP، وهي الأعلى بين الحلول المفتوحة المتطورة وقابلة للمقارنة مع ChatGPT.
مثل أي تقنية متطورة، تأتي Code Llama مع بعض المخاطر. بناء نماذج الذكاء الاصطناعي بمسؤولية أمر بالغ الأهمية، لذلك تم تنفيذ العديد من إجراءات السلامة قبل إصدار Code Llama. كجزء من جهود الفريق الأحمر، تم إجراء تقييم كمي لتقييم مخاطر توليد Code Llama لكود ضار. تم استخدام طلبات مصممة لطلب كود ضار بنية واضحة، وتمت مقارنة ردود Code Llama بردود ChatGPT (GPT-3.5 Turbo). أشارت النتائج إلى أن Code Llama قدمت ردودًا أكثر أمانًا.
كيفية استخدام Code Llama
لا يمكن الوصول إلى Code Llama مباشرة من خلال موقع ويب أو منصة. بدلاً من ذلك، فهي متاحة على GitHub ويمكن تنزيلها للاستخدام المحلي. فيما يلي بعض الطرق التي يمكن من خلالها الوصول إلى Code Llama:
-
تكامل الدردشة الآلية: قامت Perplexity-AI، وهي ذكاء اصطناعي نصي مشابه لـ ChatGPT، بدمج إصدار Code Llama ذي 34 مليار معلمة. يتيح ذلك للمستخدمين توليد الكود من خلال الطلبات النصية. تقدم Perplexity-AI إصدارات متعددة تركز على لغات برمجة محددة مثل Python و Java و C++ و JavaScript.
-
تكامل النماذج: توفر Hugging Face، وهي منصة مفتوحة المصدر، نماذج افتراضية يمكن استخدامها لتوليد الكود بسهولة.
-
بيئة التطوير المتكاملة (IDE): Ollama هي مكتبة Code Llama يمكن تنزيلها ودمجها مباشرة في IDEs. يتيح ذلك للمستخدمين استخدام نماذج اللغة الكبيرة محليًا.
في هذا البرنامج التعليمي، سنعرض قدرات Code Llama باستخدام Perplexity AI. سنبدأ بتعريف وإنشاء دوال الفرز. أولاً، سننشئ دالة فرز ثنائي، والتي تشبه فرز الإدراج ولكنها تستخدم البحث الثنائي لتحديد موقع العنصر. بعد ذلك، سنستفسر من Perplexity إذا كانت هناك خوارزميات أخرى مشابهة للفرز الثنائي. أخيرًا، سنطلب من Perplexity إنشاء فئة Sorting تحتوي على بعض هذه الدوال.
الطلب:
لدي فئة Python قد تستفيد من خوارزمية فرز ثنائي. هل يمكنك إنشاء فئة Python تأخذ قائمة من القيم، وترتبها باستخدام الفرز الثنائي، وتعيد القائمة المرتبة؟
الرد:

الطلب:
هل هناك خوارزمية أخرى مشابهة أو أفضل من الفرز الثنائي؟
الرد:

الطلب:
أود بالفعل الحصول على خيارات فرز لاحتياجاتي. هل يمكنك إنشاء فئة Sorting تحتوي على وظائف الفرز الثنائي والفرز السريع وفرز الدمج؟
الرد:



من يستفيد من Code Llama
يستخدم المبرمجون بالفعل نماذج اللغة الكبيرة للمساعدة في مهام متنوعة، بدءًا من كتابة برامج جديدة إلى تصحيح الأكواد الحالية. الهدف هو تحسين سير عمل المطورين، مما يسمح لهم بالتركيز على الجوانب الإنسانية الأكثر في عملهم بدلاً من المهام المتكررة.
في Meta، يعتقد أن نماذج الذكاء الاصطناعي، خاصة نماذج اللغة الكبيرة للبرمجة، تستفيد بشكل كبير من النهج المفتوح، مما يعزز الابتكار والسلامة. يمكن للنماذج المفتوحة والمتخصصة في الكود أن تدفع تطوير تقنيات جديدة تحسن حياة الناس. من خلال إصدار نماذج مثل Code Llama، يمكن للمجتمع بأكمله تقييم قدراتها، وتحديد المشكلات، ومعالجة الثغرات.
الاستخدام المسؤول لـ Code Llama
توفر ورقة بحثية من Meta معلومات مفصلة حول تطوير Code Llama، واختبارات المعايير التي أجريت، وقيود النموذج، والتحديات التي واجهتها، إلى جانب الإجراءات التخفيفية المتخذة والتحديات المستقبلية التي يجب معالجتها.
بالإضافة إلى ذلك، تم تحديث دليل الاستخدام المسؤول ليشمل إرشادات حول تطوير النماذج اللاحقة بمسؤولية، تغطي جوانب مثل:
- تعريف سياسات المحتوى والإجراءات التخفيفية
- إعداد البيانات
- ضبط النموذج
- تقييم وتحسين الأداء
- معالجة مخاطر المدخلات والمخرجات
- بناء آليات الشفافية والإبلاغ في تفاعلات المستخدم
يُنصح المطورون بتقييم نماذجهم باستخدام معايير تقييم خاصة بالكود وإجراء دراسات سلامة على حالات الاستخدام الخاصة بالكود، مثل توليد البرامج الضارة أو فيروسات الكمبيوتر أو الأكواد الضارة. يُوصى أيضًا باستخدام مجموعات بيانات السلامة للتقييمات التلقائية والبشرية، وإجراء تمارين الفريق الأحمر مع طلبات معادية.
مستقبل الذكاء الاصطناعي التوليدي للبرمجة
تم تصميم Code Llama لدعم مهندسي البرمجيات في جميع القطاعات، بما في ذلك البحث والصناعة والمشاريع مفتوحة المصدر والمنظمات غير الحكومية والشركات. ومع ذلك، لا تزال هناك العديد من حالات الاستخدام التي تتجاوز ما يمكن أن تدعمه نماذجنا الأساسية والتعليمية حاليًا.
نأمل أن تلهم Code Llama الآخرين لاستخدام Llama 2 لإنشاء أدوات جديدة ومبتكرة للبحث والمنتجات التجارية.
الخاتمة
Code Llama هي أداة فريدة مصممة للمساعدة في مشاريع البرمجة، مما يسمح للمطورين بتحويل تركيزهم من توليد الكود إلى أهداف المشروع. تدعم إكمال الكود، وكتابة تعليقات قابلة للقراءة البشرية، وتوليد الكود.
كأداة برمجة بالذكاء الاصطناعي، تبرز Code Llama بقدرتها على العمل دون اتصال بالإنترنت. يمكن استيرادها إلى IDE، مما يلغي الحاجة إلى اتصال بالإنترنت. تم تدريبها على 100 جيجابايت من البيانات، وهي تتألق في إكمال وتوليد الكود. هناك عدة إصدارات من Code Llama متاحة، بما في ذلك إصدارات ذات 7 مليار و 13 مليار و 34 مليار معلمة، بالإضافة إلى إصدارات متخصصة مثل -Python و -Instruct. اختر ما يناسب احتياجاتك، وحظًا سعيدًا في مساعيك البرمجية!
novita.ai، المنصة الشاملة للإبداع غير المحدود التي تمنحك الوصول إلى أكثر من 100 واجهة برمجة تطبيقات. من توليد الصور ومعالجة اللغة إلى تحسين الصوت ومعالجة الفيديو، بنظام الدفع حسب الاستخدام، تحررك من عناء صيانة وحدات معالجة الرسوميات أثناء بناء منتجاتك الخاصة. جربها مجانًا.
قراءة موصى بها
