Azure Machine Learning ile dağıtılmış eğitim

Bu makalede, dağıtılmış eğitim ve Azure Machine Learning'in derin öğrenme modelleri için bunu nasıl desteklediği hakkında bilgi ediniyorsunuz.

Dağıtılmış eğitimde, bir modeli eğitmek için iş yükü bölünür ve çalışan düğümleri olarak adlandırılan birden çok mini işlemci arasında paylaşılır. Bu çalışan düğümleri model eğitimini hızlandırmak için paralel olarak çalışır. Dağıtılmış eğitim, geleneksel makine öğrenmesi modelleri için kullanılabilir, ancak derin sinir ağlarını eğiten derin öğrenme gibi işlem ve zaman açısından yoğun görevler için daha uygundur.

Derin öğrenme ve dağıtılmış eğitim

İki ana dağıtılmış eğitim türü vardır: veri paralelliği ve model paralelliği. Derin öğrenme modelleri hakkında dağıtılmış eğitim için Python'daki Azure Machine Learning SDK'sı PyTorch ve TensorFlow ile tümleştirmeleri destekler. Her ikisi de dağıtılmış eğitim için veri paralelliği kullanan popüler çerçevelerdir ve işlem hızlarını iyileştirmek için Horovod'ı kullanabilir.

Dağıtılmış eğitim gerektirmeyen makine öğrenmesi modelleri için bkz . Python SDK'sını kullanarak modelleri eğitmek için farklı yollar için Azure Machine Learning ile modelleri eğitin.

Veri paralelliği

Veri paralelliği, iki dağıtılmış eğitim yaklaşımının uygulanması en kolayıdır ve çoğu kullanım örneği için yeterlidir.

Bu yaklaşımda veriler, bölüm sayısının işlem kümesindeki veya sunucusuz işlemdeki kullanılabilir düğümlerin toplam sayısına eşit olduğu bölümlere ayrılır. Model bu çalışan düğümlerinin her birine kopyalanır ve her düğüm kendi veri alt kümesinde çalışır. Her düğümün eğitilen modeli destekleyecek kapasiteye sahip olması gerektiğini, yani modelin tamamının her düğüme sığması gerektiğini unutmayın.

Aşağıdaki diyagramda bu yaklaşım gösterilmektedir.

Çalışan düğümlerine kopyalanan modeli gösteren veri parrallelism diyagramı.

Her düğüm, eğitim örnekleri için tahminleri ile etiketli çıkışlar arasındaki hataları bağımsız olarak hesaplar. Buna karşılık, her düğüm hatalara göre modelini güncelleştirir ve ilgili modellerini güncelleştirmek için tüm değişikliklerini diğer düğümlere iletmesi gerekir. Çalışan düğümlerinin bir consis çadır modu l eğitmelerini sağlamak için toplu işlem sonunda model parametrelerini veya gradyanları eşitlemesi gerekir.

Model paralelliği

Ağ paralelliği olarak da bilinen model paralelliği içinde model, farklı düğümlerde eşzamanlı olarak çalışabilen farklı bölümlere ayrılır ve her biri aynı verilerde çalışır. Bu yöntemin ölçeklenebilirliği, algoritmanın görev paralelleştirme derecesine bağlıdır ve veri paralelliğine göre uygulanması daha karmaşıktır.

Model paralelliği içinde çalışan düğümlerinin paylaşılan parametreleri yalnızca eşitlemesi gerekir; genellikle her ileri veya geri yayma adımı için bir kez. Ayrıca, her düğüm modelin bir alt bölümünde aynı eğitim verileri üzerinde çalıştığından daha büyük modeller önemli değildir.