Karta e modelit CodeGemma

Faqja e modelit: CodeGemma

Burimet dhe dokumentacioni teknik:

Kushtet e Përdorimit: Kushtet

Autorë: Google

Informacioni i modelit

Përmbledhja e modelit

Përshkrimi

CodeGemma është një familje modelesh të lehta me kod të hapur të ndërtuara në krye të Gemma. Modelet CodeGemma janë modele vetëm dekoder tekst-me-tekst dhe tekst-në-kod dhe janë të disponueshme si një variant 7 miliardë i paratrajnuar që specializohet në detyrat e plotësimit të kodit dhe gjenerimit të kodit, një variant 7 miliardë parametrash i akorduar me instruksione për bisedën dhe udhëzimin e kodit në vijim dhe një variant i paratrajnuar me 2 miliardë parametra për plotësimin e shpejtë të kodit.

Inputet dhe daljet

  • Hyrja: Për variantet e modelit të trajnuar paraprakisht: parashtesa e kodit dhe prapashtesa opsionale për skenarët e plotësimit dhe gjenerimit të kodit ose teksti/kërkesa e gjuhës natyrore. Për variantin e modelit të akorduar sipas udhëzimeve: tekst ose kërkesë në gjuhën natyrore.

  • Rezultati: Për variantet e modelit të trajnuar paraprakisht: plotësimi i kodit në mes, kodi dhe gjuha natyrore. Për variantin e modelit të akorduar me udhëzim: kodi dhe gjuha natyrore.

Citim

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

Të dhënat e modelit

Të dhënat e trajnimit

Duke përdorur Gemma si modelin bazë, variantet e para-trajnuara CodeGemma 2B dhe 7B trajnohen më tej në 500 deri në 1000 miliardë argumente shtesë të të dhënave kryesisht në gjuhën angleze nga grupet e të dhënave të matematikës me burim të hapur dhe kodi i krijuar në mënyrë sintetike.

Përpunimi i të dhënave të trajnimit

Teknikat e mëposhtme të parapërpunimit të të dhënave u aplikuan për të trajnuar CodeGemma:

  • FIM - Modelet e paratrajnuara të CodeGemma fokusohen në detyrat plotësuese në mes (FIM). Modelet janë trajnuar për të punuar me të dyja mënyrat PSM dhe SPM. Cilësimet tona FIM janë 80% deri në 90% norma FIM me 50-50 PSM/SPM.
  • Paketimi i bazuar në grafikun e varësisë dhe teknikat e paketimit leksikor të bazuara në teste njësi: Për të përmirësuar përafrimin e modelit me aplikacionet e botës reale, ne strukturuam shembuj trajnimi në nivel projekti/depoje për të vendosur skedarët burimor më të rëndësishëm brenda çdo depoje. Në mënyrë të veçantë, ne përdorëm dy teknika heuristike: paketimin e bazuar në grafikun e varësisë dhe paketimin leksikor të bazuar në testin e njësive.
  • Ne zhvilluam një teknikë të re për ndarjen e dokumenteve në parashtesë, mes dhe prapashtesë për ta bërë prapashtesën të fillojë në një pikë më natyrale sintaksisht dhe jo në shpërndarje thjesht të rastësishme.
  • Siguria: Ngjashëm me Gemma, ne vendosëm filtrim rigoroz të sigurisë duke përfshirë filtrimin e të dhënave personale, filtrimin CSAM dhe filtrim të tjerë bazuar në cilësinë dhe sigurinë e përmbajtjes në përputhje me politikat tona .

Informacioni i zbatimit

Pajisjet dhe kornizat e përdorura gjatë trajnimit

Ashtu si Gemma , CodeGemma u trajnua në gjeneratën e fundit të harduerit të Njësisë së Përpunimit Tensor (TPU) (TPUv5e), duke përdorur JAX dhe ML Pathways .

Informacioni i vlerësimit

Rezultatet e standardeve

Qasja e vlerësimit

Rezultatet e standardeve të kodimit

Standardi 2B 2B (1.1) 7B 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
Linja e vetme HumanEval 78.4 79.3 76.1 68.3 77.4
HumanEval Multi Line 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 AI Shko 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 Ndryshk 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 Shko 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

Standardet e gjuhës natyrore (në modelet 7B)

Grafiku me shtylla që krahason Gemma, CodeGemma PT dhe CodeGemma IT në metrika të ndryshme të aftësive gjuhësore. Të tre modelet janë afërsisht të krahasueshme, me CodeGemma që ruan një kuptim të fortë të gjuhës natyrore.

Etika dhe siguria

Vlerësimet e etikës dhe sigurisë

Qasja e vlerësimeve

Metodat tona të vlerësimit përfshijnë vlerësime të strukturuara dhe testime të brendshme të grupeve të kuqe të politikave përkatëse të përmbajtjes. Red-skuadra u krye nga një numër skuadrash të ndryshme, secila me qëllime të ndryshme dhe metrika të vlerësimit njerëzor. Këto modele u vlerësuan kundrejt një numri kategorish të ndryshme që lidhen me etikën dhe sigurinë, duke përfshirë:

  • Vlerësimi njerëzor mbi kërkesat që mbulojnë sigurinë e përmbajtjes dhe dëmet e përfaqësimit. Shikoni kartën e modelit Gemma për më shumë detaje mbi qasjen e vlerësimit.

  • Testimi specifik i aftësive të sulmeve kibernetike, duke u fokusuar në testimin e aftësive autonome të hakerimit dhe sigurimin e dëmeve të mundshme janë të kufizuara.

Rezultatet e vlerësimit

Rezultatet e vlerësimeve të etikës dhe sigurisë janë brenda kufijve të pranueshëm për përmbushjen e politikave të brendshme për kategori të tilla si siguria e fëmijëve, siguria e përmbajtjes, dëmet e përfaqësimit, memorizimi, dëmet në shkallë të gjerë. Shikoni kartën e modelit Gemma për më shumë detaje.

Përdorimi dhe kufizimet e modelit

Kufizimet e njohura

Modelet e mëdha të gjuhës (LLM) kanë kufizime bazuar në të dhënat e tyre të trajnimit dhe kufizimet e qenësishme të teknologjisë. Shikoni kartën e modelit Gemma për më shumë detaje mbi kufizimet e LLM-ve.

Konsideratat dhe rreziqet etike

Zhvillimi i modeleve të mëdha gjuhësore (LLM) ngre disa shqetësime etike. Ne kemi shqyrtuar me kujdes aspekte të shumta në zhvillimin e këtyre modeleve.

Ju lutemi referojuni të njëjtit diskutim në kartën e modelit Gemma për detajet e modelit.

Përdorimi i synuar

Aplikimi

Modelet Code Gemma kanë një gamë të gjerë aplikimesh, të cilat ndryshojnë midis modeleve IT dhe PT. Lista e mëposhtme e përdorimeve të mundshme nuk është gjithëpërfshirëse. Qëllimi i kësaj liste është të sigurojë informacion kontekstual në lidhje me rastet e mundshme të përdorimit që krijuesit e modelit i konsideruan si pjesë e trajnimit dhe zhvillimit të modelit.

  • Plotësimi i kodit: Modelet PT mund të përdoren për të plotësuar kodin me një shtrirje IDE
  • Gjenerimi i kodit: Modeli IT mund të përdoret për të gjeneruar kode me ose pa një shtesë IDE
  • Biseda me kode: Modeli IT mund të fuqizojë ndërfaqet e bisedave të cilat diskutojnë kodin
  • Edukimi i kodit: Modeli IT mbështet përvojat ndërvepruese të të mësuarit të kodit, ndihmon në korrigjimin e sintaksës ose ofron praktikë kodimi

Përfitimet

Në momentin e lëshimit, kjo familje modelesh ofron zbatime të modeleve të gjuhëve të mëdha të përqendruara në kode me performancë të lartë, të dizajnuara nga themelet për zhvillimin e Përgjegjshëm të AI krahasuar me modelet me madhësi të ngjashme.

Duke përdorur matjet e vlerësimit të standardeve të kodimit të përshkruara në këtë dokument, këto modele kanë treguar se ofrojnë performancë superiore ndaj alternativave të tjera të modelit të hapur me madhësi të krahasueshme.