CodeGemma model kartı

Model sayfası: CodeGemma

Kaynaklar ve teknik belgeler:

Kullanım Şartları: Şartlar

Yazarlar: Google

Model bilgileri

Model özeti

Açıklama

CodeGemma, Gemma'nın üzerine kurulmuş hafif bir açık kod modeli ailesidir. CodeGemma modelleri, yalnızca metinden metne ve koddan koda çözümleyiciden oluşan modellerdir. kod tamamlamada uzmanlaşmış 7 milyar önceden eğitilmiş bir varyant olarak sunulmaktadır için 7 milyar parametreye sahip, parametreden ayarlanmış bir varyant olan kod oluşturma görevlerinin Kod sohbeti ve talimatı takip edenin yanı sıra 2 milyar parametreli önceden eğitilmiş bir varyant kullanabilirsiniz.

Girişler ve çıkışlar

  • Giriş: Önceden eğitilmiş model varyantları için: kod öneki ve isteğe bağlı olarak son ek kod tamamlama ve oluşturma senaryoları veya doğal dil metni/istemi için Talimat ayarlanmış model varyantı için: doğal dil metni veya istem.

  • Çıkış: Önceden eğitilmiş model varyantları için: "ortayı doldur" kodu tamamlama, kod ve doğal dil. Talimat ayarlı 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'yı kullanan CodeGemma 2B ve 7B önceden eğitilmiş varyantlar 500 ila 1000 milyar jeton daha fazla eğitime eklendi. açık kaynak matematik veri kümelerinden elde edilen ve yapay olarak üretilen dil verileri girin.

Eğitim verileri işleme

CodeGemma'yı eğitmek için aşağıdaki veri ön işleme teknikleri uygulandı:

  • FIM - Önceden eğitilmiş CodeGemma modelleri ortadaki yeri 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-90 FIM ücreti.
  • Bağımlılık Grafiği tabanlı paketleme ve Ünite Testi tabanlı Sözcüksel Paketleme teknikleri: Modellemeyi gerçek hayattaki uygulamalarla daha iyi hale getirmek için, en alakalı kaynağı bir araya getirmek için proje/depo düzeyinde örnekler dosyalar oluşturun. Spesifik olarak, iki buluşsal yöntemden yararlandık bağımlılık grafiğine dayalı sarmalama ve birim testine dayalı sözcüksel paketleme.
  • Belgeleri ön eke, alt bölümlere ve sonekin söz dizimsel olarak daha doğal bir şekilde başlamasını sağlamak için bir nokta olduğudur.
  • Güvenlik: Gemma'ya benzer şekilde titiz güvenlik filtreleri uyguladık. Kişisel verileri filtreleme, CSAM filtreleme ve içeriğe göre diğer filtreleme ve güvenliği sağlamak için politikalarımıza bakın.

Uygulama bilgileri

Eğitim sırasında kullanılan donanım ve çerçeveler

Gemma gibi, CodeGemma, Google'ın yeni nesli Tensör İşleme Birimi (TPU) donanım (TPUv5e), JAX ve ML kullanarak Yollar.

Değerlendirme bilgileri

Karşılaştırma sonuçları

Değerlendirme yaklaşımı

Karşılaştırma sonuçlarını kodlama

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 51,0 58,4 20:1 23,7
BC HE C++ 24,2 19,9 32,9 42,2 46,6
BC HE C Numarası 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
BC HE JavaScript 21,7 28,0 39,8 46,0 48,4
BC HE Kotlin 28,0 32,3 39,8 51,6 47,8
BC HE Python 21,7 36,6 42,2 48,4 54,0
BC HE Rust 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 Numarası 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
BC MBPP JavaScript 45,3 45,0 58,2 61,4 61,4
BC MBPP Kotlin 46,8 49,7 54,7 59,9 62,6
BC MBPP Python 38,6 52,9 59,1 62,0 60,2
BC MBPP Past 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 BT'yi karşılaştıran çubuk grafik. CodeGemma, güçlü doğal dil anlayışını koruduğundan, üç model de aşağı yukarı karşılaştırılabilir.

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 kurum içi değerlendirmeler yer alır. test edilmesine yardımcı olur. Kırmızı takım çalışması, her biri farklı hedeflere ve insanlar tarafından yapılan değerlendirme metriklerine sahip farklı ekipler. Bu modeller, şirketle alakalı çeşitli kategorilerle karşılaştırılarak etik ve güvenlik şunları kapsar:

  • İçerik güvenliği ve temsili konuları ele alan istemler üzerinde gerçek kişiler tarafından yapılan değerlendirmeler zararlar. Bkz. Gemma model kartı hakkında ayrıntılı bilgi edinmek için okumaya devam edin.

  • Özerk test etmeye odaklanan siber saldırı özelliklerinin özel testleri ve olası zararların sınırlı olmasını sağlamayı amaçlıyoruz.

Değerlendirme sonuçları

Etik ve güvenlik değerlendirmelerinin sonuçları kabul edilebilir eşikler dahilindedir toplantı için dahili politikalar içerik güvenliği, temsili zararlar ve diğer engelleri büyük ölçekli zararlar olabilir. Bkz. Gemma model kartı inceleyebilirsiniz.

Model kullanımı ve sınırlamaları

Bilinen sınırlamalar

Büyük dil modelleri (LLM'ler), eğitim verilerine ve teknolojinin doğuştan gelen sınırlamalarıdır. Bkz. Gemma model kartı göz atın.

Etik olarak dikkat edilmesi gereken hususlar ve riskler

Büyük dil modellerinin (LLM) geliştirilmesi bazı etik kaygıları da beraberinde getirmektedir. Bu geliştirme yöntemlerini oluştururken birden çok yönünü dikkatle değerlendirdik modeller.

Lütfen aynı tartışmaya bakın tıklayın.

Kullanım amacı

Başvuru

Code Gemma modellerinin, BT ve yazılım sistemleri arasında farklılık gösteren çok çeşitli uygulamaları vardır. PT modelleri. Aşağıdaki olası kullanımlar listesi tam kapsamlı değildir. İlgili içeriği oluşturmak için kullanılan Bu listenin amacı, olası denemelerle ilgili bağlamsal bilgiler model oluşturanların model eğitiminin bir parçası olarak değerlendirdiği kullanım bahsedeceğim.

  • Kod Tamamlama: PT modelleri, IDE uzantısıyla kodu tamamlamak için kullanılabilir
  • Kod Oluşturma: BT modeli, IDE (Entegre Geliştirme Ortamı) ile veya IDE'siz olarak kod oluşturmak için kullanılabilir uzantı
  • Kod Konuşması: BT modeli, projenin yolunda gittiğinden kod
  • Kod Eğitimi: BT modeli, etkileşimli kod öğrenme deneyimlerini destekler veya kodlama uygulaması sunar.

Avantajları

Bu model ailesi, piyasaya sürüldüğünde yüksek performans sunar. Tümüyle tasarlanan kod odaklı büyük dil modeli uygulamaları benzer boyuttaki modellere kıyasla Sorumlu Yapay Zeka geliştirmesinde yararlı olabilir.

Bu belgede açıklanan kodlama karşılaştırma değerlendirme metrikleri kullanılarak modellerin, benzer boyutlardaki diğer benzer boyutlara kıyasla daha iyi performans açık model alternatiflerini kullanmayı öğreteceğim.