Halaman model: CodeGemma
Referensi dan dokumentasi teknis:
Persyaratan Penggunaan: Persyaratan
Penulis: Google
Informasi model
Ringkasan model
Deskripsi
CodeGemma adalah rangkaian model kode terbuka ringan yang dibangun di atas Gemma. Model CodeGemma adalah model khusus decoder teks ke teks dan teks ke kode serta tersedia sebagai varian terlatih berjumlah 7 miliar yang berspesialisasi dalam penyelesaian kode dan pembuatan kode, varian 7 miliar parameter yang disesuaikan untuk mengikuti chat kode dan instruksi, serta varian 2 miliar parameter yang telah dilatih untuk penyelesaian kode yang cepat.
Input dan output
Input: Untuk varian model yang telah dilatih sebelumnya: awalan kode dan akhiran opsional untuk skenario penyelesaian dan pembuatan kode atau teks/prompt natural language. Untuk varian model yang disesuaikan dengan instruksi: teks atau perintah natural language.
Output: Untuk varian model yang telah dilatih sebelumnya: kode fill-in-the-middle pelengkapan kode, dan natural language. Untuk varian model yang disesuaikan dengan instruksi: kode dan natural language.
Pengutipan
@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
Menggunakan Gemma sebagai model dasar, varian terlatih CodeGemma 2B dan 7B dilatih lebih lanjut dengan 500 hingga 1000 miliar token tambahan terutama data bahasa dari set data matematika open source dan data sintetis yang pada kode sumber.
Pemrosesan data pelatihan
Teknik pra-pemrosesan data berikut diterapkan untuk melatih CodeGemma:
- FIM - Model CodeGemma terlatih berfokus pada tugas {i>fill-in-the-middle<i} (FIM). Model dilatih untuk bekerja dengan mode PSM dan SPM. Setelan FIM kita Tingkat FIM 80% hingga 90% dengan 50-50 PSM/SPM.
- Teknik Pengemasan Berbasis Grafik dan Pengemasan Berbasis Pengujian Unit Dependensi: Untuk meningkatkan keselarasan model dengan aplikasi dunia nyata, kami pelatihan terstruktur di tingkat proyek/repositori untuk menempatkan sumber yang paling relevan file dalam setiap repositori. Secara khusus, kami menggunakan dua model teknik: pengemasan berbasis grafik dependensi dan pengemasan leksikal berbasis pengujian unit.
- Kami mengembangkan teknik baru untuk memecah dokumen menjadi awalan, tengah, dan akhiran untuk membuat akhiran dimulai dalam bahasa yang lebih natural spesifik, bukan distribusi acak.
- Keamanan: Sama halnya dengan Gemma, kami menerapkan penyaringan keamanan yang ketat termasuk memfilter data pribadi, pemfilteran CSAM, dan pemfilteran lainnya berdasarkan konten kualitas dan keamanan sesuai dengan kebijakan kami.
Informasi penerapan
Hardware dan framework yang digunakan selama pelatihan
Seperti Gemma, CodeGemma dilatih menggunakan generasi terbaru Tensor Processing Unit (TPU) perangkat keras (TPUv5e), menggunakan JAX dan ML Jalur.
Informasi evaluasi
Hasil benchmark
Pendekatan evaluasi
- Tolok ukur penyelesaian kode: HumanEval (HE) (Pengisian Satu Baris dan Beberapa Baris)
- 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 tolok ukur coding
Benchmark | 2 M | 2 M (1,1) | 7 M | 7 M | 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 |
Baris 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 |
HE C++ BC | 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 Pergi | 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 |
Python BC HE | 21,7 | 36,6 | 42,2 | 48,4 | 54,0 |
BC HE Karat | 26,7 | 24,2 | 34,1 | 36,0 | 37,3 |
C++ MBPP BC | 47,1 | 38,9 | 53,8 | 56,7 | 63,5 |
C# MBPP BC | 28,7 | 45,3 | 32,5 | 41,2 | 62,0 |
BC MBPP Mulai | 45,6 | 38,9 | 43,3 | 46,2 | 53,2 |
BC MBPP Java | 41,8 | 49,7 | 50,3 | 57,3 | 62,9 |
JavaScript BC MBPP | 45,3 | 45,0 | 58.2 | 61,4 | 61,4 |
Kotlin BC MBPP | 46,8 | 49,7 | 54,7 | 59,9 | 62,6 |
Python BC MBPP | 38,6 | 52,9 | 59,1 | 62,0 | 60.2 |
Karat BC MBPP | 45,3 | 47,4 | 52,9 | 53,5 | 52,3 |
Tolok ukur natural language (pada model 7B)
Etika dan keselamatan
Evaluasi etika dan keamanan
Pendekatan evaluasi
Metode evaluasi kami mencakup evaluasi terstruktur dan tim merah internal pengujian kebijakan konten yang relevan. Red-teaming dilakukan oleh sejumlah tim yang berbeda, masing-masing dengan tujuan dan metrik evaluasi manual yang berbeda. Model-model ini dievaluasi berdasarkan sejumlah kategori berbeda yang relevan dengan etika dan keselamatan, termasuk:
Evaluasi manual pada perintah yang mencakup keamanan dan representasional konten membahayakan. Lihat Kartu model Gemma untuk detail selengkapnya tentang pendekatan evaluasi.
Pengujian spesifik terhadap kemampuan serangan cyber, yang berfokus pada pengujian otonom meretas dan memastikan potensi bahaya dibatasi.
Hasil evaluasi
Hasil evaluasi etika dan keamanan berada dalam batas yang dapat diterima untuk rapat kebijakan internal untuk kategori seperti keselamatan anak, keamanan konten, bahaya representatif, menghafal, kerugian berskala besar. Lihat Kartu model Gemma untuk mengetahui detail selengkapnya.
Penggunaan dan batasan model
Batasan umum
Model Bahasa Besar (LLM) memiliki keterbatasan berdasarkan data pelatihan dan keterbatasan yang melekat pada teknologi. Lihat Kartu model Gemma untuk mengetahui detail lebih lanjut tentang batasan LLM.
Pertimbangan dan risiko etis
Pengembangan model bahasa besar (LLM) menimbulkan beberapa masalah etika. Kami telah mempertimbangkan dengan cermat berbagai aspek dalam pengembangan jaringan.
Silakan lihat diskusi yang sama di kartu model Gemma untuk mengetahui detail model.
Penggunaan yang dimaksudkan
Aplikasi
Model Code Gemma memiliki berbagai penggunaan, yang bervariasi antara model PT. Daftar potensi penggunaan berikut tidak komprehensif. Tujuan tujuan dari daftar ini adalah untuk memberikan informasi kontekstual tentang kemungkinan kasus penggunaan yang dipertimbangkan pembuat model sebagai bagian dari pelatihan model dan pengembangan produk.
- Penyelesaian Kode: Model PT dapat digunakan untuk menyelesaikan kode dengan ekstensi IDE
- Pembuatan Kode: Model IT dapat digunakan untuk membuat kode dengan atau tanpa IDE ekstensi
- Percakapan Kode: Model IT dapat mendukung antarmuka percakapan yang membahas kode
- Pendidikan Kode: Model IT mendukung pengalaman pembelajaran kode yang interaktif, bantuan dalam koreksi sintaks atau memberikan praktik {i>coding<i}
Manfaat
Pada saat rilis, kelompok model ini memberikan open source berperforma tinggi implementasi model bahasa besar yang berfokus pada kode yang didesain dari awal untuk pengembangan Responsible AI dibandingkan model berukuran serupa.
Dengan menggunakan metrik evaluasi tolok ukur coding yang dijelaskan dalam dokumen ini, telah terbukti memberikan performa unggul daripada model lain dengan ukuran yang sebanding alternatif model terbuka.