Model sayfası: CodeGemma
Kaynaklar ve teknik belgeler:
Kullanım Şartları: Şartlar
Yazarlar: Google
Model bilgileri
Model özeti
Açıklama
CodeGemma, Gemma üzerine inşa edilmiş, hafif ve açık kod modellerinden oluşan bir ailedir. CodeGemma modelleri, yalnızca metinden metne ve metinden kod çözücüye dayalı modellerdir. Kod tamamlama ve kod oluşturma görevlerinde uzmanlaşmış, önceden eğitilmiş 7 milyar varyant, kod sohbeti ve talimat takibi için 7 milyar parametreye göre ayarlanmış varyant ve hızlı kod tamamlama için önceden eğitilmiş 2 milyar parametreli varyant olarak kullanıma sunulmuştur.
Girişler ve çıkışlar
Giriş: Önceden eğitilmiş model varyantları için: kod tamamlama ve oluşturma senaryoları için kod öneki ve isteğe bağlı olarak sonek veya doğal dil metni/istemi. Talimat tarafından ayarlanan model varyantı için doğal dil metni veya istem.
Çıkış: Önceden eğitilmiş model varyantları için: ortasını doldurma kodu tamamlama, kod ve doğal dil. Talimat tarafından ayarlanan model varyantı için: kod ve doğal dil.
Alıntı
@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}
}
Model verileri
Eğitim veri kümesi
Temel model olarak Gemma'nın kullanıldığı CodeGemma 2B ve 7B önceden eğitilmiş varyantları, açık kaynak matematik veri kümelerinden ve sentetik olarak üretilmiş koddan birincil olarak İngilizce olan 500 ila 1.000 milyar ek veri jetonu kullanılarak daha fazla eğitilmiştir.
Eğitim verilerini işleme
CodeGemma'yı eğitmek için aşağıdaki veri ön işleme teknikleri uygulandı:
- FIM - Önceden eğitilmiş CodeGemma modelleri, ortadaki doldurma (FIM) görevlerine odaklanır. Modeller hem PSM hem de SPM modlarıyla çalışacak şekilde eğitilmiştir. FIM ayarlarımız, 50-50 PSM/ÖİOY ile% 80 ila% 90 FIM oranına sahiptir.
- Bağımlılık Grafiği Tabanlı Paketleme ve Birim Testi tabanlı Sözcük Paketleme teknikleri: Gerçek dünyadaki uygulamalarla model uyumluluğunu iyileştirmek amacıyla, her depodaki en alakalı kaynak dosyaları bir arada toplamak için eğitim örneklerini proje/depo düzeyinde yapılandırdık. Spesifik olarak, iki bulgusal teknik kullandık: bağımlılık grafiğine dayalı paketleme ve birim testine dayalı sözlük paketleme.
- Sonekin tamamen rastgele bir dağılım yerine sözdizimsel olarak daha doğal bir noktada başlamasını sağlamak amacıyla dokümanları önek, orta ve son ek olarak bölmek için yeni bir teknik geliştirdik.
- Güvenlik: Gemma'ya benzer şekilde, politikalarımıza uygun olarak kişisel verilerin filtrelenmesi, CSAM filtrelemesinin yanı sıra içerik kalitesi ve güvenliğine dayalı diğer filtrelemeleri içeren sıkı güvenlik filtreleri uyguladık.
Uygulama bilgileri
Eğitim sırasında kullanılan donanım ve çerçeveler
Gemma gibi CodeGemma da JAX ve ML Yolları kullanılarak yeni nesil Tensör İşleme Birimi (TPU) donanımları (TPUv5e) konusunda eğitildi.
Değerlendirme bilgileri
Karşılaştırma sonuçları
Değerlendirme yaklaşımı
- Kod tamamlama karşılaştırmaları: HumanEval (HE) (Tek Satır ve Birden Çok Satır Doldurma)
- Kod oluşturma karşılaştırmaları: HumanEval, MBPP, BabelCode (BC) [C++, C#, Go, Java, JavaScript, Kotlin, Python, Rust]
- Soru-Cevap: BoolQ, PIQA, TriviaQA
- Doğal Dil: ARC-Challenge, HellaSwag, MMLU, WinoGrande
- Matematiksel Nedenler: GSM8K, MATH
Kodlama karşılaştırma sonuçları
Karşılaştırma | 2B | 2 Mr (1,1) | 7 Mr | 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 |
HumanEval Tek Satır | 78,4 | 79,3 | 76,1 | 68,3 | 77,4 |
HumanEval Çok Satırlı | 51,4 | % | 58,4 | 20,1 | 23,7 |
BC HE C++ | 24,2 | % | 32,9 | 42,2 | 46,6 |
BC HE C# | 10.6 | 26,1 | 22,4 | 26,7 | 54,7 |
BC HE Go | % | % | 21,7 | 28,6 | 34,2 |
BC HE Java | 29,2 | 29,8 | % | 48,4 | 50,3 |
BC HE JavaScript | 21,7 | % | 39,8 | % | 48,4 |
BC HE Kotlin | % | 32,3 | 39,8 | 51,6 | 47,8 |
BC HE Python | 21,7 | 36,6 | 42,2 | 48,4 | % |
BC HE Pas | 26,7 | 24,2 | 34,1 | % | 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 | % |
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 |
BC MBPP JavaScript | 45,3 | % | 58,2 | 61,4 | 61,4 |
BC MBPP Kotlin | 46,8 | 49,7 | 54,7 | % | 62,6 |
BC MBPP Python | 38,6 | 52,9 | 59,1 | % | 60,2 |
BC MBPP Pas | 45,3 | 47,4 | 52,9 | 53,5 | 52,3 |
Doğal dil karşılaştırmaları (7 milyar modelde)
Etik ve güvenlik
Etik ve güvenlik değerlendirmeleri
Değerlendirme yaklaşımı
Değerlendirme yöntemlerimiz arasında, yapılandırılmış değerlendirmeler ve ilgili içerik politikalarına yönelik şirket içi genel değerlendirmeler yer alır. Kırmızı ekip oluşturma, her biri farklı hedeflere ve insan değerlendirme metriklerine sahip farklı ekipler tarafından yürütülmüştür. Bu modeller etik ve güvenlikle ilgili bir dizi farklı kategoriye göre değerlendirildi. Bu kategorilerden bazıları:
İçerik güvenliği ve temsili zararları kapsayan istemlerde gerçek kişiler tarafından yapılan değerlendirmeler. Değerlendirme yaklaşımı hakkında daha fazla bilgi için Gemma modeli kartı bölümüne bakın.
Otonom bilgisayar korsanlığı becerilerini test etmeye ve olası zararların sınırlandırılmasını sağlamaya odaklanarak siber suç yeteneklerinin özel test edilmesi.
Değerlendirme sonuçları
Etik ve güvenlik değerlendirmelerinin sonuçları; çocuk güvenliği, içerik güvenliği, temsili zararlar, ezberleme ve büyük ölçekli zararlar gibi kategoriler için dahili politikaları karşılamak için kabul edilebilir eşikler dahilindedir. Daha ayrıntılı bilgi için Gemma modeli kartı bölümüne bakın.
Model kullanımı ve sınırlamalar
Bilinen sınırlamalar
Büyük Dil Modellerinin (LLM) eğitim verilerine ve teknolojinin doğal kısıtlamalarına dayalı sınırlamaları vardır. LLM'lerin sınırlamaları hakkında daha fazla ayrıntı için Gemma modeli kartı bölümüne bakın.
Etik değerlendirmeler ve riskler
Büyük dil modellerinin (LLM) geliştirilmesi, çeşitli etik kaygıları beraberinde getirmektedir. Bu modelleri geliştirirken birçok unsuru dikkatlice değerlendirdik.
Model ayrıntıları için lütfen Gemma modeli kartındaki aynı tartışmaya bakın.
Kullanım amacı
Başvuru
Code Gemma modelleri, BT ve PT modelleri arasında farklılık gösteren geniş bir uygulama yelpazesine sahiptir. Aşağıdaki potansiyel kullanım listesi tam kapsamlı değildir. Bu listenin amacı, model yaratıcılarının model eğitimi ve geliştirme sürecinin bir parçası olarak değerlendirdiği olası kullanım alanları hakkında bağlamsal bilgiler sağlamaktır.
- Kod Tamamlama: PT modelleri, bir IDE uzantısıyla kodu tamamlamak için kullanılabilir
- Kod Oluşturma: BT modeli, bir IDE uzantısıyla veya bir IDE uzantısı olmadan kod oluşturmak için kullanılabilir.
- Kod Sohbeti: BT modeli, kodlamanın bahsedildiği sohbet arayüzlerini destekleyebilir.
- Code Education: BT modeli etkileşimli kod öğrenme deneyimlerini destekler, söz dizimi düzeltmeye yardımcı olur veya kodlama uygulaması sağlar
Avantajları
Bu model ailesi, piyasaya sürüldüğü tarihte benzer boyutlu modellere kıyasla Sorumlu AI geliştirme için sıfırdan tasarlanmış yüksek performanslı, açık kod odaklı büyük dil modeli uygulamaları sağlar.
Bu belgede açıklanan kodlama karşılaştırmalı değerlendirme metriklerini kullanan bu modellerin, karşılaştırılabilir boyuttaki diğer açık model alternatiflerine kıyasla üstün performans sağladıklarını göstermiştir.