Örnekleri ve kaybın neyi temsil ettiğini doğrulamak
Önce birkaç dönüştürülmüş girdiyi ve bunların hedeflerini görüntüleyin. Kayıp fonksiyonuna gerçekte aktarılan bölütlemeyi, padding'i, maskeleri ve etiketleri doğrulayın. Üretimde, bir talimat girdide yer alıp yanıtla aynı hedefe katkıda bulunmak zorunda olmayabilir. Sınıflandırmada, numara ile sınıf arasındaki bir eşleme hatası, kaybı hesaplanabilir bırakırken yanlış görevin eğitilmesine yol açabilir.
Mekaniği kontrol etmek için çok küçük bir alt küme ayırın; genelleme iddiasında bulunmak için değil. Bir döngü bu örnekleri öğrenebilir mi, sonlu değerler üretebilir mi ve doğru kimlikleri bulabilir mi? Başarısız olursa, uzun bir kiralama teşhisi çözmez. Ardından eğitim, doğrulama ve testi sızıntıyı önleyen birimle ayırın: projenize göre konuşma, hasta, kaynak belge veya dönem.
Her aşamada bir kontrol kapısından geçin
Pilot, kampanyanın tüm işlemlerinden geçmelidir. Bir optimize edici durumu ayıran ilk adım, sonrakilerden farklı olabilir. Daha uzun diziler üzerinde bir değerlendirme en büyük tepe noktasını üretebilir. Bir kaydetme veya dışa aktarma da bellek ve zaman gerektirebilir. Bu nedenle yalnızca ağırlıkların yüklenmesinden yola çıkarak sonuca varmayın.
Girdi parametreleri, bellek sayacı, ölçülen süre ve karar ile her aşama için bir satır tutun. PyTorch altında, ayrılan tensörler ve ayırıcı tarafından rezerve edilen bellek sayaçları ayrıdır; toplanmazlar. Her GPU'yu aynı ölçüm sınırlarıyla kaydedin. Bellek klasörü, temel çizgilerin, senkronizasyonun ve mutlak tepe noktalarının ayrıntısını sağlar.
| Aşama | Doğrulama | Kontrol başarısız olursa |
|---|---|---|
| Veriler | Kimlikler, hedefler, uzunluklar ve maskeler | Veri kümesini veya dönüşümü düzeltin |
| İleri geçiş ve kayıp | Beklenen boyutlar, sonlu kayıp | Küçültülmüş yığını ve değerleri inceleyin |
| Geri geçiş | Beklenen gradyanlar, sonlu değerler | Grafiği, hassasiyeti ve normalizasyonu doğrulayın |
| Güncelleme | Hedeflenen parametreler değişti, adım sayıldı | Optimize ediciyi ve birikimi inceleyin |
| Doğrulama | Değerlendirme modu, eksiksiz çıktılar | Ayarlarını eğitiminkilerden ayırın |
| Devam | İlerleme ve durum geri yüklendi | Checkpoint'i seriden önce düzeltin |
Teknik kaynaklar: PyTorch — sayaçlar ve bellek yönetimi
Güncelleme başına örnekleri sayın
Mikro yığın tek bir geçişte işlenir. Birikim, bir güncellemeden önce birkaç geçişi birleştirir. Tek GPU'lu bir örnekte, mikro yığın başına iki örnek ve sekiz birikim, tam bir güncelleme başına on altı örnek verir. Bir kez taranan 3.200 örnek ve eksik yığın olmadan bu, 200 güncellemeye karşılık gelir. Bu hesaplamalar ne bir süreyi ne de bir kaliteyi öngörmez.
Güncelleme sayısını sabitleyip yığını değiştirmek, görülen örnek sayısını değiştirebilir. Dönemleri sabitlemek, güncelleme sayısını değiştirebilir. Karşılaştırmanızın neyi koruması gerektiğini seçin ve diğer niceliği not edin. Birden çok veri kopyasında, sayım bunların sayısını içerir; model paralelliği etkin yığını otomatik olarak çoğaltmaz. Son yığınlar ve farklı uzunluktaki diziler tutarlı bir normalizasyon gerektirir.
Teknik kaynaklar: PyTorch — birikim ve karışık hassasiyet
Deneysel soruyu kaybetmeden belleği değiştirin
Pilot belleği aşarsa, sorunlu aşamayı ve girdiyi belirleyin. Küçültülmüş bir mikro yığın aktivasyonları azaltabilir; daha küçük bir maksimum uzunluk, görevin vazgeçilmez bir bölümünü ortadan kaldırabilir. Birikim, kendi başına ağırlıkları veya optimize edici durumunu serbest bırakmaz. Beklenen çıktı değiştiyse, kırpma sonrası sığan bir durumu aynı deney olarak sunmayın.
Aktivasyon checkpointing'i daha az ara değer saklar ve bunları geri geçiş sırasında yeniden hesaplar. Belleği ve süreyi kendi döngünüzde karşılaştırın. Karışık hassasiyet, belirli işlemlerin formatlarını seçer; gradyan ölçekleme ayarları ve bunların güncellenme zamanı etkin yığına uygun olmalıdır. Bu değişiklikleri varyant olarak kaydedin ve kalite hedefini koruduklarını doğrulayın.
Teknik kaynaklar: PyTorch — aktivasyon checkpointing'i · PyTorch — AMP kuralları
Örnek: üç öğrenme oranını karşılaştırma
0,0001'de bir kontrol ve 0,00005 ile 0,0002'de iki örnek varyant hazırlayın. Bu değerler modeliniz için öneriler değildir: bir plan yazmaya yararlar. Bu basitleştirilmiş durumda mimariyi, verileri, etkin batch'i ve 200 güncelleme bütçesini aynı tutun. Denemeden önce doğrulama sıklığını ve durdurma nedenlerini tanımlayın.
Kayıp eğrisini, doğrulama noktalarını ve analiz için gereken tahminleri saklayın. Bir varyant ıraksarsa, satırı bilançoda kalır. Başka bir batch ile yeniden başlatma yeni bir kimlik alır ve başarısızlığın yerini sessizce almaz. Kalite farkı küçükse, tohumlar üzerindeki yöntem yalnızca en iyiyi seçmeden birkaç denemenin nasıl karşılaştırılacağını açıklar.
Öğrenmeyi sürdürme, ardından çıktıyı yeniden okuma
Ağırlık yedeği bazı çıkarım kullanımlarına olanak tanır; bir öğrenme sürdürme işlemi de ilgili durumları ve ilerlemeyi geri getirmelidir. PyTorch kılavuzu özellikle model ile optimizer'i ayırır. Sürdürmeyi yeni bir süreçte, döngünüz için gerekli öğelerle birlikte erkenden test edin, ardından adımı, öğrenme oranını ve veri sürekliliğini kontrol edin.
Kapanışta, değerlendirmeye yönelik artefaktı yeniden yükleyin ve kontrol girdilerini yeniden oynatın. Modeli veya adaptörü, yapılandırmayı, revizyonları, ham metrikleri ve talimatları arşivleyin. Yalnızca içeriğini doğrulamak için kaynağı bilinmeyen bir dosyayı yüklemeyin: kaynağını ve ortamınızın serileştirme kaldırma kurallarını bildiğiniz artefaktları kullanın.
Teknik kaynaklar: PyTorch — ağırlıklar ve sürdürme checkpoint'leri
Pilot çalışmadan uygun bir kiralamaya geçme
Seçim belgeniz GPU başına bellek, azami boyutlar, hassasiyet, microbatch, birikim, dağıtım stratejisi ve beklenen sonucu bir araya getirir. Yeterli belleğe sahip bir yapılandırma ancak yazılım yığını kontrol edildikten sonra kabul edilir. Sipariş sırasında PyTorch tercihi istenen bir hazırlığı tanımlar; modelinizi veya tüm uzantılarını garanti etmez.
Ardından öncelikli varyantları değerlendirme ve dışa aktarma için zaman ayırarak 3, 7 veya 30 günlük bir pakette düzenleyin. Hiçbir süre bir eğitim türünü zorunlu kılmaz. Defter kararı ve girilen gözlemleri saklayabilir, yedekleriniz ise dosyaları saklar. Başarılı bir kampanya, kontrol en iyi seçenek olarak kalsa bile yeniden okunabilir bir sonuç üretir.
Pratik sorular
Yalnızca ileri geçiş ile boyutlandırma yapabilir miyim?
Hayır: bir eğitim kampanyası geri geçişi, güncellemeyi, doğrulamayı ve yedeklemeyi de kapsamalıdır. Tepe noktası başka bir aşamada veya daha uzun bir girdide ortaya çıkabilir.
Aynı etkin batch aynı sonuçları garanti eder mi?
Hayır. Aynı sayım aynı sayısal işlemleri, lot istatistiklerini veya öğrenme yörüngelerini garanti etmez. Uygulamayı, normalizasyonu ve kaliteyi seçilen protokolle kontrol edin.
Neden ıraksayan bir eğitimi saklamalıyız?
Ayarın sınırını gösterir ve kaynak tüketmiştir. Kimliği, durdurma nedeni ve parametreleri aynı denemenin tekrarlanmasını veya yalnızca olumlu sonuçların sunulmasını engeller.