Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Di halaman ini, Anda akan mempelajari cara menggunakan pustaka paralelisme SageMaker model v2 APIs dan memulai menjalankan pekerjaan pelatihan PyTorch Fully Sharded Data Parallel (FSDP) di platform Pelatihan atau di SageMaker cluster. SageMaker HyperPod
Ada berbagai skenario untuk menjalankan pekerjaan PyTorch pelatihan dengan SMP v2.
-
Untuk SageMaker pelatihan, gunakan salah satu SageMaker Framework Container yang sudah dibuat sebelumnya untuk PyTorch v2.0.1 dan yang lebih baru, yang sudah dikemas sebelumnya dengan SMP v2.
-
Gunakan file biner SMP v2 untuk menyiapkan lingkungan Conda untuk menjalankan beban kerja pelatihan terdistribusi di cluster. SageMaker HyperPod
-
Perluas SageMaker Framework Container yang sudah dibuat sebelumnya untuk PyTorch v2.0.1 dan yang lebih baru untuk menginstal persyaratan fungsional tambahan untuk kasus penggunaan Anda. Untuk mempelajari cara memperluas wadah yang sudah dibuat sebelumnya, lihatPerluas Kontainer Pra-dibangun.
-
Anda juga dapat membawa wadah Docker Anda sendiri dan secara manual mengatur semua lingkungan SageMaker Pelatihan menggunakan toolkit SageMaker Pelatihan
dan menginstal file biner SMP v2. Ini adalah opsi yang paling tidak direkomendasikan karena kompleksitas dependensi. Untuk mempelajari cara menjalankan container Docker Anda sendiri, lihat Mengadaptasi Wadah Pelatihan Anda Sendiri.
Panduan memulai ini mencakup dua skenario pertama.
Langkah 1: Sesuaikan skrip pelatihan PyTorch FSDP Anda
Untuk mengaktifkan dan mengkonfigurasi perpustakaan SMP v2, mulailah dengan mengimpor dan menambahkan torch.sagemaker.init()
modul di bagian atas skrip. Modul ini mengambil kamus konfigurasi SMP Parameter konfigurasi fitur inti SMP v2 yang akan Anda persiapkan. Langkah 2: Luncurkan pekerjaan pelatihan Selain itu, untuk menggunakan berbagai fitur inti yang ditawarkan oleh SMP v2, Anda mungkin perlu membuat beberapa perubahan lagi untuk menyesuaikan skrip pelatihan Anda. Petunjuk lebih rinci tentang mengadaptasi skrip pelatihan Anda untuk menggunakan fitur inti SMP v2 disediakan di. Fitur inti dari perpustakaan paralelisme SageMaker model v2
Dalam skrip pelatihan Anda, tambahkan dua baris kode berikut, yang merupakan persyaratan minimal untuk memulai pelatihan dengan SMP v2. DiLangkah 2: Luncurkan pekerjaan pelatihan, Anda akan menyiapkan objek kelas SageMaker PyTorch
estimator dengan kamus konfigurasi SMP melalui distribution
argumen kelas estimator.
import torch.sagemaker as tsm
tsm.init()
catatan
Anda juga dapat langsung meneruskan kamus konfigurasi Parameter konfigurasi fitur inti SMP v2 ke torch.sagemaker.init()
modul. Namun, parameter diteruskan ke PyTorch estimator dalam Langkah 2: Luncurkan pekerjaan pelatihan mengambil prioritas dan mengganti yang ditentukan ke modul. torch.sagemaker.init()
Langkah 2: Luncurkan pekerjaan pelatihan
Pelajari cara mengonfigurasi opsi distribusi SMP untuk meluncurkan pekerjaan pelatihan PyTorch FSDP dengan fitur inti SMP.
Saat Anda menyiapkan objek peluncur pekerjaan pelatihan dari kelas estimator PyTorch kerangka kerjadistribution
catatan
distribution
Konfigurasi untuk SMP v2 terintegrasi dalam SDK SageMaker Python mulai dari v2.200. Pastikan Anda menggunakan SageMaker Python SDK v2.200 atau yang lebih baru.
catatan
Di SMP v2, Anda harus mengkonfigurasi smdistributed
dengan torch_distributed
distribution
argumen SageMaker PyTorch
estimator. Dengantorch_distributed
, SageMaker AI berjalantorchrun
, yang merupakan peluncur pekerjaan multi-node default Distributed. PyTorch
from sagemaker.pytorch import PyTorch
estimator = PyTorch(
framework_version=2.2.0
,
py_version="310
"
# image_uri="<smp-docker-image-uri>" # For using prior versions, specify the SMP image URI directly.
entry_point="your-training-script.py
", # Pass the training script you adapted with SMP from Step 1.
... # Configure other required and optional parameters
distribution={
"torch_distributed": { "enabled": True },
"smdistributed": {
"modelparallel": {
"enabled": True,
"parameters": {
"hybrid_shard_degree": Integer
,
"sm_activation_offloading": Boolean
,
"activation_loading_horizon": Integer
,
"fsdp_cache_flush_warnings": Boolean
,
"allow_empty_shards": Boolean
,
"tensor_parallel_degree": Integer
,
"expert_parallel_degree": Integer
,
"random_seed": Integer
}
}
}
}
)
penting
Untuk menggunakan salah satu versi sebelumnya PyTorch atau SMP alih-alih yang terbaru, Anda perlu menentukan gambar SMP Docker secara langsung menggunakan image_uri
argumen alih-alih dan pasangkanframework_version
. py_version
Berikut ini adalah contoh dari
estimator = PyTorch(
...,
image_uri="658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121"
)
Untuk menemukan gambar SMP Docker URIs, lihat. Kerangka kerja yang didukung