CodeGemma model kartı

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ı

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)

Çeşitli dil özelliği metriklerinde Gemma, CodeGemma PT ve CodeGemma IT'yi karşılaştıran çubuk grafik. Her üç model de genel hatlarıyla karşılaştırılabilir ve CodeGemma, güçlü bir doğal dil anlama imkânına sahiptir.

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.