CodeGemma मॉडल कार्ड

मॉडल पेज: CodeGemma

संसाधन और तकनीकी दस्तावेज़:

इस्तेमाल की शर्तें: शर्तें

लेखक: Google

मॉडल की जानकारी

मॉडल की खास जानकारी

ब्यौरा

CodeGemma लाइटवेट ओपन कोड मॉडल का एक फ़ैमिली है. इन्हें Gemma पर बनाया गया है. CodeGemma मॉडल, सिर्फ़ टेक्स्ट-टू-टेक्स्ट और टेक्स्ट-टू-कोड डिकोडर के मॉडल हैं. ये पहले से ट्रेनिंग दिए गए सात अरब वैरिएंट के तौर पर उपलब्ध हैं. इनमें कोड जनरेट करने और कोड जनरेट करने से जुड़े टास्क होते हैं. कोड चैट और निर्देश फ़ॉलो करने के लिए, इनमें 7 अरब पैरामीटर के निर्देशों वाला वैरिएंट और तेज़ी से कोड पूरा करने के लिए, पहले से 200 करोड़ पैरामीटर मौजूद हैं.

इनपुट और आउटपुट

  • इनपुट: पहले से ट्रेनिंग वाले मॉडल वैरिएंट के लिए: कोड प्रीफ़िक्स और वैकल्पिक रूप से कोड जनरेट करने और कोड जनरेट करने की स्थितियों या नैचुरल लैंग्वेज टेक्स्ट/प्रॉम्प्ट के लिए सफ़िक्स. निर्देश के हिसाब से ट्यून किए गए मॉडल के वैरिएंट के लिए: नैचुरल लैंग्वेज में टेक्स्ट या प्रॉम्प्ट.

  • आउटपुट: पहले से ट्रेन किए गए मॉडल वैरिएंट के लिए: फ़िल-इन-द-मिडल कोड पूरा होना, कोड, और आम भाषा. निर्देश से ट्यून किए गए मॉडल वैरिएंट के लिए: कोड और नैचुरल लैंग्वेज.

उद्धरण

@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 से 1,000 अरब अतिरिक्त टोकन पर ट्रेनिंग दी गई है.

ट्रेनिंग डेटा प्रोसेसिंग

CodeGemma को ट्रेनिंग देने के लिए, डेटा प्री-प्रोसेसिंग की इन तकनीकों का इस्तेमाल किया गया था:

  • एफ़आईएम - प्रीट्रेन्ड CodeGemma मॉडल, फ़िल-इन-द-मिडल (एफ़आईएम) से जुड़े टास्क पर फ़ोकस करते हैं. इन मॉडल को पीएसएम और एसपीएम मोड, दोनों के साथ काम करने के लिए ट्रेनिंग दी गई है. हमारी एफ़आईएम सेटिंग, 50-50 पीएसएम/एसपीएम के साथ 80% से 90% एफ़आईएम रेट है.
  • डिपेंडेंसी ग्राफ़-आधारित पैकिंग और यूनिट टेस्ट-आधारित लेक्सिकल पैकिंग की तकनीक: मॉडल को असल दुनिया के ऐप्लिकेशन के साथ अलाइन करने के लिए, हमने प्रोजेक्ट/डेटा स्टोर करने की जगह के लेवल पर ट्रेनिंग के उदाहरणों को, हर डेटा स्टोर करने की जगह में सबसे काम की सोर्स फ़ाइलों को एक साथ बांटा जाता है. खास तौर पर, हमने दो तरह के तरीकों का इस्तेमाल किया: डिपेंडेंसी ग्राफ़ पर आधारित पैकिंग और यूनिट टेस्ट पर आधारित लेक्सिकल पैकिंग.
  • हमने दस्तावेज़ों को प्रीफ़िक्स, बीच, और सफ़िक्स में बांटने के लिए एक नई तकनीक बनाई है. इससे सफ़िक्स को किसी भी क्रम में लगाने के बजाय, उनके वाक्य की तरह ही स्वाभाविक तरीके से शुरू किया जा सकता है.
  • सुरक्षा: Gemma की तरह ही, हमने सुरक्षा से जुड़े बेहतर फ़िल्टर लागू किए हैं. इनमें अपनी नीतियों के मुताबिक़, कॉन्टेंट की क्वालिटी और सुरक्षा के हिसाब से निजी डेटा, सीएसएएम फ़िल्टर, और अन्य फ़िल्टर शामिल हैं.

लागू करने की जानकारी

ट्रेनिंग के दौरान इस्तेमाल किया जाने वाला हार्डवेयर और फ़्रेमवर्क

जेमा की तरह, CodeGemma को JAX और एमएल पाथवे का इस्तेमाल करके, टेन्सर प्रोसेसिंग यूनिट (TPU) हार्डवेयर (TPUv5e) की सबसे नई जनरेशन की ट्रेनिंग की ट्रेनिंग मिली थी.

आकलन के बारे में जानकारी

बेंचमार्क परिणाम

आकलन करने का तरीका

  • कोड पूरा होने के मानदंड: HumanEval (HE) (एक लाइन और एक से ज़्यादा लाइन इंफ़िलिंग)
  • कोड जनरेशन के मानदंड: HumanEval, MBPP, BabelCode (BC) [C++, C#, Go, Java, JavaScript, Kotlin, Python, Rust]
  • सवाल और जवाब: BoolQ, PIQA, TriviaQA
  • नैचुरल लैंग्वेज: ARC-Challenge, HellaSwag, MMLU, WinoGrande
  • गणित रीज़निंग: GSM8K, MATH

कोडिंग मानदंड के नतीजे

मानदंड 2B 2 अरब (1.1) 7 अरब 7B-इटली 7B-IT (1.1)
HumanEval 78 जीबी में से 78 जीबी में से 44.5 78 जीबी में से 78 जीबी में से
एमबीपीपी 43.6 49.2 56.2 78 जीबी में से 55.6
HumanEval एकल लाइन 78.4 79.3 76.1 78.35 77.4
HumanEval मल्टी लाइन 51.4 51.0 58.4 20.1 78 जीबी में से
बीसी HE C++ 78 जीबी में से यूरो यूरो 42.2 46.6
बीसी एचई सी# 10.6 78 जीबी में से 78 जीबी में से 78 जीबी में से 54.7
बीसी एचई गो 2,050 18.0 21.7 28.6 78 जीबी में से
बीसी एचई जावा 78 जीबी में से यूरो 41.0 48.4 50.3
BC HE JavaScript 21.7 28.0 यूरो 46.0 48.4
बीसी एचई कोटलिन 28.0 78 जीबी में से यूरो 51.6 47.8
बीसी HE Python 21.7 78 जीबी में से 42.2 48.4 54.0
बीसी एचई रस्ट 78 जीबी में से 78 जीबी में से 78 जीबी में से 78 जीबी में से 78 जीबी में से
बीसी एमबीपीपी C++ 47.1 यूरो यूरो 56.7 63.5
बीसी एमबीपीपी सी# 28.7 45.3 78 जीबी में से 41.2 62.0
बीसी एमबीपीपी गो 45.6 यूरो 78 जीबी में से 78 जीबी में से 53.2
बीसी एमबीपीपी जावा 41.8 यूरो 50.3 78 जीबी में से यूरो
BC एमबीपीपी JavaScript 45.3 45.0 58.2 61.4 61.4
बीसी एमबीपीपी कोटलिन 46.8 यूरो 54.7 यूरो 62.6
BC एमबीPP Python 78.6 यूरो 59.1 62.0 60.2
बीसी एमबीपीपी ज़ंग 45.3 47.4 यूरो 53.5 52.3

प्राकृतिक भाषा के मानदंड (7B मॉडल पर)

अलग-अलग भाषा की क्षमता से जुड़ी मेट्रिक में Gemma, CodeGemma PT, और CodeGemma IT की तुलना करने वाला बार चार्ट. तीनों मॉडल की तुलना की जा सकती है, क्योंकि CodeGemma ने सामान्य भाषा की अच्छी समझ बनाई है.

नैतिकता और सुरक्षा

नैतिकता और सुरक्षा का आकलन

आकलन करने की प्रोसेस

आकलन करने के हमारे तरीकों में, स्ट्रक्चर्ड आकलन और काम की कॉन्टेंट की नीतियों की अंदरूनी रेड-टीमिंग टेस्टिंग शामिल है. रेड-टीमिंग को कई अलग-अलग टीमों ने आयोजित किया, जिनमें से हर एक के लक्ष्य और मैन्युअल आकलन मेट्रिक थे. इन मॉडल का आकलन, नैतिकता और सुरक्षा से जुड़ी कई कैटगरी को ध्यान में रखकर किया गया. इनमें ये शामिल हैं:

  • ऐसे प्रॉम्प्ट जिनमें कॉन्टेंट की सुरक्षा और प्रतिनिधित्व को नुकसान पहुंचाने वाले कॉन्टेंट की मानवीय समीक्षा की गई हो. आकलन करने के तरीकों के बारे में ज़्यादा जानने के लिए, Gemma मॉडल कार्ड देखें.

  • खास तौर पर सायबर हमलों की क्षमताओं की जांच की गई है. साथ ही, अपने-आप हैक होने की क्षमता को टेस्ट किया जा रहा है और यह पक्का किया जा रहा है कि नुकसान की संभावना सीमित है.

इवैलुएशन के नतीजे

नैतिकता और सुरक्षा की समीक्षा के नतीजे, इंटरनल नीतियों को पूरा करने के लिए तय किए गए थ्रेशोल्ड के दायरे में आते हैं. यह कॉन्टेंट, बच्चों की सुरक्षा, कॉन्टेंट की सुरक्षा, प्रतिनिधि को होने वाला नुकसान, याददाश्त, बड़े पैमाने पर होने वाले नुकसान जैसी कैटगरी में आता है. ज़्यादा जानकारी के लिए, Gemma मॉडल कार्ड देखें.

मॉडल का इस्तेमाल और उसकी सीमाएं

सीमाएं

बड़े लैंग्वेज मॉडल (एलएलएम) की ट्रेनिंग डेटा और टेक्नोलॉजी की सीमाओं के आधार पर, कुछ सीमाएं तय होती हैं. एलएलएम की सीमाओं के बारे में ज़्यादा जानकारी के लिए, जेमा मॉडल कार्ड देखें.

नैतिक तौर पर ध्यान देने वाली बातें और जोखिम

बड़े लैंग्वेज मॉडल (एलएलएम) का विकास, नैतिकता से जुड़ी कई चिंताओं को पैदा करता है. हमने इन मॉडल को बनाते समय, कई पहलुओं पर ध्यान से विचार किया है.

मॉडल की जानकारी के लिए, कृपया Gemma मॉडल कार्ड में यही चर्चा देखें.

इस्तेमाल का मकसद

ऐप्लिकेशन

Code Gemma मॉडल में कई तरह के ऐप्लिकेशन होते हैं जो आईटी और पीटी मॉडल के हिसाब से अलग-अलग होते हैं. संभावित इस्तेमाल की नीचे दी गई सूची में पूरी जानकारी नहीं दी गई है. इस सूची का मकसद, इस्तेमाल के उन संभावित उदाहरणों के बारे में जानकारी देना है जिन्हें मॉडल क्रिएटर्स, मॉडल ट्रेनिंग और डेवलपमेंट के हिस्से के तौर पर देखते हैं.

  • कोड पूरा होना: IDE एक्सटेंशन की मदद से कोड को पूरा करने के लिए, PT मॉडल का इस्तेमाल किया जा सकता है
  • कोड जनरेशन: आईटी मॉडल का इस्तेमाल करके, IDE एक्सटेंशन के साथ या उसके बिना कोड जनरेट किया जा सकता है
  • कोड बातचीत: आईटी मॉडल, बातचीत के ऐसे इंटरफ़ेस को बेहतर बना सकता है जिनमें कोड पर बातचीत होती है
  • कोड एजुकेशन: आईटी मॉडल में इंटरैक्टिव कोड लर्निंग का इस्तेमाल किया जा सकता है. यह सिंटैक्स को ठीक करने में मदद करता है या कोडिंग की प्रैक्टिस करता है

फ़ायदे

रिलीज़ के समय, यह मॉडल बड़े लैंग्वेज मॉडल को रिलीज़ करते समय बेहतर परफ़ॉर्मेंस वाला ओपन कोड पर फ़ोकस करता है. इसे बड़े लैंग्वेज मॉडल की तरह ही डिज़ाइन किया गया है. इसे बड़े बड़े साइज़ के मॉडल की तुलना में, ज़िम्मेदारी से एआई डेवलप करने के लिए डिज़ाइन किया गया है.

इस दस्तावेज़ में बताए गए कोडिंग मानदंड इवैलुएशन मेट्रिक का इस्तेमाल करके, इन मॉडल को ओपन मॉडल के दूसरे विकल्पों की तुलना में बेहतर परफ़ॉर्मेंस देने के लिए दिखाया गया है.