View a markdown version of this page

Jalan PyTorch kan Pekerjaan Pelatihan dengan Tra SageMaker ining Compiler - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalan PyTorch kan Pekerjaan Pelatihan dengan Tra SageMaker ining Compiler

penting

Pemberitahuan penghentian penggunaan: SageMaker Kompiler Pelatihan tidak didukung di SageMaker Python SDK v3. Jika saat ini Anda menggunakan Training Compiler, lanjutkan menggunakan SageMaker Python SDK v2. Untuk proyek baru, pertimbangkan untuk menggunakan ModelTrainer kelas terpadu dengan kerangka kerja yang didukung. Lihat dokumentasi SageMaker Python SDK untuk panduan migrasi.

Anda dapat menggunakan antarmuka SageMaker AI apa pun untuk menjalankan pekerjaan pelatihan dengan Tra SageMaker ining Compiler: Amazon SageMaker Studio Classic, instans SageMaker notebook Amazon, AWS SDK for Python (Boto3), dan AWS Command Line Interface.

Menggunakan SageMaker Python SDK

SageMaker Kompil PyTorch er Pelatihan untuk tersedia melalui kelas SageMaker AI PyTorch dan HuggingFace kerangka kerja estimator. Untuk mengaktifkan Tra SageMaker ining Compiler, tambahkan compiler_config parameter ke estimator SageMaker AI. Imp TrainingCompilerConfig or kelas dan berikan instance ke compiler_config parameter. Contoh kode berikut menunjukkan struktur kelas estimator SageMaker AI dengan Tra SageMaker ining Compiler diaktifkan.

Tip

Untuk memulai dengan model bawaan yang disediakan oleh PyTorch atau Transformers, coba gunakan ukuran batch yang disediakan dalam tabel referensi diModel yang Diuji.

catatan

PyTorch Dukungan asli tersedia di SageMaker Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker Python SDK sesuai dengan itu.

catatan

Mulai PyTorch v1.12.0, wadah Kompiler Pel SageMaker atihan untuk PyTorch tersedia. Perhatikan bahwa wadah Tra SageMaker ining Compil PyTorch er untuk tidak dikemas sebelumnya 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 Tra SageMaker ining Compiler untuk Hugging Face dan. PyTorch

Untuk daftar lengkap versi kerangka kerja dan informasi wadah 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 Tra SageMaker ining Compiler seperti yang ditunjukkan pada contoh kode berikut.

catatan

PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.120.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI Python SDK.

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 Tra SageMaker ining 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 berikut.

Untuk menemukan contoh ujung ke ujung, 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.

catatan

PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI Python SDK.

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()
Tip

Untuk menyiapkan skrip 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()
Tip

Untuk menyiapkan skrip pelatihan Anda, lihat halaman berikut.

Transformers v4.17 with PyTorch v1.10.2 and before

Untuk versi PyTorch v1.10.2 dan sebelumnya yang didukung, Tra SageMaker ining Compiler memerlukan mekanisme alternatif untuk meluncurkan pekerjaan pelatihan terdistribusi. Untuk menjalankan pelatihan terdistribusi, Tra SageMaker ining Compiler mengharuskan Anda untuk meneruskan skrip peluncur pelatihan terdistribusi SageMaker AI ke entry_point argumen, dan meneruskan skrip pelatihan Anda ke hyperparameters argumen. 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 instance 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)
Tip

Untuk menyiapkan skrip pelatihan Anda, lihat halaman berikut.

Daftar berikut adalah kumpulan parameter minimal yang diperlukan untuk menjalankan pekerjaan SageMaker pelatihan dengan kompiler.

catatan

Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukan compiler_config parameter,transformers_version, pytorch_versionhyperparameters, dan untuk mengaktifkan Tra SageMaker ining Compiler. Anda tidak dapat menggunakan image_uri untuk secara manual menentukan Kontainer Pembelajaran Mendalam terintegrasi Training Compiler yang tercantum diKerangka Kerja yang Didukung.

  • entry_point(str) — Diperlukan. Tentukan nama file skrip pelatihan Anda.

    catatan

    Untuk menjalankan pelatihan terdistribusi dengan Tra SageMaker ining 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 membuat 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 estimator SageMaker AI Hugging Face. Tentukan versi pustaka Hugging Face Transformers yang didukung oleh Tra SageMaker ining Compiler. Untuk menemukan versi yang tersedia, lihatKerangka Kerja yang Didukung.

  • framework_versionatau pytorch_version (str) — Diperlukan. Tentukan PyTorch versi yang didukung oleh Tra SageMaker ining Compiler. Untuk menemukan versi yang tersedia, lihatKerangka Kerja yang Didukung.

    catatan

    Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukan keduanya transformers_version dan. pytorch_version

  • hyperparameters(dict) - Opsional. Tentukan hyperparameter untuk pekerjaan pelatihan, sepertin_gpus,batch_size, danlearning_rate. Saat Anda mengaktifkan Tra SageMaker ining 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.

    catatan

    Untuk menjalankan pelatihan terdistribusi dengan Tra SageMaker ining 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 object) — Diperlukan untuk mengaktifkan Tra SageMaker ining Compiler. Sertakan parameter ini untuk mengaktifkan Tra SageMaker ining Compiler. Berikut ini adalah parameter untuk TrainingCompilerConfig kelas.

    • enabled(bool) - Opsional. Tentukan True atau False untuk menghidupkan atau mematikan Kompiler Pel SageMaker atihan. Nilai default-nya adalah True.

    • debug(bool) - Opsional. Untuk menerima log pelatihan yang lebih rinci dari pekerjaan pelatihan yang dipercepat kompiler Anda, ubah menjadi. True Namun, logging tambahan mungkin menambah overhead dan memperlambat pekerjaan pelatihan yang dikompilasi. Nilai default-nya adalah False.

  • distribution(dict) - Opsional. Untuk menjalankan tugas pelatihan terdistribusi dengan Tra SageMaker ining Compiler, tambahkandistribution = { 'pytorchxla' : { 'enabled': True }}.

Awas

Jika Anda mengaktifkan SageMaker Debugger, itu mungkin memengaruhi kinerja Tra SageMaker ining Compiler. Sebaiknya matikan Debugger saat menjalankan Tra SageMaker ining Compiler untuk memastikan tidak ada dampak pada kinerja. Untuk informasi selengkapnya, lihat Pertimbangan-pertimbangan. Untuk mematikan fungsi 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 Oper SageMaker asi CreateTrainingJob API AI

SageMaker Opsi konfigurasi Kompiler Pelatihan harus ditentukan melalui HyperParameters bidang AlgorithmSpecification dan 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 URI gambar wadah pembelajaran mendalam yang telah menerapkan Tra SageMaker ining Compiler, lihat. Kerangka Kerja yang Didukung