StarCoder

StarCoder is a powerful 15B parameter model trained on 80+ programming languages. Generate, complete, or fill in the middle of code with high accuracy using Hugging Face’s open-source model.

Yapay Zekaya Git
StarCoder cover

StarCoder Hakkında

Yeni Nesil Kod Üretim Modeli

StarCoder, 80'den fazla programlama dilinde kaynak kodu oluşturmak ve tamamlamak için tasarlanmış, BigCode projesi tarafından oluşturulmuş büyük bir dil modelidir. 15,5 milyar parametre ve ortadaki boşluğu doldurma eğitimine odaklanan StarCoder, gelişmiş kod oluşturma görevlerini destekler ve geliştiricilere yüksek kaliteli, bağlam farkında tamamlamalar konusunda yardımcı olur.

Geliştiriciler ve Araştırmacılar için Üretildi

Modern donanımlarda verimli bir şekilde çalışacak şekilde tasarlanan ve Hugging Face aracılığıyla dağıtılan StarCoder, hem kod yardımı arayan geliştiriciler hem de açık kaynaklı kodlama modellerini değerlendiren araştırmacılar tarafından erişilebilirdir.

Özellikler ve Yetenekler

Multi-Language Support

StarCoder, yinelenen veri kümesi The Stack (v1.2) üzerinde eğitildi ve 80'den fazla programlama dilinden kod içeriyor. Python, JavaScript, C++ veya niş dillerde çalışıyor olun, model ortamınıza uyum sağlayabilir.

Ortadakini Doldurma Hedefi

Geleneksel soldan sağa oluşturmanın aksine, StarCoder ortadakini doldur (FIM) görevlerini destekler. Bu, geliştiricilerin var olan bölümler arasına eksik kod blokları eklemesine olanak tanır ve otomatik tamamlama ve kod parçacığı oluşturmanın esnekliğini artırır.

Teknik Öne Çıkanlar

Gelişmiş Model Mimarisi

StarCoder, Çoklu Sorgu Dikkatine sahip GPT-2 mimarisini ve büyük 8192-token bağlam penceresini kullanır. Uzun, yapılandırılmış kod dizilerini anlamak ve üretmek için optimize edilmiştir ve bu da onu gerçek dünya yazılım geliştirme görevleri için ideal hale getirir.

Büyük Eğitim Veri Seti

1 trilyondan fazla token üzerinde eğitilen StarCoder, 24 günlük bir eğitim döngüsü boyunca 512 A100 GPU kullanılarak oluşturuldu. Veri kümesi, devre dışı bırakma içeriğini hariç tutmak için filtrelendi ve yalnızca izin verilen lisanslı kodu içeriyor.

Use Cases and Applications

Kod Tamamlama ve Oluşturma

StarCoder yeni işlevler üretebilir, tamamlanmamış kodları tamamlayabilir ve kalıp veya tekrarlayan mantık yazmada yardımcı olabilir. Geliştirme iş akışlarını prototipleme, öğrenme ve otomatikleştirme için yararlı bir araçtır.

Araştırma ve Deney

BigCode OpenRAIL-M lisansı altında açık erişimli bir model olan StarCoder, akademik araştırma, kıyaslama ve kodlama görevleri için alt akış uygulamaları oluşturma için idealdir.

Transformatörlerle Uyumlu

Geliştiriciler, StarCoder'ı yalnızca birkaç satır kodla Hugging Face Transformers üzerinden doğrudan kullanabilirler. Yerel veya bulut dağıtımı için GPU hızlandırmasıyla tamamen erişilebilirdir.

Lisanslama ve Sorumlu Kullanım

OpenRAIL-M Lisansı

StarCoder, BigCode OpenRAIL-M lisansı altında yayınlanmıştır. Eğitim verileri açık lisanslı koddan kaynaklansa da, kullanıcılar üretilen kodu kullanırken uygun atıfları sağlamaktan ve lisans gereksinimlerine uymaktan sorumludur.

Atıf ve Şeffaflık

Oluşturulan herhangi bir kod parçasının kökenini izlemek için aranabilir bir dizin mevcuttur ve bu sayede geliştiriciler gerektiğinde uygun atıflarda bulunabilirler.

Değerlendirme ve Performans

Rekabetçi Ölçütler

StarCoder, aşağıdakiler de dahil olmak üzere kodlama kıyaslamalarında güçlü bir performans göstermiştir:

  • HumanEval (pass@1): 0,408 (istendi)
  • MBPP (geçiş@1): 0,527
  • MultiPL (Java, C++, Go): Birden fazla dilde rekabetçi

Bu puanlar, modelin genel amaçlı programlama görevlerindeki etkinliğini vurgular.

Alternatif Araçlar