بطاقة نموذج CodeGemma

صفحة النموذج: CodeGemma

المراجع والمستندات الفنية:

بنود الاستخدام: البنود

المؤلفون: Google

معلومات الطراز

ملخّص النموذج

الوصف

CodeGemma هي مجموعة من نماذج الرموز البرمجية المفتوحة البسيطة التي تم إنشاؤها فوق Gemma. نماذج CodeGemma عبارة عن نماذج تحويل النص إلى نص أو تحويل النص إلى ترميز لفك الترميز فقط، وتتوفر كإصدار مدرَّب مسبقًا لـ 7 مليار بايت متخصص في إكمال التعليمات البرمجية ومهام إنشاء الرموز و7 مليار معلمة مضبوطة بتعليمات من أجل الدردشة عبر التعليمات البرمجية والتعليمات ومتغير 2 مليار مَعلمة مُدرَّب مسبقًا لإكمال الرموز بسرعة.

المُدخلات والمخرجات

  • الإدخال: بالنسبة إلى خيارات النموذج المدرّبة مسبقًا: بادئة الرمز واللاحقة الاختيارية لسيناريوهات إكمال الرمز وإنشائه أو نص/طلب اللغة الطبيعية. بالنسبة إلى صيغة النموذج المضبوط على التعليمات: نص أو طلب بلغة طبيعية.

  • الإخراج: بالنسبة إلى متغيرات النماذج المدرّبة مسبقًا: إكمال رمز ملء في المنتصف، والرمز البرمجي واللغة الطبيعية. بالنسبة إلى صيغة النموذج المضبوط على التعليمات: الرمز واللغة الطبيعية

معلومات الكتاب

@article{codegemma_2024,
    title={CodeGemma: Open Code Models Based on Gemma},
    url={https://goo.gle/codegemma},
    author={ {CodeGemma Team} and Hartman, Ale Jakse and Hu, Andrea and Choquette-Choo, Christopher A. and Zhao, Heri and Fine, Jane and Hui,
    Jeffrey and Shen, Jingyue and Kelley, Joe and Howland, Joshua and Bansal, Kshitij and Vilnis, Luke and Wirth, Mateo and Nguyen, Nam, and Michel, Paul and Choy, Peter and Joshi, Pratik and Kumar, Ravin and Hashmi, Sarmad and Agrawal, Shubham and Zuo, Siqi and Warkentin, Tris and Gong, Zhitao et al.},
    year={2024}
}

بيانات النموذج

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

باستخدام Gemma كنموذج أساسي، يتم تدريب صيغ CodeGemma 2B و7B المدرّبة مسبقًا بشكل أكبر على 500 إلى 1000 مليار رمز مميّز لبيانات اللغة الإنجليزية في المقام الأول من مجموعات بيانات رياضية مفتوحة المصدر ورموز برمجية يتم إنشاؤها اصطناعيًا.

معالجة بيانات التدريب

تم تطبيق تقنيات المعالجة المسبقة للبيانات التالية لتدريب CodeGemma:

  • FIM - نماذج CodeGemma المدربة مسبقًا تركز على مهام التعبئة في المنتصف (FIM). ويتم تدريب النماذج على العمل مع وضعَي كلّ من PSM وSPM. تتراوح إعدادات FIM لدينا بين 80% إلى 90% من معدل FIM مع 50-50 PSM/SPM.
  • تقنيات التعبئة القاموسية المستندة إلى الرسم البياني والاعتمادية المستندة إلى اختبار الوحدات: لتحسين توافق النموذج مع التطبيقات الواقعية، أنشأنا أمثلة للتدريب على مستوى المشروع/المستودع لترتيب ملفات المصدر الأكثر صلة داخل كل مستودع. على وجه التحديد، استخدمنا أسلوبين استدلالي: الحزمة المستندة إلى الرسم البياني للتبعية والحزمة المعجمية القائمة على اختبار الوحدة.
  • لقد طورنا أسلوبًا جديدًا لتقسيم المستندات إلى بادئة ووسط ولاحقة لجعل اللاحقة تبدأ بنقطة طبيعية أكثر من حيث البنية بدلاً من توزيع عشوائي بحت.
  • الأمان: على غرار Gemma، نشرنا فلاتر صارمة بشأن السلامة، بما في ذلك فلترة البيانات الشخصية وفلترة مواد الاعتداء الجنسي على الأطفال وغيرها من الفلاتر استنادًا إلى جودة المحتوى وأمانه بما يتوافق مع سياساتنا.

معلومات عن عملية التنفيذ

الأجهزة وأطر العمل المستخدمة أثناء التدريب

على غرار Gemma، تم تدريب CodeGemma على أحدث جيل من الأجهزة (TPU) من الأجهزة (TPUv5e)، باستخدام JAX ومسارات تعلُّم الآلة.

معلومات التقييم

النتائج المعيارية

نهج التقييم

نتائج مقياس أداء الترميز

مقياس الأداء 2B 2B (1.1) 7 مليار 7 مليار 7B-IT (1.1)
HumanEval 31.1 37.8 44.5 56.1 60.4
شهادة MBPP 43.6 49.2 56.2 54.2 55.6
خط HumanEval أحادي الخط 78.4 79.3 76.1 68.3 77.4
HumanEval متعدد الخطوط 51.4 51.0 58.4 20.1 23.7
BC HE C++ 24.2 19.9 32.9 42.2 46.6
BC HE C# 10.6 26.1 22.4 26.7 54.7
BC HE Go 20.5 18 21.7 28.6 34.2
لغة BC HE Java 29.2 29.8 41.0 48.4 50.3
JavaScript BC HE 21.7 28.0 39.8 46 48.4
BC HE Kotlin 28.0 32.3 39.8 51.6 47.8
BC HE Python 21.7 36.6 42.2 48.4 54
BC HE Rust 26.7 24.2 34.1 36 37.3
BC MBPP C++ 47.1 38.9 53.8 56.7 63.5
BC MBPP C# 28.7 45.3 32.5 41.2 62.0
BC MBPP Go 45.6 38.9 43.3 46.2 53.2
لغة Java لـ BC MBPP 41.8 49.7 50.3 57.3 62.9
JavaScript MBPP في BC 45.3 45 58.2 61.4 61.4
BC MBPP Kotlin 46.8 49.7 54.7 59.9 62.6
لغة BC MBPP Python 38.6 52.9 59.1 62.0 60.2
صدأ BC MBPP 45.3 47.4 52.9 53.5 52.3

مقاييس أداء اللغة الطبيعية (في نماذج 7B)

رسم بياني شريطي يقارن بين تكنولوجيا المعلومات لـ Gemma وCodeGemma PT وCodeGemma لتكنولوجيا المعلومات عبر مقاييس لغوية مختلفة. جميع النماذج الثلاثة متشابهة بشكل تقريبي، مع احتفاظ CodeGemma بفهم قوي للغة الطبيعية.

الأخلاقيات والسلامة

الأخلاقيات وتقييمات السلامة

أسلوب التقييمات

تشمل طرق التقييم التي نتّبعها التقييمات المنظَّمة والاختبار الداخلي من فريق أحمر اللون لسياسات المحتوى ذات الصلة. تم إجراء فريق أحمر من قبل عدد من الفرق المختلفة، لكل منها أهداف مختلفة ومقاييس تقييم أشخاص. وتم تقييم هذه النماذج وفقًا لعدد من الفئات المختلفة ذات الصلة بالأخلاقيات والسلامة، بما في ذلك:

  • تقييم بشري للمطالبات بالطلبات التي تتناول سلامة المحتوى والضرر التمثيلي راجع بطاقة نموذج جيما للحصول على مزيد من التفاصيل عن نهج التقييم.

  • الاختبارات المحددة لقدرات الهجمات الإلكترونية، مع التركيز على اختبار قدرات الاختراق المستقل وضمان الحد من الأضرار المحتملة.

نتائج التقييم

إن نتائج تقييمات الأخلاقيات والسلامة ضمن الحدود المقبولة لاستيفاء السياسات الداخلية والمرتبطة بفئات مثل سلامة الأطفال وسلامة المحتوى والضرر التمثيلي والتذكّر والأضرار الواسعة النطاق. راجع بطاقة نموذج Gemma للحصول على مزيد من التفاصيل.

استخدام النموذج والقيود المفروضة عليه

القيود المعروفة

تُفرض قيود على النماذج اللغوية الكبيرة (LLM) استنادًا إلى بيانات التدريب والقيود الكامنة فيها. راجِع بطاقة نموذج Gemma للاطّلاع على مزيد من التفاصيل حول حدود النماذج اللغوية الكبيرة.

الاعتبارات والمخاطر الأخلاقية

إنّ تطوير النماذج اللغوية الكبيرة (LLM) يثير العديد من المخاوف الأخلاقية. لقد درسنا بعناية جوانب متعددة في تطوير هذه النماذج.

يُرجى الرجوع إلى نفس المناقشة في بطاقة نموذج جيما للاطّلاع على تفاصيل النموذج.

الغرض من الاستخدام

طلب الانضمام

تحتوي نماذج Code Gemma على مجموعة واسعة من التطبيقات، والتي تختلف بين نماذج تكنولوجيا المعلومات وPT. القائمة التالية من الاستخدامات المحتمَلة ليست شاملة. إنّ الغرض من هذه القائمة هو توفير معلومات سياقية حول حالات الاستخدام المحتملة التي اعتبرها منشئو النموذج جزءًا من تدريب النموذج وتطويره.

  • إكمال الرمز: يمكن استخدام نماذج PT لإكمال التعليمات البرمجية باستخدام إضافة IDE.
  • إنشاء التعليمات البرمجية: يمكن استخدام نموذج تكنولوجيا المعلومات لإنشاء رمز برمجي باستخدام إضافة IDE أو بدونه
  • محادثة التعليمات البرمجية: يمكن لنموذج تكنولوجيا المعلومات أن يعزز واجهات المحادثات التي تناقش الرموز
  • تعليم الترميز: يدعم نموذج تكنولوجيا المعلومات تجارب تعلم الرموز التفاعلية أو يساعد في تصحيح البنية أو يوفر ممارسة حول الترميز.

المزايا

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

باستخدام مقاييس تقييم معيار الترميز الموضّحة في هذا المستند، أثبتت هذه النماذج أنّها توفّر أداءً أفضل لبدائل النماذج المفتوحة الأخرى ذات الحجم المشابه.