Bu bölümde eğitim hattı ayrıntılı bir şekilde açıklanmaktadır.
Giriş ardışık düzenini optimize etme
Özet: Girişe bağlı ardışık düzenlerin nedenleri ve müdahaleleri büyük ölçüde göreve bağlıdır. Bir profil aracı kullanın ve sık karşılaşılan sorunlara dikkat edin.
Girişe bağlı ardışık düzenleri teşhis etmek için uygun bir profilleyici (ör. aşağıdakilerden biri) kullanın:
- JAX için Perfetto
- TensorFlow için TensorFlow profiler.
Sonuç olarak, belirli nedenler ve müdahaleler büyük ölçüde göreve bağlıdır. Daha kapsamlı mühendislik sorunları (örneğin, disk ayak izini en aza indirmek) giriş ardışık düzeni performansını olumsuz etkileyebilir.
Girişe bağlı ardışık düzenlerin yaygın nedenleri şunlardır:
- Veriler, eğitim süreciyle birlikte değil ve G/Ç gecikmesine neden oluyor. Örneğin, eğitim verilerinin bir ağ üzerinden okunması G/Ç gecikmesine neden olabilir.
- Pahalı online veri ön işleme. Çevrimdışıyken önceden işlemeyi ve sonuçları kaydetmeyi düşünebilirsiniz.
- Veri ardışık düzeninin önceden getirilmesini engelleyen istenmeyen senkronizasyon engelleri. Örneğin, metrikleri CommonLoopUtils içindeki cihaz ve ana makine arasında senkronize ederken kullanabilirsiniz.
Girişe bağlı ardışık düzenler için aşağıdaki müdahaleleri yapmanızı öneririz:
- Örnekleri önceden getirmek için araç giriş ardışık düzeni (örneğin, tf.data.Dataset.preFetch).
- Kullanılmayan özellikleri ve meta verileri, ardışık düzenin başında mümkün olduğunca erken kaldırın.
- Örneğin, tf.data hizmetini kullanarak giriş ardışık düzeni için örnek oluşturan işlerin sayısını artırın.
Model performansını değerlendirme
Özet: Değerlendirmeyi eğitimden daha büyük toplu boyutlarda çalıştırın. Değerlendirmeleri normal zaman aralıklarında değil, normal adım aralıklarında gerçekleştirin.
Değerlendirme ayarları
Modellerinizin performansını değerlendirmek için aşağıdaki ayarları kullanabilirsiniz:
- Online değerlendirme: Model, bir üretim ortamında tahminler sunarken metrikler toplayın. Online değerlendirme, modelin kullanım şekliyle eşleştiği için genellikle model kalitesinin en gerçekçi değerlendirmesini sağlar.
- Çevrimdışı değerlendirme: Model, üretim ortamını temsil eden çevrimdışı eğitim, doğrulama veya test kümelerinde çalıştırıldığında metrik toplayın. Soruna bağlı olarak, çevrimdışı değerlendirme oldukça karmaşık ve işlemsel açıdan maliyetli olabilir.
- Düzenli değerlendirmeler: Model eğitimi sırasında çevrimdışı değerlendirme için ve/veya çevrimdışı değerlendirmede kullanılan verilerin bir alt kümesi üzerinde olabilecek metrikler toplayın. Periyodik değerlendirmeler en pratik ve ekonomik seçenektir ancak üretim ortamını tam olarak temsil etmeyebilir. Eğitim sırasında alınan sinyalin güvenilirliğinden ödün vermeden çevrimdışı değerlendirme için uygun bir proxy kullanmayı deneyin.
Periyodik değerlendirmeler oluşturma
Eğitim sırasında aşağıdaki nedenlerden dolayı düzenli aralıklarla değerlendirme yapmanızı öneririz:
- Eğitimin ilerlemesini gerçek zamanlı olarak izlemek için.
- Geriye dönük model kontrol noktası seçimini kolaylaştırmak için.
- Eğitimin sonundaki eğitim eğrilerini incelemek için.
En basit yapılandırma, aynı işlem örneğinde hem eğitim hem de düzenli değerlendirmeler yaparak eğitim ve değerlendirme arasında düzenli olarak geçiş yapmaktır. Bu durumda, değerlendirme yapmak için kullanılan grup boyutu, en az eğitim için kullanılan grup boyutu kadar büyük olmalıdır. Bunun nedeni, değerlendirme sırasında model etkinleştirmelerini sürdürmenizin gerekmemesidir. Böylece örnek başına işlem gereksinimlerini azaltır.
Zaman aralıkları yerine düzenli adım aralıklarında düzenli değerlendirmeler yapın. Zaman aralıklarına göre değerlendirme yapmak, özellikle eğitimin eğitim işlerinin önyargılarından, ağ gecikmesi sorunlarından ve bunun gibi sorunlardan rahatsız olabileceği durumlarda eğitim eğrilerini yorumlamayı zorlaştırabilir.
Doğrulama ve test metriklerindeki periyodiklik (karıştırılmış bir eğitim grubu, doğrulama grubu, test grubu bölmesi kullanırken) aşağıdakiler gibi uygulama hatalarını gösterebilir:
- Eğitim verileriyle çakışan test verileri.
- Eğitim verileri doğru şekilde karıştırılmıyor.
Düzenli adım aralıklarıyla değerlendirmek bu sorunları tespit etmeyi kolaylaştırabilir.
Değerlendirme grupları toplu boyutuna göre bölünemediğinde kısmi gruplar oluşabilir. Dolgu işlevinin örneklere ağırlık vermemesi için, dolgulu örneklerin doğru şekilde ağırlıklandırıldığından (toplu ortalamanın ortalama kayıpları hesaplayan örnekler üzerindeki ağırlıklı ortalamada olduğu gibi) emin olun. Çoğu zaman bu dolgulu örneklerin ağırlığını sıfır olarak verebilirsiniz.
Çevrimdışı analizi desteklemek için değerlendirme başına yeterli bilgi kaydedin. İdeal olarak, hata ayıklama açısından çok değerli olabilecek bazı bağımsız örneklerdeki tahminleri kaydedin. SavedModels gibi yapılar oluşturmak, değerlendirme işleri tamamlandıktan sonra anlık model denetimini kolaylaştırır.
Periyodik değerlendirme için örnek seçme
Periyodik değerlendirme işi, metrikleri tam çevrimdışı değerlendirmede makul bir sürede hesaplanacak kadar hızlı çalışmayabilir. Bu sorun genellikle düzenli değerlendirme için örnekleme verilerinin kullanılmasını gerektirir. Örneklenmiş veri kümesi oluştururken örnek boyutuyla ilgili sorunları ve dengesiz veri kümelerindeki özel sorunları göz önünde bulundurun.
Örnek boyutu
Periyodik iş tarafından kullanılan örneklenmiş veri kümesinde hesaplanan performansın, çevrimdışı değerlendirme grubunun tamamındaki performansla eşleştiğinden emin olun. Diğer bir deyişle, örneklenmiş veri kümesi ile tam veri kümesi arasında sapma olmadığından emin olun.
Periyodik değerlendirme için kullandığınız veri kümesi aşağıdakilerin ikisi de olmalıdır:
- Tamamıyla model tahminleri oluşturmak için yeterince küçüktür.
- Şunların her ikisini birden yapacak kadar büyük:
- Modeldeki iyileştirmeleri doğru bir şekilde ölçün. Yani ölçümler, etiket karmaşasından bunaltmamalıdır.
- Denemeler genelinde bu tür birden fazla değerlendirmeyi sırayla gerçekleştirin ve doğru tahminler üretmeye devam edin. Diğer bir deyişle, zaman içinde doğrulama grubuna uyarlanmayacak şekilde "beklemeye" alınmayacak kadar büyüktür. Ancak bu üzerine düşünmek pek pratik bir sorun değildir.
Dengesiz veri kümeleri
Dengesiz veri kümelerinde, nadir görülen azınlık sınıflarının performansı genellikle gürültülüdür. Az sayıda az sayıda örnek içeren veri kümelerinde doğruluk iyileştirmeleri hakkında daha fazla bilgi edinmek için doğru şekilde tahmin edilen örneklerin sayısını kaydedin. Örneğin, .05 hassasiyetinde iyileştirme işlemi kulağa heyecan verici gelebilir. Ancak iyileştirme, yalnızca bir örneğin daha doğru olması nedeniyle heyecan verici miydi?
Kontrol noktalarını kaydetme ve geriye dönük olarak en iyi kontrol noktasını seçme
Özet: Belirli sayıda adım için eğitim çalıştırın ve geriye dönük olarak koşudan en iyi kontrol noktasını seçin.
Derin öğrenme çerçevelerinin çoğu model işaretlemeyi desteklemektedir. Yani, modelin mevcut durumu diske düzenli olarak kaydedilir. Kontrol noktası, eğitim işinin örnek kesintilerini hesaplamaya dirençli olmasına olanak tanır. En iyi kontrol noktası, genellikle doğrulama kümesi performansı zaman içinde artmaya devam etmese de belirli bir değerde dalgalanma gösterirse son kontrol noktası değildir.
Eğitim sırasında şimdiye kadar görülen N adet en iyi kontrol noktasını takip etmek için ardışık düzeni ayarlayın. Eğitimin sonunda, model seçimi yalnızca en iyi kontrol noktasının seçilmesi anlamına gelir. Bu yaklaşıma geriye dönük optimum kontrol noktası seçimi denir. Deneme bütçesi önceden belirlediğinizden ve şimdiye kadar görülen en iyi N kontrol noktasını koruduğunuz için olası erken durdurma işlemlerini desteklemek genellikle gerekli değildir.
Deneme izlemeyi ayarlama
Özet: Farklı denemeleri izlerken çalışmadaki bir kontrol noktasının en iyi performansı ve çalışmanın kısa bir açıklaması gibi bazı temel bilgileri izleyin.
Deneme sonuçlarını bir e-tabloda izlemenizi öneririz. E-tablolarımız genellikle aşağıdaki sütunları içerir:
- Çalışma adı
- Çalışmanın yapılandırmasının depolandığı yerin bağlantısı.
- Çalışmanın notları veya kısa bir açıklaması.
- Çalışan deneme sayısı
- Çalışmadaki en iyi kontrol noktasının doğrulama kümesi performansı.
- Eğitimin başlatılması için gerekli olan yeniden oluşturma komutları veya gönderilmemiş değişikliklerin hangileri olduğuyla ilgili notlar.
En azından yukarıda listelenen bilgileri yakalayan uygun bir izleme sistemi bulun. İzlenmeyen denemeler de mevcut olmayabilir.
Toplu normalleştirme uygulama ayrıntıları
Özet: Günümüzde genellikle toplu normalleştirmeyi Katman Norm ile değiştirebilirsiniz. Ancak bu değiştirme işlemini yapamadığınız durumlarda, toplu boyutu veya ana makine sayısını değiştirirken hileli ayrıntılar bulabilirsiniz.
Toplu normalleştirme, geçerli grup yerine ortalamalarını ve sapmalarını kullanarak etkinleştirmeleri normalleştirir. Ancak, çoklu cihaz ayarında bu istatistikler, açıkça senkronize edilmediği sürece her cihazda farklılık gösterir. Anekdot içeren raporlar (çoğunlukla ImageNet'te yer alır) bu normalleştirilmiş istatistiklerin yalnızca ~64 örnek kullanarak hesaplanmasının uygulama sırasında daha iyi sonuç verdiğini gösterir. (Hayalet Toplu Normalleştirme açıklamasına bakın Daha uzun eğitin, daha iyi genelleştirin: Nöral ağların büyük bir toplu eğitiminde genelleştirme boşluğunu kapatın.) Toplam grup boyutunun ve toplu norm istatistiklerini hesaplamak için kullanılan örneklerin sayısının ayrılması, özellikle toplu boyut karşılaştırmaları için yararlıdır.
Hayalet grup normalleştirme uygulamaları, cihaz başına toplu boyutun, sanal grup boyutundan büyük olduğu her zaman doğru şekilde işlemez. Bu durumda, grup norm istatistiği örneklerinin doğru sayısını almak için her cihazda grubu alt örneklere eklemeniz gerekir.
Test modu toplu normalleştirmede kullanılan üstel hareketli ortalamalar (EMA'lar), eğitim istatistiklerinin doğrusal bir kombinasyonudur. Bu nedenle, bu EMA'ları kontrol noktalarına kaydetmeden önce senkronize etmeniz gerekir. Bununla birlikte, toplu normalleştirmenin bazı yaygın uygulamaları bu ETA'ları senkronize etmez ve EMA'yı yalnızca ilk cihazdan kaydeder.
Çoklu ana makine ardışık düzenleri için dikkat edilmesi gereken noktalar
Özet: Günlük kaydı, değerlendirmeler, RNG'ler, kontrol noktaları ve veri parçalama için çoklu ana makine eğitimi, hataların tanıtımını çok kolay hale getirebilir.
Çoklu ana makine ardışık düzenleri için aşağıdakileri yapın:
- Ardışık düzenin yalnızca tek bir ana makinede günlük kaydı ve kontrol noktası yaptığından emin olun.
- Toplu normalleştirme istatistiklerini ana makineler arasında değerlendirmeden veya kontrol noktasını değerlendirmeden önce senkronize edin.
- Veri performansını artırmak için ana makineler arasında veri parçalarını parçalayın.
Önemli: Ana makineler genelinde aynı olan RNG tohumlarının (model başlatma için) ve ana makinelerde farklı olan tohumların (veri karıştırma/ön işleme için) olduğundan emin olun. Bu nedenle, uygun şekilde işaretlediğinizden emin olun.