Tekrarlanabilirliği artırmak ve diğerlerini yayınlanmış çalışmaları daha kolay geliştirmeleri için güçlendirmek amacıyla, bir ML kodu eksiksizliği kontrol listesi sunuyoruz. ML Kodu Eksiksizliği Kontrol Listesi, kod deposunu, içinde sağlanan komut dosyalarına ve yapıtlara dayalı olarak değerlendirir.
Tanıtım
Geçen yıl, Joel Pino büyük AE konferanslarında (NeurIPS, ICML,…) sunulan tekrarlanabilir araştırmaları kolaylaştırmak için bir tekrarlanabilirlik kontrol listesi yayınladı. Kontrol listesindeki öğelerin çoğu, kağıdın bileşenlerine odaklanır. Bu kontrol listesindeki maddelerden biri “kaynak koduna bir bağlantı sağlayın”, ancak bunun dışında birkaç öneride bulunuldu.
En iyi uygulamalar, artık resmi NeurIPS 2020 kod gönderme sürecinin bir parçası olan ve uygun gördükleri şekilde gözden geçirenler tarafından kullanılabilecek olan ML Kodu Eksiksizliği Kontrol Listesi'nde özetlenmiştir.
ML Eksiksiz Kontrol Listesi
M Code Completeness Kontrol Listesi, kod deposunu aşağıdakiler için kontrol eder:
- Bağımlılıklar - Deponun, ortamın nasıl kurulacağına ilişkin bağımlılık bilgileri veya yönergeleri var mı?
- Eğitim Senaryoları - Depo, belgede açıklanan modelleri eğitmek / sığdırmak için bir yol içeriyor mu?
- Değerlendirme Senaryoları - Depo, eğitilen model(ler)in performansını hesaplamak veya modeller üzerinde deneyler çalıştırmak için bir komut dosyası içeriyor mu?
- Önceden Eğitilmiş Modeller - Depo, önceden eğitilmiş model ağırlıklarına ücretsiz erişim sağlıyor mu?
- Sonuçlar - depo, ana sonuçların bir tablosunu / grafiğini ve bu sonuçları yeniden oluşturmak için bir komut dosyası içeriyor mu?
Her depo 0 (hiçbiri yok) ila 5 (hepsi var) arasında onay alabilir. Her öğe için kriterler hakkında daha fazla bilgi Github deposunda bulunabilir.
Kontrol listesi öğelerinin daha faydalı veri havuzlarına katkıda bulunduğuna dair kanıt nedir?
Topluluk genellikle GitHub yıldızlarını havuzun kullanışlılığı için bir proxy olarak kullanır. Bu nedenle, ML eksiksizlik kontrol listesinde daha yüksek puana sahip depoların da daha fazla GitHub yıldızına sahip olması bekleniyor. Bu hipotezi test etmek için, NeurIPS 2019 belgelerinde resmi uygulamalar olarak gönderilen 884 GitHub deposu vardı. Bu 884 deponun %25'lik bir alt kümesi rastgele seçildi ve ML eksiksizliği kontrol listesinde manuel olarak kontrol edildi. Bu örnek NeurIPS 2019 GitHub depolarını, ML kodunun eksiksizliği kontrol listesinde sahip oldukları onay sayısına göre grupladılar ve her gruptaki GitHub medyan yıldızlarını eşlediler. Sonuç aşağıdadır:
0 onay kutusuna sahip NeurIPS 2019 depoları GitHub'da ortalama 1,5 yıldıza sahipti. Buna karşılık, 5 onay kutusuna sahip depoların medyanı 196.5 GitHub yıldızına sahipti. Repoların sadece %9'unda 5 kene vardı ve repoların çoğunda (%70) 3 veya daha az tik vardı. Wilcoxon sıralama toplamı testi yapıldı ve 5 kene sınıfındaki yıldız sayısının, 5'e karşı 4 (p.değerinin sınır olduğu) dışındaki tüm diğer sınıflardan önemli ölçüde (p.değeri <1e-4) daha yüksek olduğu bulundu. 0.015'te). Bu rakamın verilerini ve kodunu Github deposunda görebilirsiniz.
Bu ilişkinin daha geniş kapsamlı olup olmadığını test etmek için, README deposundan ve ilişkili koddan bir kontrol listesinin hesaplanmasını otomatikleştirmek için bir komut dosyası oluşturuldu. Ardından, 2019'da yayınlanan tüm ML makaleleri için 884 NeurIPS 2019 deposunun tamamını ve daha geniş 8926 kod deposu kümesini yeniden analiz ettik. Her iki durumda da uzmanlar, istatistiksel olarak anlamlı bir şekilde (p.değeri <1e-4) kenelerden monotonik olarak artan medyan yıldızlarla niteliksel olarak özdeş bir sonuç elde ettiler. Son olarak, sağlam doğrusal regresyon kullanarak, GitHub yıldızları üzerinde en büyük olumlu etkiye sahip olan önceden eğitilmiş modeller ve sonuçlar bulduk.
Bu, araştırmacıları ML eksiksizlik kontrol listesinin gerektirdiği tüm bileşenleri dahil etmeye teşvik etmenin daha faydalı veri havuzlarına yol açacağına ve kontrol listesindeki puanın daha kaliteli gönderileri gösterdiğine dair analistler tarafından faydalı bir kanıt olarak kabul edilir.
Şu anda uzmanlar, önerilen 5 kontrol listesi öğesinin, havuzun popülaritesindeki tek ve hatta en önemli faktör olduğunu iddia etmemektedir. Bilimsel katkı boyutu, pazarlama (ör. blog gönderileri ve Twitter gönderileri), belgeler (kapsamlı README'ler, öğreticiler ve API belgeleri), kod kalitesi ve önceki çalışmalar gibi diğer faktörler popülerliği etkileyebilir.
5 onay kutulu bazı NeurIPS 2019 depo örnekleri:
Uzmanlar, kontrol listesini mümkün olduğunca genel hale getirmeye çalışsalar da, örneğin teorik veya belge dizileri gibi her tür belgeye tam olarak uygulanamayabilir. Bununla birlikte, makalenin asıl amacı bir veri kümesini temsil etmek olsa bile, eğitim senaryoları, değerlendirme senaryoları ve sonuçları dahil olmak üzere temel modellerin yayınlanmasından yine de yararlanabilir.
Kullanmaya başla
Gözden geçirenlerin ve kullanıcıların depoda ne olduğunu anlamalarını ve uzmanların bunları doğru bir şekilde değerlendirmesini kolaylaştırmak için README.md dosyalarının yazılması, bağımlılıkların tanımlanması ve önceden eğitilmiş modeller, veri kümeleri ve sonuçların serbest bırakılması için bir en iyi uygulamalar koleksiyonu sağlanmıştır. Kullanıcılarınız için daha fazla bağlam ve netlik sağlamak için bu 5 öğeyi havuzunuzda net bir şekilde tanımlamanız ve bunları belgeler ve skor tabloları gibi harici kaynaklara bağlamanız önerilir. Bunlar, NeurIPS 2020'ye kod göndermek için resmi yönergelerdir.