Deep Learning Containers (DLC), makineleri manuel olarak sağlamanıza veya ortamları yapılandırmanıza gerek kalmadan tek düğümlü veya dağıtılmış eğitim işlerini hızlıca oluşturmanızı sağlar. Bu öğreticide, MNIST el yazısı rakam tanıma görevini kullanarak hem tek düğümlü tek GPU hem de çok düğümlü çok GPU eğitimi için uçtan uca süreç gösterilmektedir.
MNIST el yazısı rakam tanıma, derin öğrenmede klasik bir giriş seviyesi görevdir. Amaç, 10 el yazısı rakamı (0'dan 9'a) tanıyan bir makine öğrenimi modeli oluşturmaktır.
1. Ön koşullar
PAI hizmetini etkinleştirmek ve bir çalışma alanı oluşturmak için ana hesabınızı kullanın. PAI konsoluna oturum açın, sol üst köşeden bir bölge seçin ve ardından istemleri izleyerek izinleri verip hizmeti etkinleştirin.
2. Faturalama
Bu öğreticideki örnekler, DLC işleri oluşturmak için genel kaynakları kullanır ve bu kaynaklar kullandıkça öde modeliyle faturalandırılır. Daha fazla bilgi için bkz. Deep Learning Containers (DLC) faturalandırması.
3. Tek düğümlü, tek GPU eğitimi
3,1 Veri kümesi oluşturma
Bir veri kümesi, eğitim kodlarınızı, verilerinizi ve model yapıtlarınızı depolar. Bu bölümde, Alibaba Cloud Object Storage Service (OSS) tabanlı bir veri kümesinin nasıl kullanılacağı açıklanmaktadır.
PAI konsolunun sol gezinme bölmesinde Datasets > Custom Dataset > Create datasets seçeneklerini belirleyin.
-
Aşağıdaki temel parametreleri yapılandırın ve diğerleri için varsayılan değerleri koruyun.
Name: Örneğin,
dataset_mnistgirin.Storage Type: OSS seçeneğini belirleyin.
-
OSS Path: Klasör simgesine
tıklayın, bir paket seçin ve dlc_mnistgibi yeni bir dizin oluşturun.OSS'i henüz etkinleştirmediyseniz veya mevcut bölgede kullanılabilir bir paketiniz yoksa OSS'i etkinleştirmek ve bir paket oluşturmak için şu adımları izleyin:
Veri kümesini oluşturmak için Confirm seçeneğine tıklayın.
-
Eğitim kodunu ve verilerini yükleyin.
-
Sağlanan eğitim betiğini indirin: mnist_train.py. Süreci basitleştirmek için betik, çalışma zamanında eğitim verilerini otomatik olarak veri kümenizin dataSet dizinine indirir.
Kendi projeleriniz için kodlarınızı ve eğitim verilerinizi önceden bir PAI veri kümesine yükleyebilirsiniz.
Kodu yükleyin. Veri kümesi ayrıntıları sayfasında, OSS konsoluna gitmek için View Data seçeneğine tıklayın. Ardından, eğitim betiğini OSS'e yüklemek için Upload Object >Select Files > Upload Object seçeneklerini belirleyin.
-
3,2 Bir DLC işi oluşturma
PAI konsolunun sol gezinme bölmesinde Deep Learning Containers (DLC) > Create Job seçeneklerini belirleyin.
-
Aşağıdaki temel parametreleri yapılandırın ve diğerleri için varsayılan değerleri koruyun. Parametrelerin tam listesi için bkz. Eğitim işi oluşturma.
-
Image Configuration: Image Address seçeneğini belirleyin ve ardından Region değeriniz için uygun görüntü adresini girin.
Konsolun üst gezinme çubuğunda, Region seçicisini kullanarak mevcut bölgenizi onaylayın (örneğin China (Hangzhou)).
Region
Image address
China (Beijing)
dsw-registry-vpc.cn-beijing.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
China (Shanghai)
dsw-registry-vpc.cn-shanghai.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
China (Hangzhou)
dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
OtherBölge Kimliğinizi bulma ve tam URL'yi almak için görüntü adresindeki <Region ID> değerini değiştirme:
dsw-registry-vpc.<Region ID>.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
Bu görüntü, DSW Etkileşimli Modellemeye Giriş konusundaki doğrulanmış ortamı kullanır. PAI ile modelleme yaparken tipik bir iş akışı, önce DSW'de ortamı doğrulamak ve kod geliştirmek, ardından eğitim için DLC kullanmaktır.
Dataset Mount: Custom Dataset seçeneğini belirleyin ve önceki adımda oluşturduğunuz veri kümesini seçin. Varsayılan Mount Path değeri
/mnt/dataşeklindedir.-
Startup Command:
python /mnt/data/mnist_train.pyBaşlatma komutu, kodu DSW'de veya yerel olarak çalıştırdığınız durumla aynıdır. Ancak,
mnist_train.pyartık/mnt/data/konumuna bağlandığından, kod yolunu yalnızca/mnt/data/mnist_train.pyolarak değiştirmeniz gerekir. -
Source: Public Resources seçeneğini belirleyin ve ardından Resource Type için
ecs.gn7i-c8g1.2xlargedeğerini seçin.Bu örnek türü stokta yoksa başka bir GPU örnek türü seçebilirsiniz.
İşi oluşturmak için OK seçeneğine tıklayın. İşin çalışması yaklaşık 15 dakika sürer. Çalışma sırasında günlükleri tıklayarak eğitim ilerlemesini görüntüleyebilirsiniz.
Eğitim günlüğü, MNIST modelinin 18. Epoch'ta 9886/10000 (yaklaşık %99) doğrulama doğruluğuna ulaştığını gösterir. İş durumu Succeeded olarak değiştiğinde, günlük son çıktıyı görüntüler:
Training complete. writer.close().İş tamamlandıktan sonra DLC, en iyi model kontrol noktasını ve TensorBoard günlüğünü bağlanan veri kümesinin
outputyoluna kaydeder.OSS paketinizdeki
dlc_mnist/dizini artık eğitim verileri için birdataSet/alt dizini, model yapıtları için biroutput/alt dizini vemnist_train.pybetiğini içerir. -
3,3 (İsteğe bağlı) TensorBoard'da görüntüleme
Kayıp eğrisini görüntülemek ve eğitim sürecini daha iyi anlamak için TensorBoard görselleştirme aracını kullanabilirsiniz.
Bir DLC işi için TensorBoard kullanmak üzere bir veri kümesi yapılandırmanız gerekir.
DLC işinin ayrıntılar sayfasında Tensorboard sekmesine tıklayın ve ardından Create TensorBoard seçeneğine tıklayın.
-
Configuration Type değerini By Task olarak ayarlayın. Summary Path için, eğitim kodunda SummaryWriter'ın verileri kaydettiği yolu girin:
/mnt/data/output/runs/. Başlatmak için OK seçeneğine tıklayın.Bu, aşağıdaki kod parçasına karşılık gelir:
writer = SummaryWriter('/mnt/data/output/runs/mnist_experiment') -
train_loss eğrisini (eğitim kümesi kaybı) ve validation_loss eğrisini (doğrulama kümesi kaybı) görmek için View TensorBoard seçeneğine tıklayın.

3,4 Eğitilen modeli dağıtma
Daha fazla bilgi için bkz. V. EAS kullanarak model hizmetlerini dağıtma.
4. Çoklu GPU'larla dağıtılmış eğitim
Tek bir GPU modeliniz için yeterli belleğe sahip değilse veya eğitimi hızlandırmak istiyorsanız çoklu GPU'lu veya çok düğümlü bir dağıtılmış eğitim işi oluşturun.
Bu bölümde, her biri tek bir GPU içeren iki örnek kullanılmaktadır. Aynı yordam diğer çoklu GPU ve çok düğümlü yapılandırmalar için de geçerlidir.
4,1 Veri kümesini ve betiği hazırlama
3. Tek düğümlü, tek GPU eğitimi bölümünde zaten bir veri kümesi oluşturduysanız mnist_train_distributed.py dosyasını indirip yüklemeniz yeterlidir. Aksi takdirde önce 3,1 Veri kümesi oluşturma adımını uygulayın ve ardından kodu yükleyin.
4,2 Dağıtılmış bir DLC işi oluşturma
PAI konsolunun sol gezinme bölmesinde Deep Learning Containers (DLC) > Create Job seçeneklerini belirleyin.
-
Aşağıdaki temel parametreleri yapılandırın ve diğerleri için varsayılan değerleri koruyun. Parametrelerin tam listesi için bkz. Eğitim işi oluşturma.
-
Image Configuration: Image Address seçeneğini belirleyin ve ardından Region değeriniz için uygun görüntü adresini girin.
Region
Image address
China (Beijing)
dsw-registry-vpc.cn-beijing.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
China (Shanghai)
dsw-registry-vpc.cn-shanghai.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
China (Hangzhou)
dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
OtherBölge Kimliğinizi bulma ve tam URL'yi almak için görüntü adresindeki <Region ID> değerini değiştirme:
dsw-registry-vpc.<Region ID>.cr.aliyuncs.com/pai/modelscope:1.28.0-pytorch2.3.1tensorflow2.16.1-gpu-py311-cu121-ubuntu22.04
Bu görüntü, DSW Etkileşimli Modellemeye Giriş konusundaki doğrulanmış ortamı kullanır. PAI ile modelleme yaparken tipik bir iş akışı, önce DSW'de ortamı doğrulamak ve kod geliştirmek, ardından eğitim için DLC kullanmaktır.
Dataset Mount: Custom Dataset seçeneğini belirleyin ve oluşturduğunuz veri kümesini seçin. Varsayılan Mount Path değeri
/mnt/dataşeklindedir.-
Startup Command:
torchrun --nproc_per_node=1 --nnodes=${WORLD_SIZE} --node_rank=${RANK} --master_addr=${MASTER_ADDR} --master_port=${MASTER_PORT} /mnt/data/mnist_train_distributed.pyDLC, ortam değişkenleri gibi yaygın değişkenleri otomatik olarak enjekte eder (örneğin
MASTER_ADDRveWORLD_SIZE). Bu değişkenlere$VARIABLE_NAMEsözdizimiyle erişebilirsiniz. -
Source: Public Resources seçeneğini belirleyin, Number of Nodes değerini 2 olarak ayarlayın ve Resource Type için
ecs.gn7i-c8g1.2xlargedeğerini seçin.Bu örnek türü stokta yoksa başka bir GPU örnek türü seçebilirsiniz.
İşi oluşturmak için Confirm seçeneğine tıklayın. İşin çalışması yaklaşık 10 dakika sürer. Çalışma sırasında, Overview sayfasında her iki örnek için de eğitim Log değerlerini görüntüleyebilirsiniz.
İş tamamlandıktan sonra DLC, en iyi model kontrol noktasını ve TensorBoard günlüğünü bağlanan veri kümesinin
output_distributedyoluna kaydeder. -
4,3 (İsteğe bağlı) TensorBoard'da görüntüleme
Kayıp eğrisini görüntülemek ve eğitim sürecini daha iyi anlamak için TensorBoard görselleştirme aracını kullanabilirsiniz.
Bir DLC işi için TensorBoard kullanmak üzere bir veri kümesi yapılandırmanız gerekir.
DLC işinin ayrıntılar sayfasında TensorBoard sekmesine tıklayın ve ardından Create TensorBoard seçeneğine tıklayın.
-
Configuration Type değerini By Task olarak ayarlayın. Summary Path için, eğitim kodunun özet dosyalarını kaydettiği yolu girin:
/mnt/data/output_distributed/runs. Başlatmak için OK seçeneğine tıklayın.Bu, aşağıdaki kod parçasına karşılık gelir:
writer = SummaryWriter('/mnt/data/output_distributed/runs/mnist_experiment') -
train_loss eğrisini (eğitim kümesi kaybı) ve validation_loss eğrisini (doğrulama kümesi kaybı) görmek için View TensorBoard seçeneğine tıklayın.

4,4 Eğitilen modeli dağıtma
Daha fazla bilgi için bkz. V. EAS kullanarak model hizmetlerini dağıtma.
5. İlgili bilgiler
DLC özellikleri hakkında daha fazla bilgi için bkz. Deep Learning Containers (DLC).