Strona modelu: CodeGemma
Zasoby i dokumentacja techniczna:
Warunki korzystania z usługi: Warunki
Autorzy: Google
Informacje o modelu
Podsumowanie modelu
Opis
CodeGemma to rodzina lekkiego modelu otwartego kodu stworzonego na bazie Gemma. Modele CodeGemma to modele oparte wyłącznie na dekoderze tekstu na tekst i tekst na kod, które są jest dostępna w postaci 7 miliardów wstępnie wytrenowanych wariantów, które specjalizują się w uzupełnianiu kodu i generowania kodu. To wariant dostrojony z 7 miliardami parametrów, czat z kodem i instrukcje oraz wstępnie wytrenowany wariant z 2 miliardami parametrów .
Dane wejściowe i wyjściowe
Dane wejściowe: w przypadku wytrenowanych wersji modelu: prefiks kodu i opcjonalnie sufiks w przypadku scenariuszy uzupełniania i generowania kodu lub tekstu/promptów w języku naturalnym. W przypadku wariantu modelu dostrojonego do instrukcji: tekst lub prompt w języku naturalnym.
Dane wyjściowe: w przypadku już wytrenowanych wariantów modelu: wypełnianie kodu pośrodku do uzupełnienia, kodu i języka naturalnego. W przypadku wariantu modelu dostrojonego zgodnie z instrukcjami: z kodem i językiem naturalnym.
Cytowanie
@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}
}
Dane modelu
Zbiór danych treningowych
Jeśli jako model podstawowy wykorzystywana jest Gemma, wytrenowane warianty CodeGemma 2B i 7B są o dodatkowe 500–1000 miliardów tokenów głównie w języku angielskim dane językowe ze zbiorów danych matematycznych typu open source i generowanych syntetycznie w kodzie.
Przetwarzanie danych treningowych
Do trenowania CodeGemma zastosowano te techniki wstępnego przetwarzania danych:
- FIM – wytrenowane modele CodeGemma koncentrują się na zadaniach typu „fill in the middle” (FIM). Modele są wytrenowane do pracy z trybami PSM i SPM. Nasze ustawienia FIM Stawkę FIM na poziomie 80–90% przy stawce 50–50 PSM/SPM.
- Techniki pakowania opartego na grafie zależności i testach jednostkowych: Aby poprawić zgodność modelu z rzeczywistymi aplikacjami, ustrukturyzowaliśmy trenowanie przykłady na poziomie projektu/repozytorium w celu kolokacji najbardziej odpowiednich źródeł w każdym repozytorium. W szczególności zastosowaliśmy dwie metody heurystyczne, metody: pakowanie oparte na grafach zależności i pakowanie leksykalne z użyciem testów jednostkowych.
- Opracowaliśmy nowatorską metodę dzielenia dokumentów na przedrostki i sufiks w celu uzyskania bardziej naturalnego początku sufiksu na rozkładzie losowym, a nie na rozkładzie losowym.
- Bezpieczeństwo: podobnie jak Gemma, wdrożyliśmy rygorystyczne filtrowanie zabezpieczeń, filtrowanie danych osobowych, CSAM i inne filtrowanie na podstawie treści jakości i bezpieczeństwa zgodnie z naszymi zasadami.
Informacje o wdrażaniu
Sprzęt i platformy używane podczas trenowania
Tak jak Gemma, System CodeGemma został wytrenowany na najnowszej generacji Procesor Tensor Processing Unit (TPU) sprzęt (TPUv5e), za pomocą JAX i ML Ścieżki.
Informacje o ocenie
Wyniki testów porównawczych
Metoda oceny
- Testy porównawcze ukończenia kodu: HumanEval (HE) (wypełnienie pojedynczego wiersza i wielu wierszy)
- Testy porównawcze generowania kodu: HumanEval, MBPP, BabelCode (BC) [C++, C#, Go, Java, JavaScript, Kotlin, Python, Rust]
- Pytania i odpowiedzi: BoolQ, PIQA, TriviaQA
- Język naturalny: ARC-Challenge, HellaSwag, MMLU, WinoGrande
- Rozumowanie matematyczne: GSM8K, MATH
Wyniki testu porównawczego kodowania
Test porównawczy | 2B | 2B (1.1) | 7 MLD | 7B-IT | 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 |
Jeden wiersz HumanEval | 78,4 | 79,3 | 76,1 | 68,3 | 77,4 |
Wiele wierszy 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,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 Rust | 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 Rust | 45,3 | 47,4 | 52,9 | 53,5 | 52,3 |
Testy porównawcze języka naturalnego (w modelach 7B)
Etyka i bezpieczeństwo
Oceny etyki i bezpieczeństwa
Metoda oceny
Nasze metody oceny obejmują ustrukturyzowaną ocenę i wewnętrzny zespół red team testowanie odpowiednich zasad dotyczących treści. Członkowie Red Teams w różnych zespołach, a każdy z nich ma odmienne cele i wyznaczany przez ludzi. Te modele zostały ocenione w odniesieniu do wielu różnych kategorii powiązanych z z zakresu etyki i bezpieczeństwa, w tym:
Ocena manualna promptów dotyczących bezpieczeństwa treści i reprezentacji krzywdy. Zobacz Karta modelu Gemma .
Konkretne testowanie możliwości cyberprzestępstwa, koncentrując się na testowaniu autonomicznych systemów hakerskich i ograniczania potencjalnych szkód.
Wyniki oceny
Wyniki ocen etyki i bezpieczeństwa mieszczą się w akceptowalnych progach na spotkanie zasady wewnętrzne np. bezpieczeństwo dzieci, bezpieczeństwo treści, zagrożenie reprezentacją, zapamiętywania, szkodliwości na dużą skalę. Zobacz Karta modelu Gemma .
Wykorzystanie i ograniczenia modelu
Znane ograniczenia
Duże modele językowe (LLM) mają pewne ograniczenia ze względu na dane treningowe nieodłącznych ograniczeń tej technologii. Zobacz Karta modelu Gemma .
Kwestie etyczne i zagrożenia
Rozwój dużych modeli językowych (LLM) wiąże się z kilkoma obawami etycznymi. Podczas opracowywania tych zasad wzięliśmy pod uwagę wiele aspektów, modeli ML.
Zapoznaj się z tą samą dyskusją na karcie modelu Gemma.
Przeznaczenie
Aplikacja
Modele Code Gemma mają szeroki zakres zastosowań, które różnią się w zależności od potrzeb IT modeli PT. Poniższa lista potencjalnych zastosowań nie jest wyczerpująca. Celem tej listy jest przekazanie kontekstowych informacji na temat możliwych przypadków użycia uwzględnionych przez twórców modeli w ramach trenowania modeli w Google Cloud.
- Uzupełnianie kodu: modeli PT można używać do uzupełniania kodu za pomocą rozszerzenia IDE
- Generowanie kodu: model IT może być używany do generowania kodu z IDE lub bez rozszerzenie
- Rozmowa dotycząca kodu: model IT może wzmocnić interfejsy rozmów, które omawiają kod
- Edukacja w zakresie kodowania: model IT obsługuje interaktywne środowisko nauki kodu, pomoce korekcji składni lub ćwiczeniami w programowaniu
Zalety
W chwili wprowadzenia na rynek ta rodzina modeli zapewnia wysoką wydajność, otwartą skoncentrowane na kod wdrożenia dużych modeli językowych (LLM) zaprojektowane od podstaw odpowiedzialnego rozwoju odpowiedzialnej AI w porównaniu z modelami o podobnej wielkości.
Korzystając z opisanych w tym dokumencie wskaźników oceny porównawczej kodowania kodu, udowodniono, że modele mają większą wydajność niż inne, porównywalne modele są otwarte alternatywne modele.