StarCoder

StarCoder, 80'den fazla programlama dili üzerinde eğitilmiş güçlü bir 15B parametreli modeldir. Hugging Face'in açık kaynaklı modelini kullanarak kodun ortasını yüksek doğrulukla oluşturun, tamamlayın veya doldurun.

Yapay Zekaya Git
StarCoder cover

StarCoder Hakkında

Yeni Nesil Kod Üretimi Modeli

StarCoder, 80'den fazla programlama dilinde kaynak kodu oluşturmak ve tamamlamak için tasarlanmış, BigCode projesi tarafından geliştirilen büyük bir dil modelidir. 15,5 milyar parametresi ve ara doldurma eğitimine odaklanmasıyla 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 Tasarlandı

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 için erişilebilirdir.

Özellikler ve Yetenekler

Çoklu Dil Desteği

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

Ortadaki Boşluğu Doldurma Hedefi

Geleneksel soldan sağa oluşturmanın aksine, StarCoder ortadaki boşluğu doldurma (FIM) görevlerini destekler. Bu, geliştiricilerin mevcut bölümler arasına eksik kod bloklarını eklemelerine olanak tanıyarak otomatik tamamlama ve kod parçacığı oluşturma esnekliğini artırır.

Teknik Öne Çıkanlar

Gelişmiş Model Mimarisi

StarCoder, Çoklu Sorgu Dikkatli GPT-2 mimarisini ve 8192 jetonluk geniş bir bağlam penceresini kullanır. Uzun, yapılandırılmış kod dizilerini anlamak ve oluşturmak için optimize edilmiştir ve bu da onu gerçek dünyadaki 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 adet A100 GPU kullanılarak geliştirildi. Veri kümesi, devre dışı bırakılabilen içerikleri hariç tutacak şekilde filtrelendi ve yalnızca izin verilen lisanslı kodları içeriyor.

Kullanım Örnekleri ve Uygulamalar

Kod Tamamlama ve Oluşturma

StarCoder, yeni işlevler oluşturabilir, tamamlanmamış kodları tamamlayabilir ve kalıp veya tekrarlayan mantık yazımına yardımcı olabilir. Geliştirme iş akışlarını prototiplemek, öğrenmek ve otomatikleştirmek için kullanışlı 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 kod yazarak Hugging Face Transformers üzerinden doğrudan kullanabilirler. Yerel veya bulut dağıtımı için GPU hızlandırma özelliğiyle tamamen erişilebilirdir.

Lisanslama ve Sorumlu Kullanım

OpenRAIL-M Lisansı

StarCoder, BigCode OpenRAIL-M lisansı altında yayınlanmaktadır. Eğitim verileri açık lisanslı koddan elde edilmiş olsa da, kullanıcılar üretilen kodu kullanırken uygun atıfları sağlamaktan ve lisans gerekliliklerine 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 (prompted)
  • MBPP (pass@1): 0.527
  • MultiPL (Java, C++, Go): Competitive across multiple languages

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

Alternatif Araçlar