Kartu model CodeGemma

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

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)

Diagram batang yang membandingkan Gemma, CodeGemma PT, dan IT CodeGemma dalam berbagai metrik kemampuan bahasa. Ketiga model tersebut kira-kira sebanding, dengan CodeGemma mempertahankan pemahaman natural language yang kuat.

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.