

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

# Konsep paralelisme model
<a name="model-parallel-intro-v2"></a>

Paralelisme model adalah metode pelatihan terdistribusi di mana model pembelajaran mendalam (DL) dipartisi di beberapa GPU dan instance. SageMaker Model parallel library v2 (SMP v2) kompatibel dengan PyTorch API dan kemampuan asli. Ini memudahkan Anda untuk menyesuaikan skrip pelatihan PyTorch Fully Sharded Data Parallel (FSDP) Anda ke platform SageMaker Pelatihan dan memanfaatkan peningkatan kinerja yang disediakan SMP v2. Halaman pengantar ini memberikan gambaran tingkat tinggi tentang paralelisme model dan deskripsi tentang bagaimana hal itu dapat membantu mengatasi masalah yang muncul saat melatih model pembelajaran mendalam (DL) yang biasanya berukuran sangat besar. Ini juga memberikan contoh apa yang ditawarkan perpustakaan paralel SageMaker model untuk membantu mengelola strategi paralel model dan konsumsi memori.

## Apa itu paralelisme model?
<a name="model-parallel-what-is-v2"></a>

Meningkatkan ukuran model pembelajaran mendalam (lapisan dan parameter) menghasilkan akurasi yang lebih baik untuk tugas-tugas kompleks seperti visi komputer dan pemrosesan bahasa alami. Namun, ada batasan untuk ukuran model maksimum yang dapat Anda muat dalam memori satu GPU. Saat melatih model DL, batasan memori GPU dapat menjadi hambatan dengan cara berikut:
+ Mereka membatasi ukuran model yang dapat Anda latih, karena jejak memori model berskala proporsional dengan jumlah parameter.
+ Mereka membatasi ukuran batch per GPU selama pelatihan, menurunkan pemanfaatan GPU dan efisiensi pelatihan.

Untuk mengatasi keterbatasan yang terkait dengan pelatihan model pada satu GPU, SageMaker AI menyediakan perpustakaan paralel model untuk membantu mendistribusikan dan melatih model DL secara efisien pada beberapa node komputasi. Selain itu, dengan perpustakaan, Anda dapat mencapai pelatihan terdistribusi yang dioptimalkan menggunakan EFA-supported perangkat, yang meningkatkan kinerja komunikasi antar-node dengan latensi rendah, throughput tinggi, dan bypass OS.

## Perkirakan kebutuhan memori sebelum menggunakan paralelisme model
<a name="model-parallel-intro-estimate-memory-requirements-v2"></a>

Sebelum Anda menggunakan perpustakaan paralel SageMaker model, pertimbangkan hal berikut untuk memahami persyaratan memori untuk melatih model DL besar.

Untuk pekerjaan pelatihan yang menggunakan presisi campuran otomatis seperti `float16` (FP16) atau `bfloat16` (BF16) dan pengoptimal Adam, memori GPU yang diperlukan per parameter adalah sekitar 20 byte, yang dapat kita uraikan sebagai berikut:
+ Parameter FP16 atau BF16 \~ 2 byte
+ Gradien FP16 atau BF16 \~ 2 byte
+ Status pengoptimal FP32 \~ 8 byte berdasarkan pengoptimal Adam
+ Salinan parameter FP32 \~ 4 byte (diperlukan untuk operasi (OA`optimizer apply`))
+ Salinan gradien FP32 \~ 4 byte (diperlukan untuk operasi OA)

Bahkan untuk model DL yang relatif kecil dengan 10 miliar parameter, dapat memerlukan setidaknya 200GB memori, yang jauh lebih besar daripada memori GPU biasa (misalnya, NVIDIA A100 dengan 40GB/80GB memori) yang tersedia pada satu GPU. Di atas persyaratan memori untuk status model dan pengoptimal, ada konsumen memori lain seperti aktivasi yang dihasilkan dalam pass maju. Memori yang dibutuhkan bisa jauh lebih besar dari 200GB.

Untuk pelatihan terdistribusi, kami menyarankan Anda menggunakan instans Amazon EC2 P4 dan P5 yang masing-masing memiliki GPU NVIDIA A100 dan H100 Tensor Core. Untuk detail selengkapnya tentang spesifikasi seperti inti CPU, RAM, volume penyimpanan terlampir, dan bandwidth jaringan, lihat bagian *Komputasi Akselerasi* di halaman [Jenis Instans Amazon EC2](https://aws.amazon.com/ec2/instance-types/). Misalnya jenis yang didukung SMP v2, lihat[Tipe instans yang didukung](distributed-model-parallel-support-v2.md#distributed-model-parallel-supported-instance-types-v2).

Bahkan dengan instans komputasi yang dipercepat, model dengan sekitar 10 miliar parameter seperti Megatron-LM dan T5, dan bahkan model yang lebih besar dengan ratusan miliar parameter seperti GPT-3, tidak dapat memuat replika model di setiap perangkat GPU. 

## Bagaimana perpustakaan menggunakan paralelisme model dan teknik penghematan memori
<a name="model-parallel-intro-features-v2"></a>

Pustaka terdiri dari berbagai jenis fitur paralelisme model dan fitur hemat memori seperti sharding status pengoptimal, checkpointing aktivasi, dan pembongkaran aktivasi. Semua teknik ini dapat digabungkan untuk melatih model besar secara efisien yang terdiri dari ratusan miliar parameter.

**Topics**
+ [Paralelisme data yang dibagikan](#model-parallel-intro-sdp-v2)
+ [Paralelisme ahli](#model-parallel-intro-expert-parallelism-v2)
+ [Paralelisme tensor](#model-parallel-intro-tp-v2)
+ [Titik pemeriksaan aktivasi dan pembongkaran](#model-parallel-intro-activation-offloading-checkpointing-v2)
+ [Memilih teknik yang tepat untuk model Anda](#model-parallel-intro-choosing-techniques-v2)

### Paralelisme data yang dibagikan
<a name="model-parallel-intro-sdp-v2"></a>

*Paralelisme data sharded* adalah teknik pelatihan terdistribusi hemat memori yang membagi status model (parameter model, gradien, dan status pengoptimal) di seluruh GPU dalam grup data-paralel.

[SMP v2 mengimplementasikan paralelisme data sharded melalui FSDP, dan memperluasnya untuk mengimplementasikan strategi sharding hybrid sadar skala yang dibahas dalam penskalaan posting blog pelatihan model raksasa pada. Near-linear AWS](https://www.amazon.science/blog/near-linear-scaling-of-gigantic-model-training-on-aws)

Anda dapat menerapkan paralelisme data sharded ke model Anda sebagai strategi mandiri. Selain itu, jika Anda menggunakan instans GPU paling berkinerja yang dilengkapi dengan GPU NVIDIA A100 Tensor Core, `ml.p4d.24xlarge` dan`ml.p4de.24xlarge`, Anda dapat memanfaatkan peningkatan kecepatan pelatihan dari `AllGather` operasi yang ditawarkan oleh perpustakaan paralelisme [SageMaker data](data-parallel.md) (SMDDP).

Untuk menyelam jauh ke dalam paralelisme data sharded dan mempelajari cara mengaturnya atau menggunakan kombinasi paralelisme data sharded dengan teknik lain seperti paralelisme tensor dan pelatihan presisi campuran, lihat. [Paralelisme data sharded hibrida](model-parallel-core-features-v2-sharded-data-parallelism.md)

### Paralelisme ahli
<a name="model-parallel-intro-expert-parallelism-v2"></a>

SMP v2 terintegrasi dengan [NVIDIA Megatron](https://github.com/NVIDIA/Megatron-LM) untuk menerapkan *paralelisme ahli* di atas dukungannya untuk API FSDP asli. PyTorch Anda dapat menyimpan kode pelatihan PyTorch FSDP Anda apa adanya dan menerapkan paralelisme pakar SMP untuk melatih model *Mixture of Experts* (MoE) dalam AI. SageMaker 

Model MoE adalah jenis model transformator yang terdiri dari beberapa *ahli*, masing-masing terdiri dari jaringan saraf, biasanya jaringan feed-forward (FFN). Jaringan gerbang yang disebut *router* menentukan token mana yang dikirim ke ahli mana. Para ahli ini mengkhususkan diri dalam memproses aspek-aspek spesifik dari data input, memungkinkan model untuk melatih lebih cepat, mengurangi biaya komputasi, sambil mencapai kualitas kinerja yang sama dengan model padat mitranya. Dan *paralelisme ahli* adalah teknik paralelisme yang menangani para ahli pemisahan model MoE di seluruh perangkat GPU.

Untuk mempelajari cara melatih model MoE dengan SMP v2, lihat. [Paralelisme ahli](model-parallel-core-features-v2-expert-parallelism.md)

### Paralelisme tensor
<a name="model-parallel-intro-tp-v2"></a>

*Paralelisme tensor* membagi lapisan individu, atau`nn.Modules`, di seluruh perangkat untuk berjalan secara paralel. Gambar berikut menunjukkan contoh paling sederhana tentang bagaimana perpustakaan SMP membagi model dengan empat lapisan untuk mencapai paralelisme tensor dua arah (). `"tensor_parallel_degree": 2` Pada gambar berikut, notasi untuk grup paralel model, grup paralel tensor, dan grup paralel data adalah`MP_GROUP`,`TP_GROUP`, dan `DP_GROUP` masing-masing. Lapisan setiap replika model dibagi dua dan didistribusikan menjadi dua GPU. Perpustakaan mengelola komunikasi di seluruh replika model terdistribusi tensor.

![Contoh paling sederhana tentang bagaimana perpustakaan SMP membagi model dengan empat lapisan untuk mencapai paralelisme tensor dua arah (“tensor_parallel_degree”: 2).](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/distributed/model-parallel/smp-v2-tensor-parallel.png)


Untuk menyelam jauh ke dalam paralelisme tensor dan fitur hemat memori lainnya untuk PyTorch, dan untuk mempelajari cara mengatur kombinasi fitur inti, lihat. [Paralelisme tensor](model-parallel-core-features-v2-tensor-parallelism.md)

### Titik pemeriksaan aktivasi dan pembongkaran
<a name="model-parallel-intro-activation-offloading-checkpointing-v2"></a>

Untuk menyimpan memori GPU, pustaka mendukung checkpointing aktivasi untuk menghindari penyimpanan aktivasi internal dalam memori GPU untuk modul yang ditentukan pengguna selama forward pass. Pustaka menghitung ulang aktivasi ini selama pass mundur. Selain itu, dengan pembongkaran aktivasi, ia menurunkan aktivasi yang disimpan ke memori CPU dan mengambilnya kembali ke GPU selama lintasan mundur untuk lebih mengurangi jejak memori aktivasi. Untuk informasi selengkapnya tentang cara menggunakan fitur ini, lihat [Pos pemeriksaan aktivasi](model-parallel-core-features-v2-pytorch-activation-checkpointing.md) dan[Pembongkaran aktivasi](model-parallel-core-features-v2-pytorch-activation-offloading.md).

### Memilih teknik yang tepat untuk model Anda
<a name="model-parallel-intro-choosing-techniques-v2"></a>

Untuk informasi selengkapnya tentang memilih teknik dan konfigurasi yang tepat, lihat[SageMaker praktik terbaik paralelisme model terdistribusi](model-parallel-best-practices-v2.md).