SageMaker praktik terbaik paralelisme model terdistribusi - Amazon SageMaker

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

SageMaker praktik terbaik paralelisme model terdistribusi

Gunakan panduan berikut saat Anda menjalankan pekerjaan pelatihan terdistribusi dengan SageMaker model parallel library v2 (SMP v2).

Menyiapkan konfigurasi yang tepat untuk pelatihan terdistribusi

Untuk memperkirakan dan menemukan titik awal terbaik untuk menerapkan teknik pelatihan terdistribusi yang disediakan SMP v2, tinjau daftar berikut. Setiap item daftar membahas keuntungan menggunakan Fitur inti dari perpustakaan paralelisme SageMaker model v2 bersama dengan potensi pengorbanan.

Kiat konfigurasi

Bagian ini memberikan panduan tentang cara memutuskan konfigurasi model terbaik untuk throughput optimal dengan persyaratan ukuran batch global.

Pertama, kami merekomendasikan pengaturan berikut terlepas dari ukuran model Anda.

  1. Gunakan jenis instans paling kuat yang dapat Anda gunakan.

  2. Nyalakan presisi campuran sepanjang waktu, karena memberikan manfaat besar untuk kinerja dan pengurangan memori. Kami menyarankan Anda untuk menggunakannya bfloat16 karena lebih tepat daripadafloat16.

  3. Aktifkan pustaka paralelisme data SageMaker terdistribusi (bukan menggunakan NCCL) kapan pun itu berlaku, seperti yang ditunjukkan pada. Kompatibilitas dengan SMDDP perpustakaan yang dioptimalkan untuk AWS infrastruktur Satu pengecualian adalah untuk kasus tensor-parallelism-only penggunaan (hybrid_shard_degree = 1dantensor_paralle_degree > 1).

  4. Jika model Anda memiliki lebih dari sekitar 60 miliar parameter, sebaiknya gunakanInisialisasi parameter tertunda. Anda juga dapat menggunakan inisialisasi parameter tertunda untuk mempercepat inisialisasi untuk model apa pun.

  5. Kami menyarankan Anda untuk mengaktifkanPos pemeriksaan aktivasi.

Tergantung pada ukuran model Anda, kami sarankan Anda memulai dengan panduan berikut.

  1. Gunakan paralelisme data sharded.

    1. Bergantung pada ukuran batch yang ingin Anda muat dalam memori GPU, pilih derajat paralel data sharded yang sesuai. Biasanya, Anda harus mulai dengan tingkat terendah agar sesuai dengan model Anda dalam memori GPU sambil meminimalkan overhead dari komunikasi jaringan. Jika Anda melihat peringatan bahwa cache flushes sedang terjadi, kami sarankan Anda meningkatkan derajat sharding.

    2. Tentukan world_size berdasarkan ukuran batch lokal maksimum dan ukuran batch global yang diperlukan, jika ada.

    3. Anda dapat bereksperimen dengan pembongkaran aktivasi. Tergantung pada skenario, itu dapat memenuhi kebutuhan memori Anda tanpa harus meningkatkan derajat sharding, yang berarti lebih sedikit komunikasi.

  2. Gunakan paralelisme data sharded dari PyTorch FSDP dan paralelisme tensor SMP v2 secara bersamaan, seperti yang diperkenalkan pada. Paralelisme tensor

    1. Saat berlatih pada cluster besar, dengan FSDP saja ukuran batch global bisa menjadi terlalu besar, menyebabkan masalah konvergensi untuk model. Biasanya, sebagian besar pekerjaan penelitian membuat ukuran batch di bawah 4 juta token. Dalam hal ini, Anda dapat menyelesaikan masalah dengan menyusun PyTorch FSDP dengan paralelisme tensor SMP v2 untuk mengurangi ukuran batch.

      Misalnya, jika Anda memiliki 256 node dan panjang urutan 4096, bahkan ukuran batch 1 per GPU mengarah ke ukuran batch global 8M token. Namun, ketika Anda menggunakan paralelisme tensor dengan derajat 2 dan ukuran batch 1 per grup paralel tensor, ini menjadi 1/2 ukuran batch per GPU, yang diterjemahkan menjadi 4 juta token.

    2. Saat berlatih dengan panjang konteks yang panjang seperti 8k, memori aktivasi 16k bisa menjadi sangat tinggi. FSDP tidak memecah aktivasi, dan aktivasi dapat menyebabkan GPU kehabisan memori. Dalam skenario seperti itu, Anda dapat berlatih secara efisien dengan menyusun PyTorch FSDP dengan paralelisme tensor SMP v2.

Konfigurasi referensi

Tim pelatihan paralelisme SageMaker model menyediakan titik referensi berikut berdasarkan eksperimen dengan model Llama 2 yang diubah menjadi model transformator SMP menggunakantorch.sagemaker.transform, dan dilatih pada ml.p4d.24xlarge instance dengan panjang urutan 4096 dan presisi campuran (FP16 atau BF16).

Model Ukuran model (jumlah parameter model) Jumlah contoh Derajat paralel data sharded Derajat paralel tensor Pos pemeriksaan aktivasi Pembongkaran aktivasi Ukuran batch
Llama 2 7B 1 8 1 BETUL SALAH 4
70B 32 256 1 BETUL SALAH 2
175B 64 128 4 BETUL BETUL 6

Anda dapat mengekstrapolasi dari konfigurasi sebelumnya untuk memperkirakan penggunaan memori GPU untuk konfigurasi model Anda. Misalnya, jika Anda menambah panjang urutan untuk model 10 miliar parameter atau meningkatkan ukuran model menjadi 20 miliar, Anda mungkin ingin menurunkan ukuran batch terlebih dahulu. Jika model masih tidak cocok, coba tingkatkan derajat paralelisme tensor.

Memantau dan mencatat pekerjaan pelatihan menggunakan SageMaker konsol dan Amazon CloudWatch

Untuk memantau metrik tingkat sistem seperti pemanfaatan memori CPU, pemanfaatan memori GPU, dan pemanfaatan GPU, gunakan visualisasi yang disediakan melalui konsol. SageMaker

  1. Di panel navigasi kiri, pilih Pelatihan.

  2. Pilih pekerjaan Pelatihan.

  3. Di panel utama, pilih nama pekerjaan pelatihan yang ingin Anda lihat lebih jelasnya.

  4. Jelajahi panel utama dan temukan bagian Monitor untuk melihat visualisasi otomatis.

  5. Untuk melihat log pekerjaan pelatihan, pilih Lihat log di bagian Monitor. Anda dapat mengakses log pekerjaan pelatihan terdistribusi dari pekerjaan pelatihan di CloudWatch. Jika Anda meluncurkan pelatihan terdistribusi multi-node, Anda akan melihat beberapa aliran log dengan tag dalam format algo-n-1234567890. Aliran log algo-1 melacak log pelatihan dari simpul utama (ke-0).

Untuk informasi selengkapnya, lihat CloudWatch Metrik Amazon untuk Memantau dan Menganalisis Pekerjaan Pelatihan.

Izin

Untuk menjalankan pekerjaan SageMaker pelatihan dengan paralelisme model, pastikan Anda memiliki izin yang tepat dalam peran IAM Anda, seperti berikut ini: