Kartu model CodeGemma

Halaman model: CodeGemma

Referensi dan dokumentasi teknis:

Persyaratan Penggunaan: Persyaratan

Penulis: Google

Informasi model

Ringkasan model

Deskripsi

CodeGemma adalah kelompok model kode terbuka yang ringan dan dibangun di atas Gemma. Model CodeGemma adalah model khusus decoder teks ke teks dan teks ke kode, dan tersedia sebagai varian terlatih sebesar 7 miliar yang mengkhususkan diri dalam penyelesaian kode dan tugas pembuatan kode, 7 miliar parameter yang disesuaikan dengan petunjuk parameter untuk chat kode dan petunjuk berikutnya, serta 2 miliar parameter terlatih untuk penyelesaian kode dengan cepat.

Input dan output

  • Input: Untuk varian model terlatih: awalan kode dan akhiran (opsional) untuk skenario penyelesaian kode dan pembuatan atau teks/perintah natural language. Untuk varian model yang disesuaikan dengan petunjuk: teks atau perintah bahasa natural.

  • Output: Untuk varian model terlatih: pelengkapan kode fill-in-the-middle, kode, dan natural language. Untuk varian model yang disesuaikan dengan petunjuk: kode dan natural language.

Kutipan

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

Data model

Set data pelatihan

Dengan menggunakan Gemma sebagai model dasar, CodeGemma 2B dan 7B varian terlatih selanjutnya dilatih dengan 500 hingga 1.000 miliar token tambahan yang sebagian besar terdiri dari data berbahasa Inggris dari set data matematika open source dan kode yang dihasilkan secara sintetis.

Melatih pemrosesan data

Teknik pra-pemrosesan data berikut diterapkan untuk melatih CodeGemma:

  • FIM - Model CodeGemma yang telah dilatih sebelumnya berfokus pada tugas-tugas fill-in-the-middle (FIM). Model tersebut dilatih untuk menggunakan mode PSM dan SPM. Setelan FIM kami adalah tarif FIM 80% hingga 90% dengan 50-50 PSM/SPM.
  • Teknik Pengemasan Berbasis Grafik Dependensi dan Pengujian Unit berbasis Pengujian Unit: Untuk meningkatkan keselarasan model dengan aplikasi dunia nyata, kami menyusun contoh pelatihan di tingkat project/repositori untuk menempatkan file sumber yang paling relevan dalam setiap repositori. Secara khusus, kami menggunakan dua teknik heuristik: pengemasan berbasis grafik dependensi dan pengemasan leksikal berbasis pengujian unit.
  • Kami mengembangkan teknik baru untuk membagi dokumen menjadi awalan, tengah, dan akhiran agar akhiran dimulai pada titik yang lebih natural secara sintaksis, bukan distribusi acak.
  • Keselamatan: Serupa dengan Gemma, kami menerapkan pemfilteran keamanan yang ketat termasuk memfilter data pribadi, pemfilteran CSAM, dan pemfilteran lainnya berdasarkan kualitas dan keamanan konten sesuai dengan kebijakan kami.

Informasi penerapan

Perangkat keras dan kerangka kerja yang digunakan selama pelatihan

Seperti Gemma, CodeGemma dilatih pada hardware Tensor Processing Unit (TPU) generasi terbaru (TPUv5e), menggunakan JAX dan ML Pathways.

Informasi evaluasi

Hasil benchmark

Pendekatan evaluasi

Hasil benchmark coding

Benchmark 2 M 2B (1,1) 7 M 7B 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
Jalur Tunggal HumanEval 78,4 79,3 76,1 68,3 77,4
Multi Line 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
JavaScript BC HE 21,7 28,0 39,8 46,0 48,4
Kotlin BC HE 28,0 32,3 39,8 51,6 47,8
BC HE Python 21,7 36,6 42,2 48,4 54,0
Karat BC HE 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
JavaScript MBPP BC 45,3 45,0 58.2 61,4 61,4
Kotlin MBPP BC 46,8 49,7 54,7 59,9 62,6
BC MBPP Python 38,6 52,9 59,1 62,0 60.2
Karat BC MBPP 45,3 47,4 52,9 53,5 52,3

Natural language benchmark (pada model 7 miliar)

Diagram batang yang membandingkan Gemma, CodeGemma PT, dan CodeGemma IT di berbagai metrik kemampuan bahasa. Ketiga model tersebut kurang lebih sebanding, dengan CodeGemma yang mempertahankan natural language understanding yang kuat.

Etika dan keamanan

Evaluasi keamanan dan etika

Pendekatan evaluasi

Metode evaluasi kami mencakup evaluasi terstruktur dan pengujian tim merah internal terhadap kebijakan konten yang relevan. Red-team dilakukan oleh sejumlah tim yang berbeda, masing-masing dengan sasaran dan metrik evaluasi manusia yang berbeda. Model-model ini dievaluasi berdasarkan sejumlah kategori berbeda yang relevan dengan etika dan keamanan, termasuk:

  • Evaluasi manual terhadap perintah yang membahas keamanan konten dan bahaya representasi. Lihat kartu model Gemma untuk detail selengkapnya tentang pendekatan evaluasi.

  • Pengujian spesifik kemampuan melakukan pelanggaran cyber, yang berfokus pada pengujian kemampuan peretasan otonom dan memastikan potensi bahaya yang terbatas.

Hasil evaluasi

Hasil evaluasi etika dan keamanan berada dalam batas yang dapat diterima untuk memenuhi kebijakan internal untuk kategori seperti keselamatan anak, keamanan konten, bahaya representatif, mengingat, bahaya dalam skala besar. Lihat kartu model Gemma untuk detail selengkapnya.

Penggunaan dan batasan model

Batasan umum

Model Bahasa Besar (LLM) memiliki keterbatasan berdasarkan data pelatihannya dan keterbatasan teknologi yang melekat. Lihat kartu model Gemma untuk detail selengkapnya tentang batasan LLM.

Pertimbangan dan risiko etis

Pengembangan model bahasa besar (LLM) menimbulkan beberapa masalah etika. Kami telah mempertimbangkan beberapa aspek dalam pengembangan model ini dengan cermat.

Lihat diskusi yang sama di kartu model Gemma untuk mengetahui detail model.

Penggunaan yang dimaksudkan

Aplikasi

Model Code Gemma memiliki berbagai penerapan, yang bervariasi antara model IT dan PT. Daftar penggunaan potensial berikut tidak lengkap. Tujuan daftar ini adalah untuk memberikan informasi kontekstual tentang kemungkinan kasus penggunaan yang dipertimbangkan oleh pembuat model sebagai bagian dari pelatihan dan pengembangan model.

  • Pelengkapan Kode: Model PT dapat digunakan untuk menyelesaikan kode dengan ekstensi IDE
  • Pembuatan Kode: Model IT dapat digunakan untuk membuat kode dengan atau tanpa ekstensi IDE
  • Percakapan Kode: Model IT dapat mendukung antarmuka percakapan yang membahas kode
  • Pendidikan Kode: Model IT mendukung pengalaman pembelajaran kode yang interaktif, membantu koreksi sintaksis, atau menyediakan praktik coding

Manfaat

Pada saat rilis, kelompok model ini menyediakan implementasi model bahasa besar (LLM) berperforma tinggi yang berfokus pada kode terbuka dan didesain dari awal untuk pengembangan Responsible AI dibandingkan dengan model berukuran serupa.

Dengan menggunakan metrik evaluasi benchmark coding yang dijelaskan dalam dokumen ini, model ini telah terbukti memberikan performa yang unggul dibandingkan alternatif model terbuka lainnya yang berukuran sebanding.