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
- Tolok ukur penyelesaian kode: HumanEval (HE) (Single Line and Multiple Line Infilling)
- Tolok ukur pembuatan kode: HumanEval, MBPP, BabelCode (BC) [C++, C#, Go, Java, JavaScript, Kotlin, Python, Rust]
- Tanya Jawab: BoolQ, PIQA, TriviaQA
- Natural Language: Tantangan ARC, HellaSwag, MMLU, WinoGrande
- Penalaran Matematika: GSM8K, MATH
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)
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.