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ı
- 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 Meydan Okuması, HellaSwag, MMLU, WinoGrande
- Matematik: GSM8K, MATH
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)
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.