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
- Benchmarks für die Codevervollständigung: HumanEval (HE) (einzeilig und mehrere Zeilen einfügen)
- Benchmarks für die Codegenerierung: HumanEval, MBPP, BabelCode (BC) [C++, C#, Go, Java, JavaScript, Kotlin, Python, Rust]
- Fragen und Antworten: BoolQ, PIQA, TriviaQA
- Natural Language: ARC-Challenge, HellaSwag, MMLU, WinoGrande
- Mathematische Gründe: GSM8K, MATH
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)
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.