CodeGemma-Modellkarte

Modellseite:CodeGemma

Ressourcen und technische Dokumentation:

Nutzungsbedingungen: Nutzungsbedingungen

Autoren:Google

Modellinformationen

Modellübersicht

Beschreibung

CodeGemma ist eine Familie einfacher Open-Code-Modelle, die auf Gemma basieren. CodeGemma-Modelle sind nur Text-zu-Text- und Text-zu-Code-Decoder verfügbar als 7 Milliarden vortrainierte Variante, die auf die Codevervollständigung spezialisiert ist und Codegenerierung, eine auf 7 Milliarden Parameter abgestimmte Variante, Codechat und Anleitung sowie eine vortrainierte Variante mit 2 Milliarden Parametern für eine schnelle Codevervollständigung.

Ein- und Ausgaben

  • Eingabe: Für vortrainierte Modellvarianten: Codepräfix und optional ein Suffix für Szenarien der Codevervollständigung und ‐generierung oder für Text/Prompts in natürlicher Sprache. Für eine auf die Anleitung abgestimmte Modellvariante: Text in natürlicher Sprache oder Prompt.

  • Ausgabe:Für vortrainierte Modellvarianten: Code in der Mitte ausfüllen Vervollständigung, Code und natürlicher Sprache. Für eine auf Anweisungen abgestimmte Modellvariante: und natürlicher Sprache.

Zitation

@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}
}

Modelldaten

Trainings-Dataset

Mit Gemma als Basismodell werden vortrainierte Varianten von CodeGemma 2B und 7B mit weiteren 500 bis 1.000 Milliarden Tokens vorwiegend auf Englisch trainiert. Sprachdaten aus Open-Source-Mathematik-Datasets und synthetisch generierten Code.

Verarbeitung von Trainingsdaten

Die folgenden Datenvorverarbeitungstechniken wurden zum Trainieren von CodeGemma angewendet:

  • FIM - vortrainierte CodeGemma-Modelle konzentrieren sich auf Fill-in-the-Middle-Aufgaben (FIM). Die Modelle sind so trainiert, dass sie sowohl im PSM- als auch im SPM-Modus funktionieren. Unsere FIM-Einstellungen sind FIM-Rate von 80% bis 90% bei 50–50 pSM/SPM.
  • Abhängigkeitsdiagramm-basierte Verpackungstechniken und lexikalische Packungstechniken auf Grundlage von Einheitentests: Um die Ausrichtung von Modellen an reale Anwendungen zu verbessern, haben wir Beispiele auf Projekt-/Repository-Ebene zur Zusammenstellung der relevantesten Quelle -Dateien in jedem Repository. Wir haben zwei Heuristiken Techniken: Abhängigkeitsdiagramm-basiertes Packing und lexikalisches Packing auf Einheitentests.
  • Wir haben eine neue Technik entwickelt, um Dokumente in Präfixe aufzuteilen. Mitte und Suffix, damit das Suffix syntaktisch natürlicher beginnt und nicht durch eine reine Zufallsverteilung.
  • Sicherheit: Ähnlich wie bei Gemma haben wir strenge Sicherheitsfilter angewendet, Filtern von personenbezogenen Daten, Filtern von Darstellungen des sexuellen Missbrauchs von Kindern und anderen Filtern auf Grundlage von Inhalten im Einklang mit der unseren Richtlinien entsprechen.

Informationen zur Implementierung

Hardware und Frameworks, die während des Trainings verwendet werden

Wie Gemma, CodeGemma wurde mit der neuesten Generation von Tensor Processing Unit (TPU) Hardware (TPUv5e), mit JAX und ML Wege.

Informationen zur Bewertung

Benchmarkergebnisse

Bewertungsansatz

Codierungs-Benchmark-Ergebnisse

Benchmark 2 Mrd. 2B (1,1) 7 Mrd. 7 Mrd. IT 7 Mrd.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 – eine Zeile 78,4 79,3 76,1 68,3 77,4
HumanEval Mehrzeilig 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.0 21,7 28,6 34,2
BC HE Java 29,2 29,8 41,0 48,4 50,3
BC HE-JavaScript 21,7 28.0 39,8 46,0 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,0
BC HE Rost 26,7 24,2 34,1 36,0 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
BC MBPP Java 41,8 49,7 50,3 57,3 62,9
BC MBPP-JavaScript 45,3 45,0 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 Rost 45,3 47,4 52,9 53,5 52,3

Benchmarks für natürliche Sprache (an 7 Milliarden Modellen)

Balkendiagramm zum Vergleich von Gemma, CodeGemma PT und CodeGemma IT in Bezug auf verschiedene Messwerte für die Sprachkompetenz. Alle drei Modelle sind in etwa vergleichbar, wobei CodeGemma weiterhin ein starkes Natural Language Understanding behält.

Ethik und Sicherheit

Ethik und Sicherheitsbewertungen

Bewertungsansatz

Zu unseren Bewertungsmethoden gehören strukturierte Bewertungen und internes Red Teaming Tests relevanter Inhaltsrichtlinien. Das Red-Team-Einsatz wurde von einer Reihe von Teams mit unterschiedlichen Zielen und Metriken für die menschliche Bewertung. Diese Modelle wurden anhand verschiedener Kategorien bewertet, Ethik und Sicherheit, einschließlich:

  • Manuelle Bewertung von Aufforderungen zur Sicherheit und Repräsentation von Inhalten Weitere Informationen finden Sie in der Gemma-Modellkarte finden Sie weitere Informationen zum Bewertungsansatz.

  • Spezifisches Testen von Funktionen für Cyberoffensive, wobei der Schwerpunkt auf dem Testen von autonomen und die Begrenzung potenzieller Schäden.

Bewertungsergebnisse

Die Ergebnisse der Ethik- und Sicherheitsbewertungen liegen innerhalb akzeptabler Grenzwerte für Besprechung Interne Richtlinien für Kategorien wie den Schutz von Kindern, die inhaltliche Sicherheit, auswendig lernen oder groß angelegte Schäden. Weitere Informationen finden Sie in der Gemma-Modellkarte .

Modellnutzung und -einschränkungen

Bekannte Einschränkungen

Large Language Models (LLMs) haben Einschränkungen aufgrund ihrer Trainingsdaten und die Grenzen der Technologie inhärent. Weitere Informationen finden Sie in der Gemma-Modellkarte finden Sie weitere Informationen zu den Einschränkungen von LLMs.

Ethische Überlegungen und Risiken

Die Entwicklung von Large Language Models (LLMs) wirft mehrere ethische Bedenken auf. Bei der Entwicklung dieser Modelle haben wir mehrere Aspekte sorgfältig geprüft. Modelle.

Weitere Informationen finden Sie hier. finden Sie auf der Gemma-Modellkarte.

Verwendungszweck

Anwendung

Code-Gemma-Modelle haben ein breites Spektrum an Anwendungen, die zwischen IT und PT-Modelle. Die folgende Liste der möglichen Verwendungszwecke ist nicht vollständig. Die Der Zweck dieser Liste ist es, Kontextinformationen über mögliche die beim Modelltraining berücksichtigt wurden, Entwicklung.

  • Codevervollständigung: PT-Modelle können zur Vervollständigung von Code mit einer IDE-Erweiterung verwendet werden
  • Codegenerierung: Mithilfe des IT-Modells kann Code mit oder ohne IDE generiert werden. Erweiterung
  • Code Conversation: Das IT-Modell kann Kommunikationsschnittstellen unterstützen, die Code
  • Code Education: Das IT-Modell unterstützt interaktives Code-Lernen, Hilfsmittel bei Syntaxkorrekturen oder bietet Programmierübungen

Vorteile

Zum Zeitpunkt der Veröffentlichung bietet diese Modellfamilie offene von Grund auf codeorientierte Implementierungen von Large Language Models für die Responsible AI-Entwicklung im Vergleich zu Modellen ähnlicher Größe.

Unter Verwendung der in diesem Dokument beschriebenen Codierungs-Benchmark-Bewertungsmesswerte Modelle haben nachweislich eine bessere Leistung als andere Modelle in vergleichbarer Größe. offene Modellalternativen.