Yazılım projelerinin kalbi koddan ibaret değil. Geliştiriciler arasındaki işbirliğinin merkezinde, projeyi açıklayan README dosyaları, hata raporlarını paylaşılan issue’lar ve kod incelemelerindeki tartışmalar yer alır. Bu içeriklerin büyük çoğunluğu İngilizce olsa da, dünya çapında milyonlarca geliştirici kendi dillerinde de yazılım geliştiriyor. GitHub’ın yeni yayınladığı GitHub Çok Dilli Depolar Veri Seti, araştırmacıların ve geliştiricilerin İngilizce dışındaki dillerde de aktif olan açık kaynak projeleri keşfetmesini kolaylaştırıyor.
Veri seti, geliştiricilerin ve yapay zeka araştırmacılarının çok dilli geliştirme ekosistemini anlamasına yardımcı olmak amacıyla tasarlandı. Projede yer alan veriler, README dosyaları, en çok yorum alan issue ve pull request’lerden oluşan metinlerin dil sınıflandırmasını içeriyor. Örneğin, issue’larda en sık kullanılan ikinci dil olan Korece, README dosyalarında beşinci sırada yer alıyor. Portekizce ise İngilizce olmayan README’lerin en yaygın ikinci dili olarak 3 milyondan fazla depo içeriyor.
Veri setinde neler var?
GitHub Çok Dilli Depolar Veri Seti, doğrudan depo içeriklerini değil, meta verileri kapsayan bir kaynak. Bu sayede araştırmacılar ve geliştiriciler, hangi depoların çok dilli işbirliğine ev sahipliği yaptığını hızlıca tespit edebiliyor. Veri seti, 40 milyondan fazla depoda 80 milyonu aşkın sınıflandırma satırını içeriyor. Her bir depoya ait aşağıdaki bilgiler sunuluyor:
- README, en çok yorum alan issue ve en çok yorum alan pull request’in dil sınıflandırması. Her metnin ilk 150 karakteri kullanılıyor ve 20 karakterden kısa olanlar hariç tutuluyor.
- Üç farklı sınıflandırıcıdan alınan dil etiketleri: fastText, gcld3 ve lingua-py. Her sınıflandırıcı için güven puanı da sunuluyor ve sadece 0.5’in üzerinde güven puanı olan sınıflandırmalar dahil ediliyor.
- Depo meta verileri: oluşturulma tarihi, disk kullanımı, yıldız sayısı, çatal sayısı, temel programlama dili, SPDX lisansı, issue ve pull request sayıları ve veri setinin kaydedildiği tarih.
Bu veri setinde dikkat çeken bir özellik, üç sınıflandırıcının sonuçlarının tek bir etikete indirgenmemesi. Farklı sınıflandırıcılar, özellikle kaynakça dillerde, farklı kapsam ve güven aralıklarına sahip olabiliyor. Bu sayede kullanıcılar, ihtiyaçlarına göre hassasiyet ve kapsam arasında tercih yapabiliyor. Örneğin, Yunan dilinde yüksek hassasiyetli bir alt küme oluşturmak isteyenler, tüm sınıflandırıcıların aynı sonucu vermesini şart koşabilir. Romantik dillerde geniş bir kapsamda araştırma yapmak isteyenler ise tek bir sınıflandırıcıyı yeterli görebilir.
Bu veri setiyle neler yapılabilir?
GitHub’ın yeni yayınladığı bu veri seti, genel web metinlerinden farklı olarak, geliştirici topluluklarının çok dilli kullanımını anlamaya yönelik çalışmalarda büyük bir avantaj sunuyor. İşte bu veri setiyle yapılabilecek bazı uygulamalar:
- Depo keşfi: Belirli dillerde yazılmış geliştirici dokümantasyonu veya işbirliğine sahip depoları bulmak.
- Araştırma: İngilizce dışındaki dillerde geliştiricilerin issue, pull request ve README’leri nasıl kullandığını incelemek.
- Yapay zeka araçlarının değerlendirilmesi: Çok dilli kodlama araçları, dokümantasyon üreteçleri veya inceleme asistanları için değerlendirme setleri oluşturmak.
- Kapsayıcı karar alma: Yeni geliştirici araçları ve yapay zeka özellikleri için dil kapsamını genişletme kararlarını veri temelli olarak desteklemek.
- Temsil ölçümü: Avrupa ve diğer az temsil edilen dillerin açık kaynak ekosistemindeki varlığını ölçmek.
Sınırlamalar neler?
Dil sınıflandırma, özellikle yazılım depolarında, oldukça zorlu bir süreç. Depo metinleri genellikle kısa olabiliyor ve rozetler, şablonlar, kurulum komutları, kod parçaları, kullanıcı adları veya karma dil içerikleri içerebiliyor. 150 karakterlik bir örnek, tüm deponun dilini temsil etmeyebilir. Ayrıca sınıflandırıcılar, özellikle kaynakça dillerde, farklı kapsam ve güven aralıklarına sahip olabiliyor.
Bu nedenle, bu veri seti dil sınıflandırmaları için kesin bir referans olarak kullanılmamalı. Bunun yerine, saydam bir keşif aracı olarak değerlendirilmeli. Kullanıcılar, sınıflandırmaları, güven puanlarını ve kaynakları inceleyerek kendi araştırma veya geliştirme akışlarına en uygun hassasiyet ve kapsamı seçebilir.
Ayrıca, bu veri seti, depo sahipleri, katkıda bulunanlar veya topluluklar hakkında hassas bilgilerin çıkarılması için kullanılmamalı. Veriler, kişi düzeyinde değil, depo düzeyinde meta verilerden oluşuyor.
Neden açık çok dilli veri önemli?
Avrupa dillerinin büyük çoğunluğu, yapay zeka sistemlerinin eğitiminde ve değerlendirilmesinde yeterince temsil edilmiyor. Bu durum, yapay zeka araçlarının bazı geliştiricilere, dillere ve topluluklara daha iyi çalışmasını sağlarken, diğerlerini geride bırakma riskini doğuruyor. Açık veri setleri, bu boşluğu doldurma potansiyeline sahip.
GitHub’ın yayınladığı bu veri seti, yazılım geliştirme dilinin genel web metinlerinden farklı olduğunu vurguluyor. README’ler, issue’lar ve pull request’ler, geliştiricilerin gerçek iş akışlarını yansıtıyor: kurulum talimatları, hata raporları, özellik istekleri, kod incelemeleri ve topluluk normları. Bu bağlam, geliştiricilerin gerçek çalışma şekillerini daha iyi anlayan yapay zeka sistemleri oluşturulmasına yardımcı olabilir.
Bu veri seti, araştırmacılara, açık kaynak geliştiricilerine ve model oluşturucularına, yazılım geliştirmede dil temsilini incelemek için yeni bir araç sunuyor. Eksiklikleri belirlemek, daha iyi değerlendirme setleri oluşturmak ve Avrupa’dan başlayarak dünya çapındaki geliştiriciler için daha kapsayıcı yapay zeka araçları geliştirmek için kullanılabilir. Ayrıca, geliştiriciler için yapay zeka sistemleri oluştururken toplulukların, dillerin ve iş akışlarının dikkate alınması gerektiğine dair daha geniş bir ilkeyi de yansıtıyor.
Gelecek planları
GitHub, veri setini ve çok dilli yapay zekanın önemini tartışmak üzere 16 Haziran’da Açık Yenilik Diyalog Merkezi’nde (Open Innovation Dialogue Hub) gerçekleşecek etkinlikte katılımcılarla buluşacak. Etkinlik, Microsoft Açık Yenilik Merkezi tarafından organize ediliyor.
Yapay zeka özeti
GitHub’ın yayınladığı 80 milyon satırlık çok dilli veri seti, araştırmacıların ve geliştiricilerin İngilizce olmayan dillerde kodlama ekosistemini keşfetmesini sağlıyor. Nasıl kullanılır, neler içerir?