Bu bölümde, başlangıç aşamasında aşağıdaki seçenekleri ML projesi:
- model mimarisi
- optimize edici
- grubun büyüklüğü
- ilk yapılandırma
Varsayımlar
Bu bölümdeki öneride aşağıdakilerin belirtildiği varsayılmaktadır:
- Sorunu zaten formüle etmişsinizdir. ve eğitim verilerinizi bir şekilde hazırladınız.
- Zaten bir eğitim ve test ardışık düzeni oluşturdunuz.
- Daha önce temsili olan metrikleri seçip uyguladınız ölçmeyi planladığınızdan emin olmanız gerekir.
Önceki tüm ön koşulları karşıladığınızı varsayarsak model mimarisine ve eğitim yapılandırmasına zaman ayırın.
Model mimarisini seçin
Aşağıdaki tanımlarla başlayalım:
- Model mimarisi, tahmin üretmek için kullanılan bir sistemdir. Model mimarisi, giriş verilerini dönüştürme çerçevesini içerir tahminlere dahil eder, ancak parametre değerlerine göre ayarlar. Örneğin, 10 düğüm, 5 düğüm ve 3 düğümden oluşan üç gizli katmanına sahip bir nöral ağ, sırasıyla bir model mimaridir.
- Model, tüm etkinlikler için belirli değerlerin parametreleridir. Örneğin, bir model açıklanan nöral ağdan ve model mimarisinin tanımına ek olarak ağırlıklarını ve yanlılığını gösterir.
- Model ailesi, model mimarisi oluşturmaya yönelik bir şablondur verilen bir dizi hiperparametre verilir.
Model mimarisini seçmek, gerçekten de her bir model için modelleri (model hiperparametrelerinin her ayarı için bir adet).
Mümkün olduğunda benzer bir tahmin yapmanız gerekir. Ardından, bu modeli bir başlangıç noktası olabilir.
Optimize Edici'yi seçme
Hiçbir optimize edici "en iyi" değildir makine öğrenimi problemlerinin ve model mimarileri üzerinde çalışıyor. Sadece optimize edicilerin performansını karşılaştırmak bile zor oluyor. 🤖 köklü, popüler optimize ediciler, özellikle de yeni bir projeye başlarken.
Sorunun türü için en popüler optimize ediciyi seçmenizi öneririz. yardımcı olur. Aşağıdaki köklü optimize edicileri öneririz:
- Hareketli SGD. Nesterov varyantını öneririz.
- Adam ve NAdam gibi bazı genel sorular SGD (ivme) Adam'ın dört ayarlanabilir bağımsız değişkeni olduğunu ve hepsi önemli olabilir! Adem'in hiperparametreleri emin misiniz?.
Seçilen optimize edicinin tüm bağımsız değişkenlerine dikkat edin. Daha fazla hiperparametreye sahip optimize ediciler genellikle daha fazla ayarlama çalışması gerektirir. Bu durum özellikle projenin ilk aşamalarında, diğer çeşitli hiperparametrelerin en iyi değerlerini bulmaya çalışıyorsunuz (örneğin, öğrenme hızı) optimize edici bağımsız değişkenlerini can sıkıcı durumlar olabilir. Bu nedenle, aşağıdaki yaklaşımı kullanmanızı öneririz:
- Projenin başında, birçok ayarlanabilecek bir optimizasyon uzmanı seçin
kullanabilirsiniz. Aşağıda iki örnek verilmiştir:
- Sabit momentumlu SGD.
- Sabit Epsilon, Beta1 ve Beta2'ye sahip Adam.
- Projenin sonraki aşamalarında, daha genel bir optimize ediciye geçiş yapabilirsiniz. varsayılan değerlere düzeltmek yerine daha fazla hiperparametre ayarlayabilir.
Grup boyutunu seçin
Özet: Eğitim hızı, grup boyutuna göre belirlenir; grup boyutunu kullanma doğrudan ayarlayabilirsiniz.
Toplu işlem boyutu, eğitim süresini ve bilgi işlem kaynağını büyük ölçüde belirler tüketim. Grup boyutunun yükseltilmesi genellikle eğitim süresini kısaltır. Burada:
- Hiperparametreleri sabit bir süre içinde ayrıntılı olarak ayarlamanızı sağlar. ve potansiyel olarak daha iyi bir nihai model oluşturabilir.
- Geliştirme döngüsünün gecikmesini azaltarak yeni fikirlerin ortaya çıkmasını sağlar test edilmesine olanak tanır.
Grup boyutunun artırılması kaynak tüketimini azaltabilir veya artırabilir. kaynak tüketimini değiştirmemeniz gerektiğini unutmayın.
Grup boyutunu, doğrulama için ayarlanabilir bir hiperparametre olarak değerlendirmeyin performans'ı seçin. Aşağıdakilerin tümü koşullar karşılandığında model performansı, grup boyutu:
- Tüm optimize edici hiperparametreleri iyi ayarlanmış.
- Düzenlemeler yeterli ve iyi ayarlanmış.
- Eğitim adımlarının sayısı yeterlidir.
Aynı nihai performans, her türlü grup boyutu kullanılarak elde edilebilmelidir. (Bkz. Shallue ve diğerleri 2018 ve Toplu boyutu, neden doğrudan iyileştirme yapmak için ayarlanmamalı? doğrulama grubu performansı nedir?)
Uygun toplu reklam boyutlarını belirleme ve eğitim işleme hızını tahmin etme
Mevcut donanım, belirli bir model ve optimize edici için genelde sağlayabilirsiniz. Sınırlayıcı faktör genellikle hızlandırıcı belleği. Maalesef hangi reklamların ücretsiz olarak çalıştırılmadan veya en azından derlemeden belleğe sığacaktır. kapsamlı eğitim programı. En kolay çözüm genellikle eğitim işlerini küçük bir kullanıcı grubu için farklı grup boyutlarında (örneğin, 2'nin kuvvetini artırarak) işlerden birinin kullanılabilir belleği aşması için gereken adım sayısı. Örneğin, her grup boyutuna dahil ederek, gerçekçi bir tahmin alabilecek kadar eğitim işleme hızı:
eğitim işleme hızı = saniye başına işlenen örnek sayısı
ya da eşdeğer adım başına süre:
adım başına süre = grup boyutu / eğitim işleme hızı
Hızlandırıcılar henüz doygun değilse grup boyutu iki katına çıkarsa eğitim işleme hızı da iki katına (veya en az iki katına) çıkacaktır. Eşdeğer olarak, adım başına süre sabit (veya en azından sabit olur). Böyle bir durum söz konusu değilse eğitim ardışık düzeninde G/Ç veya senkronizasyon gibi bir performans sorunu var düğümleri arasında paylaştırır. Performans sorununu teşhis edip düzeltmeyi düşünün inceleyin.
Eğitim işleme hızı yalnızca bir maksimum toplu iş boyutuna kadar artarsa devam etse bile, yalnızca bu maksimum grup boyutuna kadar olan grup boyutlarını daha büyük bir grup boyutunu destekler. Daha büyük bir grup boyutu kullanmanın tüm avantajları için eğitim işleme hızı varsayılır artar. Çözmezse performans sorununu düzeltin veya daha küçük grup boyutunu kullanın.
Gradyan birikmesi, donanımın yapabileceğinden daha büyük bir grup boyutunu simüle eder. desteği vardır ve dolayısıyla işleme hızı açısından herhangi bir avantaj sağlamaz. Şunları yapmalısınız: uygulanan çalışmada gradyan birikmesinden genellikle kaçınır.
Modeli ya da modeli değiştirdiğinizde bu adımları tekrarlamanız optimize edebilirsiniz. Örneğin, farklı bir model mimarisi, boyutu daha büyük olur.
Eğitim süresini en aza indirmek için grup boyutunu seçin
Eğitim süresi tanımımız şöyledir:
- eğitim süresi = (adım başına süre) x (toplam adım sayısı)
Çoğu zaman adım başına sürenin yaklaşık olarak sabit olduğunu düşünebilirsiniz bir dizi öğe vardır. Bu, şu durumlarda geçerlidir:
- Paralel hesaplamalar için hiçbir ek yük olmaz.
- Eğitimle ilgili tüm performans sorunları teşhis edilmiş ve düzeltilmiştir. (Aşağıdaki özellikleri tanımlama için önceki bölüme bakın. eğitimdeki darboğazlara yardımcı olur. Pratikte genellikle en azından toplu iş yükünün artmasını sağlar.
Grup boyutu arttıkça, hedefe ulaşmak için gereken toplam adım sayısı sabit performans hedefi, tüm bunları yeniden ayarlamanız koşuluyla genellikle azalır ilgili hiperparametrelerden korur. (Bkz. Shallue ve diğerleri 2018). Örneğin, paket büyüklüğünü iki katına çıkarırsanız adımları uygulayın. Bu ilişkiye mükemmel ölçeklendirme denir ve kritik bir grup boyutuna kadar tüm gruplar için geçerlidir.
Kritik grup boyutunun ötesinde, toplu iş yükünün artırılması azalan getiri. Yani, sonunda grup boyutunu büyütmek eğitim adımlarının sayısını azaltmaz ancak hiçbir zaman artırmaz. Bu nedenle, eğitim süresini en aza indiren grup boyutu genellikle eğitim adımlarının sayısını azaltan en büyük grup boyutu gereklidir. Bu grup boyutu; veri kümesine, modele, yardımcı olacaktır. Hesaplama, optimizasyon deneysel olarak bulmanız gerekir. 🤖
Grup boyutlarını karşılaştırırken aşağıdakiler arasındaki farka dikkat edin:
- Örnek bütçe veya dönem bütçesi: Tüm denemeler, eğitim örnek sunularının sayısını düzeltme.
- Adım bütçesi: Tüm denemelerde sabit sayıda adımlarına göz atın.
Toplu reklam boyutlarını bir dönem bütçesiyle karşılaştırmak, büyük grup boyutları bir sorun yaratmaya devam etse bile ve gerekli eğitim adımlarının sayısını azaltarak önemli bir hızda yürütülebilir. Genellikle, mevcut donanımın desteklediği en büyük grup boyutu kritik paket boyutundan küçük. Bu nedenle iyi bir kural, (hiçbir deneme çalıştırmadan), dönüşüm hacmi açısından bir boyut oluşturur. eğitim süresini artırır.
Kaynak tüketimini en aza indirmek için grup boyutunu seçin
Grup boyutunu artırmakla ilişkili iki tür kaynak maliyeti vardır:
- Peşin maliyetler. Örneğin, yeni bir donanım satın almak veya eğitim ardışık düzeni üzerinde çalışıyor.
- Kullanım maliyetleri. Örneğin, ekibin kaynak bütçelerine göre faturalandırma, faturalandırma, elektrik / bakım maliyetleri.
Grup boyutunu büyütmenin önemli bir başlangıç maliyeti varsa projenin geri kalanına kadar toplu olarak olgunlaştığından fayda maliyet dengesini değerlendirmek artık daha kolay. Birden çok sunuculu paralel eğitim programlarını uygulamak, bugs ve küçük sorunlar Bu nedenle, daha basit bir kitleyle zaten mevcut. Diğer yandan eğitim süresinde büyük bir hızlanma, Bu süreçte ufak tefek değişiklikler yapmanın ilk aşamalarında deneme gerekiyor.
Toplam kullanım maliyeti (birden fazla farklı tür maliyetleri) kaynak tüketimi olarak gösterir, şu şekilde hesaplanır:
kaynak tüketimi = adım başına kaynak tüketimi x toplam adım sayısı
Grup boyutunun artırılması genellikle toplam adım sayısını azaltır. Kaynak tüketiminin artması veya azalması Adım başına tüketimin nasıl değiştiği (aşağıdaki şekilde grup boyutuna göre değişir):
- Grup boyutunun artırılması kaynak tüketimini azaltabilir. Örneğin, daha büyük grup boyutuna sahip olan her adım aynı donanım üzerinde (sadece küçük bir artış) ve ardından kaynaktaki herhangi bir artış, adım başına tüketim, sayısı.
- Grup boyutunun artırılması kaynak tüketimini değiştirmeyebilir. Örneğin, grup boyutunu iki katına çıkarırsanız paketteki adım sayısı ve kullanılan GPU sayısını iki katına çıkarırken toplam tüketim (GPU saati olarak) değişmez.
- Grup boyutunun artırılması kaynak tüketimini artırabilir. Örneğin, grup boyutunun yükseltilmesi için donanımın yükseltilmesi gerekiyorsa artış, adım başına tüketimdeki artıştan daha ağır basabilir. adım sayısı.
Grup boyutunun değiştirilmesi için çoğu hiperparametrenin yeniden ayarlanması gerekir
Çoğu hiperparametrenin optimum değerleri grup boyutuna duyarlıdır. Bu nedenle, grup boyutunun değiştirilmesi için genellikle ayarlamanın başlatılması gerekir. işlemi baştan sona tekrarlamanız gerekir. En güçlü şekilde etkileşime giren hiperparametreler büyük önem taşır ve bu nedenle, ayrı ayrı ayarlamalar yapmak aşağıdaki gibidir:
- Optimize Edici hiper parametreleri (ör. öğrenme hızı ve momentum)
- Normalleştirme hiperparametreleri
Projenin başında grup boyutunu seçerken bunu göz önünde bulundurun. Daha sonra farklı bir grup boyutuna geçmeniz gerekirse diğer hiperparametrelerini yeniden ayarlamak zor, zaman alıcı ve pahalıdır seçin.
Toplu norm, grup boyutu ile nasıl etkileşime girer?
Toplu işlem normları karmaşıktır ve genel olarak farklı bir grup kullanmalıdır. daha yüksek bir boyuttur. Görüntüleyin Toplu normalleştirme uygulaması ayrıntıları inceleyin.
İlk yapılandırmayı seçin
Hiperparametre ayarındaki ilk aşama, şunlar için başlangıç noktası:
- model yapılandırması (ör. katman sayısı)
- optimize edici hiperparametreleri (ör. öğrenme hızı)
- eğitim adımlarının sayısı
Bu ilk yapılandırmayı belirlemek için manuel olarak yapılması gerekir eğitim çalıştırmaları ile deneme yanılma yönteminden yararlanır.
Yol gösterici ilkemiz şöyledir:
Basit, nispeten hızlı, nispeten düşük kaynak tüketimi bulun makul bir performans elde eden bir yapılandırmadır.
Bu örnekte:
- Basit, özel gibi gereksiz ardışık düzen özelliklerinden kaçınmak anlamına gelir normalleştiren ya da mimari hikayeler içeren uygulamalardır. Örneğin, bırakma normalleştirme (veya ayrılma normalleştirmesi devre dışı bırakıldığında), normalleştirmesidir.
- Makul performans soruna bağlıdır ancak en azından bir makul şekilde eğitilmiş bir modelin performansı, rastgele olasılıktan çok daha iyidir değerini girin.
Hızlı ve minimum tüketim gerektiren bir başlangıç yapılandırması seçme kaynakları, hiperparametre ayarını çok daha verimli hale getirir. Örneğin, daha küçük bir modelle başlayın.
Eğitim adımlarının sayısını seçmek için aşağıdaki gerilme unsurlarının dengelenmesi gerekir:
- Daha fazla adım için eğitim almak, performansı artırabilir ve hiperparametreyi basitleştirir ince ayar. (Daha fazla bilgi için bkz. Shallue ve diğerleri 2018).
- Buna karşılık, daha az adım için eğitim her eğitim çalışmasının daha az kaynak kullanır. daha fazla deneme yapabilirsiniz. Ayrıca, başlangıcında gereksiz şekilde büyük bir adım bütçesi seçtiyseniz projenin ilerleyen kısımlarında değişiklik yapmak zor olabilir. örneğin, .