Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan Pekerjaan PyTorch Pelatihan dengan Kompiler SageMaker Pelatihan
Anda dapat menggunakan salah satu antarmuka SageMaker AI untuk menjalankan pekerjaan pelatihan dengan SageMaker Training Compiler: Amazon SageMaker Studio Classic, instans SageMaker notebook Amazon, AWS SDK for Python (Boto3) dan. AWS Command Line Interface
Menggunakan SageMaker Python SDK
SageMaker Training Compiler for PyTorch tersedia melalui SageMaker AI PyTorch
dan kelas estimator HuggingFace
kerangka kerja. Untuk mengaktifkan SageMaker Training Compiler, tambahkan compiler_config
parameter ke estimator SageMaker AI. Impor TrainingCompilerConfig
kelas dan berikan instance ke compiler_config
parameter. Contoh kode berikut menunjukkan struktur kelas estimator SageMaker AI dengan SageMaker Training Compiler diaktifkan.
Untuk memulai dengan model prebuilt yang disediakan oleh PyTorch atau Transformers, coba gunakan ukuran batch yang disediakan dalam tabel referensi di. Model yang Diuji
PyTorch Dukungan asli tersedia di SageMaker Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker Python SDK yang sesuai.
Mulai PyTorch v1.12.0, wadah SageMaker Training Compiler untuk PyTorch tersedia. Perhatikan bahwa wadah SageMaker Training Compiler untuk tidak PyTorch dikemas dengan Hugging Face Transformers. Jika Anda perlu menginstal pustaka dalam wadah, pastikan Anda menambahkan requirements.txt
file di bawah direktori sumber saat mengirimkan pekerjaan pelatihan.
Untuk PyTorch v1.11.0 dan sebelumnya, gunakan versi sebelumnya dari wadah SageMaker Training Compiler untuk Hugging Face dan. PyTorch
Untuk daftar lengkap versi kerangka kerja dan informasi kontainer yang sesuai, lihatKerangka Kerja yang Didukung.
Untuk informasi yang sesuai dengan kasus penggunaan Anda, lihat salah satu opsi berikut.
- PyTorch v1.12.0 and later
-
Untuk mengkompilasi dan melatih PyTorch model, konfigurasikan PyTorch estimator SageMaker AI dengan SageMaker Training Compiler seperti yang ditunjukkan pada contoh kode berikut.
PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.120.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI PythonSDK.
from sagemaker.pytorch import PyTorch, TrainingCompilerConfig
# the original max batch size that can fit into GPU memory without compiler
batch_size_native=12
learning_rate_native=float('5e-5
')
# an updated max batch size that can fit into GPU memory with compiler
batch_size=64
# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size
hyperparameters={
"n_gpus": 1,
"batch_size": batch_size,
"learning_rate": learning_rate
}
pytorch_estimator=PyTorch(
entry_point='train.py
',
source_dir='path-to-requirements-file
', # Optional. Add this if need to install additional packages.
instance_count=1,
instance_type='ml.p3.2xlarge
',
framework_version='1.13.1
',
py_version='py3',
hyperparameters=hyperparameters,
compiler_config=TrainingCompilerConfig(),
disable_profiler=True,
debugger_hook_config=False
)
pytorch_estimator.fit()
- Hugging Face Transformers with PyTorch v1.11.0 and before
-
Untuk mengkompilasi dan melatih model transformator PyTorch, konfigurasikan estimator SageMaker AI Hugging Face dengan SageMaker Training Compiler seperti yang ditunjukkan pada contoh kode berikut.
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig
# the original max batch size that can fit into GPU memory without compiler
batch_size_native=12
learning_rate_native=float('5e-5
')
# an updated max batch size that can fit into GPU memory with compiler
batch_size=64
# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size
hyperparameters={
"n_gpus": 1,
"batch_size": batch_size,
"learning_rate": learning_rate
}
pytorch_huggingface_estimator=HuggingFace(
entry_point='train.py
',
instance_count=1,
instance_type='ml.p3.2xlarge
',
transformers_version='4.21.1
',
pytorch_version='1.11.0
',
hyperparameters=hyperparameters,
compiler_config=TrainingCompilerConfig(),
disable_profiler=True,
debugger_hook_config=False
)
pytorch_huggingface_estimator.fit()
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
Untuk menemukan end-to-end contoh, lihat buku catatan berikut:
- PyTorch v1.12
-
Untuk PyTorch v1.12, Anda dapat menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dengan menambahkan pytorch_xla
opsi yang ditentukan ke distribution
parameter kelas PyTorch estimator SageMaker AI.
PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI PythonSDK.
from sagemaker.pytorch import PyTorch, TrainingCompilerConfig
# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge
'
num_gpus=4
# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5
')
# an updated max batch size that can fit to GPU memory with compiler
batch_size=26
# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count
hyperparameters={
"n_gpus": num_gpus,
"batch_size": batch_size,
"learning_rate": learning_rate
}
pytorch_estimator=PyTorch(
entry_point='your_training_script.py
',
source_dir='path-to-requirements-file
', # Optional. Add this if need to install additional packages.
instance_count=instance_count,
instance_type=instance_type,
framework_version='1.13.1
',
py_version='py3',
hyperparameters=hyperparameters,
compiler_config=TrainingCompilerConfig(),
distribution ={'pytorchxla' : { 'enabled': True }},
disable_profiler=True,
debugger_hook_config=False
)
pytorch_estimator.fit()
Untuk mempersiapkan naskah pelatihan Anda, lihat PyTorch
- Transformers v4.21 with PyTorch v1.11
-
Untuk PyTorch v1.11 dan yang lebih baru, SageMaker Training Compiler tersedia untuk pelatihan terdistribusi dengan pytorch_xla
opsi yang ditentukan untuk parameter. distribution
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig
# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge
'
num_gpus=4
# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5
')
# an updated max batch size that can fit to GPU memory with compiler
batch_size=26
# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count
hyperparameters={
"n_gpus": num_gpus,
"batch_size": batch_size,
"learning_rate": learning_rate
}
pytorch_huggingface_estimator=HuggingFace(
entry_point='your_training_script.py
',
instance_count=instance_count,
instance_type=instance_type,
transformers_version='4.21.1
',
pytorch_version='1.11.0
',
hyperparameters=hyperparameters,
compiler_config=TrainingCompilerConfig(),
distribution ={'pytorchxla' : { 'enabled': True }},
disable_profiler=True,
debugger_hook_config=False
)
pytorch_huggingface_estimator.fit()
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
- Transformers v4.17 with PyTorch v1.10.2 and before
-
Untuk versi PyTorch v1.10.2 dan sebelumnya yang didukung, SageMaker Training Compiler memerlukan mekanisme alternatif untuk meluncurkan pekerjaan pelatihan terdistribusi. Untuk menjalankan pelatihan terdistribusi, SageMaker Training Compiler mengharuskan Anda untuk meneruskan skrip peluncur pelatihan terdistribusi SageMaker AI ke entry_point
argumen, dan meneruskan skrip pelatihan Anda ke argumen. hyperparameters
Contoh kode berikut menunjukkan cara mengonfigurasi estimator SageMaker AI Hugging Face yang menerapkan perubahan yang diperlukan.
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig
# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge
'
num_gpus=4
# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5
')
# an updated max batch size that can fit to GPU memory with compiler
batch_size=26
# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count
training_script="your_training_script.py
"
hyperparameters={
"n_gpus": num_gpus,
"batch_size": batch_size,
"learning_rate": learning_rate,
"training_script": training_script # Specify the file name of your training script.
}
pytorch_huggingface_estimator=HuggingFace(
entry_point='distributed_training_launcher.py
', # Specify the distributed training launcher script.
instance_count=instance_count,
instance_type=instance_type,
transformers_version='4.17.0
',
pytorch_version='1.10.2
',
hyperparameters=hyperparameters,
compiler_config=TrainingCompilerConfig(),
disable_profiler=True,
debugger_hook_config=False
)
pytorch_huggingface_estimator.fit()
Skrip peluncur akan terlihat seperti berikut ini. Ini membungkus skrip pelatihan Anda dan mengonfigurasi lingkungan pelatihan terdistribusi tergantung pada ukuran contoh pelatihan pilihan Anda.
# distributed_training_launcher.py
#!/bin/python
import subprocess
import sys
if __name__ == "__main__":
arguments_command = " ".join([arg for arg in sys.argv[1:]])
"""
The following line takes care of setting up an inter-node communication
as well as managing intra-node workers for each GPU.
"""
subprocess.check_call("python -m torch_xla.distributed.sm_dist " + arguments_command, shell=True)
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
Untuk menemukan end-to-end contoh, lihat buku catatan berikut:
Daftar berikut adalah set minimal parameter yang diperlukan untuk menjalankan pekerjaan SageMaker pelatihan dengan compiler.
Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukantransformers_version
,, pytorch_version
hyperparameters
, compiler_config
dan parameter untuk SageMaker mengaktifkan Training Compiler. Anda tidak dapat menggunakan image_uri
untuk secara manual menentukan Deep Learning Containers terintegrasi Training Compiler yang terdaftar diKerangka Kerja yang Didukung.
-
entry_point
(str) - Diperlukan. Tentukan nama file skrip pelatihan Anda.
Untuk menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dan PyTorch v1.10.2 dan sebelumnya, tentukan nama file skrip peluncur ke parameter ini. Skrip peluncur harus disiapkan untuk membungkus skrip pelatihan Anda dan mengonfigurasi lingkungan pelatihan terdistribusi. Untuk informasi selengkapnya, lihat contoh buku catatan berikut:
-
source_dir
(str) - Opsional. Tambahkan ini jika perlu menginstal paket tambahan. Untuk menginstal paket, Anda perlu prapare requirements.txt
file di bawah direktori ini.
-
instance_count
(int) - Diperlukan. Tentukan jumlah instans.
-
instance_type
(str) - Diperlukan. Tentukan jenis instance.
-
transformers_version
(str) - Diperlukan hanya saat menggunakan penaksir SageMaker AI Hugging Face. Tentukan versi pustaka Hugging Face Transformers yang didukung oleh SageMaker Training Compiler. Untuk menemukan versi yang tersedia, lihatKerangka Kerja yang Didukung.
-
framework_version
atau pytorch_version
(str) - Diperlukan. Tentukan PyTorch versi yang didukung oleh SageMaker Training Compiler. Untuk menemukan versi yang tersedia, lihatKerangka Kerja yang Didukung.
Saat menggunakan penaksir SageMaker AI Hugging Face, Anda harus menentukan transformers_version
keduanya dan. pytorch_version
-
hyperparameters
(dict) — Opsional. Tentukan hyperparameters untuk pekerjaan pelatihan, sepertin_gpus
,batch_size
, danlearning_rate
. Saat Anda mengaktifkan SageMaker Training Compiler, coba ukuran batch yang lebih besar dan sesuaikan tingkat pembelajaran yang sesuai. Untuk menemukan studi kasus penggunaan kompiler dan ukuran batch yang disesuaikan untuk meningkatkan kecepatan pelatihan, lihat Model yang Diuji danSageMaker Contoh Kompiler Pelatihan Notebook dan Blog.
Untuk menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dan PyTorch v1.10.2 dan sebelumnya, Anda perlu menambahkan parameter tambahan,"training_script"
, untuk menentukan skrip pelatihan Anda, seperti yang ditunjukkan pada contoh kode sebelumnya.
-
compiler_config
(TrainingCompilerConfig objek) - Diperlukan untuk mengaktifkan SageMaker Training Compiler. Sertakan parameter ini untuk mengaktifkan SageMaker Training Compiler. Berikut ini adalah parameter untuk TrainingCompilerConfig
kelas.
-
enabled
(bool) — Opsional. Tentukan True
atau False
untuk mengaktifkan atau mematikan SageMaker Training Compiler. Nilai default-nya adalah True
.
-
debug
(bool) — Opsional. Untuk menerima log pelatihan yang lebih mendetail dari pekerjaan pelatihan yang dipercepat kompiler, ubah ke. True
Namun, pencatatan tambahan mungkin menambah overhead dan memperlambat pekerjaan pelatihan yang dikompilasi. Nilai default-nya adalah False
.
-
distribution
(dict) — Opsional. Untuk menjalankan pekerjaan pelatihan terdistribusi dengan SageMaker Training Compiler, tambahkandistribution = { 'pytorchxla' : {
'enabled': True }}
.
Jika Anda mengaktifkan SageMaker Debugger, itu mungkin memengaruhi kinerja SageMaker Training Compiler. Kami menyarankan Anda mematikan Debugger saat menjalankan SageMaker Training Compiler untuk memastikan tidak ada dampak pada kinerja. Untuk informasi selengkapnya, lihat Pertimbangan. Untuk menonaktifkan fungsionalitas Debugger, tambahkan dua argumen berikut ke estimator:
disable_profiler=True,
debugger_hook_config=False
Jika pekerjaan pelatihan dengan kompiler berhasil diluncurkan, Anda menerima log berikut selama fase inisialisasi pekerjaan:
-
dengan TrainingCompilerConfig(debug=False)
Found configuration for Training Compiler
Configuring SM Training Compiler...
-
dengan TrainingCompilerConfig(debug=True)
Found configuration for Training Compiler
Configuring SM Training Compiler...
Training Compiler set to debug mode
Menggunakan CreateTrainingJob
API Operasi SageMaker AI
SageMaker Opsi konfigurasi Training Compiler harus ditentukan melalui HyperParameters
bidang AlgorithmSpecification
and dalam sintaks permintaan untuk operasi. CreateTrainingJob
API
"AlgorithmSpecification": {
"TrainingImage": "<sagemaker-training-compiler-enabled-dlc-image>
"
},
"HyperParameters": {
"sagemaker_training_compiler_enabled": "true",
"sagemaker_training_compiler_debug_mode": "false",
"sagemaker_pytorch_xla_multi_worker_enabled": "false" // set to "true" for distributed training
}
Untuk menemukan daftar lengkap image container deep learning URIs yang telah diimplementasikan SageMaker Training Compiler, lihatKerangka Kerja yang Didukung.