Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Layanan Web Amazon

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Layanan Web Amazon

Model bahasa besar (atau LLM) telah menjadi topik pembicaraan sehari-hari. Penerapannya yang cepat terbukti dari jumlah waktu yang dibutuhkan untuk menjangkau 100 juta pengguna, yang telah meningkat dari โ€œ4.5 tahun melalui facebookโ€ ke titik terendah sepanjang masa, hanya โ€œ2 bulan melalui ChatGPT.โ€ Transformator terlatih generatif (GPT) menggunakan pembaruan autoregresif kausal untuk membuat prediksi. Berbagai tugas seperti pengenalan suara, pembuatan teks, dan menjawab pertanyaan terbukti memiliki kinerja luar biasa dengan arsitektur model ini. Beberapa model terbaru seperti Neox, elang, Llama menggunakan arsitektur GPT sebagai tulang punggung. Pelatihan LLM memerlukan waktu komputasi yang sangat besar, yang menghabiskan biaya jutaan dolar. Pada postingan kali ini, kami akan merangkum prosedur pelatihan GPT Neox on Pelatihan AWS, akselerator pembelajaran mesin (ML) yang dibuat khusus dan dioptimalkan untuk pelatihan pembelajaran mendalam. Kami akan menguraikan bagaimana kami melatih model tersebut dengan AWS Trainium dengan hemat biaya (3.2 juta token/$) tanpa kehilangan kualitas model apa pun.

Ikhtisar solusi

Model GPT NeoX dan Pythia

GPT NeoX dan pythia adalah model bahasa kausal sumber terbuka oleh Eleuther-AI dengan sekitar 20 miliar parameter di NeoX dan 6.9 miliar di Pythia. Keduanya adalah model dekoder yang mengikuti desain arsitektur serupa seperti Chat GPT3. Namun, mereka juga memiliki beberapa tambahan, yang juga banyak diadopsi pada model terkini seperti Llama. Khususnya, mereka memiliki penyematan posisi rotasi (ROPE) dengan rotasi parsial melintasi dimensi kepala. Model asli (NeoX dan Pythia 6.9B) dilatih pada model yang tersedia secara terbuka Kumpulan data tumpukan dengan deduplikasi dan menggunakan backend Megatron dan Deepspeed.

Kami mendemonstrasikan pra-pelatihan dan penyempurnaan model ini pada instans Trn1 berbasis AWS Trainium menggunakan Neuron NeMo perpustakaan. Untuk menetapkan bukti konsep dan reproduksi cepat, kami akan menggunakan subset data Wikipedia yang lebih kecil yang diberi token menggunakan tokenizer GPT2 Byte-pair coding (BPE).

Walkthrough

Unduh kumpulan data Wikipedia yang telah diberi token seperti yang ditunjukkan:

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

Baik NeoX 20B maupun Pythia 6.9B menggunakan ROPE dengan putaran parsial, misalnya memutar 25% dimensi kepala dan sisanya tidak diputar. Untuk menerapkan rotasi parsial secara efisien pada akselerator AWS Trainium, alih-alih menggabungkan dimensi berputar dan tidak berputar, kami menambahkan frekuensi nol untuk dimensi tidak berputar dan kemudian memutar set lengkap dimensi kepala. Trik sederhana ini membantu kami meningkatkan throughput (urutan yang diproses per detik) di AWS Trainium.

Langkah-langkah pelatihan

Untuk menjalankan pelatihan, kami menggunakan Amazon Elastic Compute Cloud multi-node yang dikelola SLURM (Amazon EC2) Cluster Trn1, dengan setiap node berisi instance trn1.32xl. Setiap trn1.32xl memiliki 16 akselerator dengan dua pekerja per akselerator. Setelah mendownload yang terbaru Neuron NeMo paket, gunakan yang disediakan baru dan pythia skrip pra-pelatihan dan penyempurnaan dengan hyper-parameter yang dioptimalkan dan jalankan yang berikut untuk pelatihan empat node.

  1. Kompilasi: Pra-kompilasi model dengan tiga iterasi kereta untuk menghasilkan dan menyimpan grafik:
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. Jalankan: Jalankan pelatihan dengan memuat grafik cache dari langkah pertama
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. Pantau hasil
    tensorboard --logdir=nemo_experiments/megatron_neox

Langkah yang sama perlu diikuti untuk menjalankan model Pythia 6.9B dengan penggantian neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

Eksperimen pra-pelatihan dan penyesuaian

Kami mendemonstrasikan pra-pelatihan model GPT-NeoX dan Pythia di AWS Trainium menggunakan Neuron NeMo perpustakaan untuk 10 ribu iterasi, dan juga tampilkan penyempurnaan model ini untuk 1 ribu langkah. Untuk pra-pelatihan, kami menggunakan tokenizer GPT2 BPE di dalam NeMo dan mengikuti hal yang sama config seperti yang digunakan pada model aslinya. Penyempurnaan pada AWS Trainium memerlukan perubahan beberapa parameter (seperti faktor pembagian ukuran kosakata), yang disediakan dalam skrip penyesuaian untuk mengakomodasi perbedaan Megatron versus NeMo dan perubahan GPU versus AWS Trainium. Throughput pelatihan terdistribusi multi-node dengan jumlah node yang bervariasi ditunjukkan pada Tabel-1.

Model Tensor Paralel Pipa Paralel Jumlah contoh Biaya ($/jam) Panjang urutan Ukuran kumpulan global Throughput (detik/detik) Rasio biaya-throughput (token/$)
Pythia 6.9B 8 1 1 7.59 2048 256 10.4 10,102,387
8 1 4 30.36 2048 256 35.8 8,693,881
NeoX 20B 8 4 4 30.36 2048 16384 13.60 3,302,704
8 4 8 60.72 2048 16384 26.80 3,254,134
8 4 16 121.44 2048 16384 54.30 3,296,632
8 4 32 242.88 2048 16384 107.50 3,263,241
8 4 64 485.76 2048 16384 212.00 3,217,708

Tabel 1. Membandingkan throughput rata-rata model GPT NeoX dan Pythia untuk pelatihan hingga 500 langkah dengan jumlah node yang berubah. Itu harga trn1.32xl didasarkan pada tarif efektif per jam yang dicadangkan selama 3 tahun.

Selanjutnya, kami juga mengevaluasi lintasan kerugian pelatihan model di AWS Trainium dan membandingkannya dengan proses yang sesuai pada kluster P4d (inti GPU Nvidia A100). Seiring dengan hilangnya pelatihan, kami juga membandingkan indikator yang berguna seperti norma gradien, yang merupakan 2 norma gradien model yang dihitung pada setiap iterasi pelatihan untuk memantau kemajuan pelatihan. Hasil pelatihan ditunjukkan pada Gambar-1, 2 dan penyempurnaan NeoX 20B pada Gambar-3.

Kerugian pelatihan dirata-ratakan pada seluruh pekerja (kiri) dan norma gradien (kanan) pada pelatihan setiap langkah.

Gambar 1. Kerugian pelatihan dirata-ratakan pada seluruh pekerja (kiri) dan norma gradien (kanan) pada pelatihan setiap langkah. NeoX 20B dilatih pada 4 node dengan kumpulan data wiki kecil pada GPU dan Trainium dengan hyper-parameter pelatihan yang sama (ukuran batch global=256). GPU menggunakan BF16 dan presisi campuran default, sedangkan AWS Trainium menggunakan BF16 penuh dengan pembulatan stokastik. Lintasan norma kehilangan dan gradien cocok untuk GPU dan AWS Trainium.

Kerugian pelatihan dirata-ratakan di seluruh pekerja (kiri) dan norma gradien (kanan) pada pelatihan setiap langkah (Pythia).

Gambar 2. Kerugian pelatihan dirata-ratakan pada seluruh pekerja (kiri) dan norma gradien (kanan) pada pelatihan setiap langkah. Mirip dengan GPT NeoX pada Gambar-1, Pythia 6.9B dilatih pada 4 node dengan kumpulan data wiki kecil di GPU dan Trainium dengan hyper-parameter pelatihan yang sama (ukuran batch global=256). Lintasan norma kehilangan dan gradien cocok untuk GPU dan Trainium.

Menyempurnakan model GPT NeoX 20B pada GPU dan AWS Trainium dengan rata-rata kerugian pelatihan di seluruh pekerja (kiri) dan norma gradien (kanan).

Gambar 3. Menyempurnakan model GPT NeoX 20B pada GPU dan AWS Trainium dengan rata-rata kerugian pelatihan di seluruh pekerja (kiri) dan norma gradien (kanan). Kumpulan data wiki kecil digunakan untuk menyempurnakan demonstrasi. Lintasan norma kehilangan dan gradien cocok untuk GPU dan AWS Trainium.

Dalam postingan ini, kami menunjukkan pelatihan LLM yang hemat biaya pada perangkat keras pembelajaran mendalam AWS. Kami melatih model GPT NeoX 20B dan Pythia 6.9B di AWS Trn1 dengan perpustakaan Neuron NeMo. Biaya throughput yang dinormalisasi untuk 20 miliar model dengan AWS Trainium adalah sekitar 3.2 juta token/$ yang dibelanjakan. Seiring dengan pelatihan yang hemat biaya di AWS Trainium, kami memperoleh akurasi model serupa, yang terlihat dari hilangnya langkah pelatihan dan lintasan norma gradien. Kami juga menyempurnakan pos pemeriksaan yang tersedia untuk model NeoX 20B di AWS Trainium. Untuk informasi tambahan tentang pelatihan terdistribusi dengan NeMo Megatron di AWS Trainium, lihat Referensi Neuron AWS untuk NeMo Megatron. Sumber daya yang bagus untuk mulai menyempurnakan model Llama dapat ditemukan di sini, Penyempurnaan Llama2. Untuk memulai AWS Trainium terkelola Amazon SageMaker, Lihat Latih Model ML Anda dengan AWS Trainium dan Amazon SageMaker.


Tentang Penulis

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Gaurav Gupta saat ini menjadi Ilmuwan Terapan di laboratorium AI Amazon Web Services (AWS). Dr Gupta menyelesaikan gelar PhD dari USC Viterbi. Minat penelitiannya mencakup domain pemodelan data sekuensial, pembelajaran persamaan diferensial parsial, teori informasi untuk pembelajaran mesin, model dinamis pecahan, dan jaringan kompleks. Saat ini dia sedang mengerjakan masalah terapan dan matematika pada perilaku pelatihan LLM, model visi dengan PDE, model multi-modalitas teori informasi. Gupta memiliki publikasi di jurnal/konferensi terkemuka seperti Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical society.

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Ben Snyder adalah ilmuwan terapan di AWS Deep Learning. Minat penelitiannya meliputi model dasar, pembelajaran penguatan, dan optimasi asinkron. Di luar pekerjaan, dia menikmati bersepeda dan berkemah di pedalaman.

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Amith (kanan) Mamidala adalah teknisi aplikasi pembelajaran mesin senior di AWS Annapurna Labs. Dr. Mamidala menyelesaikan gelar PhD di Ohio State University dalam bidang komputasi dan komunikasi kinerja tinggi. Selama masa jabatannya di penelitian IBM, Dr. Mamidala berkontribusi terhadap kelas komputer BlueGene yang sering menduduki peringkat Top500 superkomputer paling kuat dan hemat daya. Proyek ini dianugerahi medali Nasional Teknologi dan Inovasi 2009. Setelah sempat menjabat sebagai insinyur AI di dana lindung nilai keuangan, Dr. Mamidala bergabung dengan laboratorium Annapurna yang berfokus pada pelatihan model Bahasa Besar.

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Jun (Lukas) Huan adalah ilmuwan utama di AWS AI Labs. Dr. Huan bekerja di bidang AI dan Ilmu Data. Dia telah menerbitkan lebih dari 180 makalah tinjauan sejawat di konferensi dan jurnal terkemuka. Ia adalah penerima Penghargaan Pengembangan Karir Dini Fakultas NSF pada tahun 2009. Sebelum bergabung dengan AWS, ia bekerja di penelitian Baidu sebagai ilmuwan terkemuka dan kepala Laboratorium Big Data Baidu. Ia mendirikan StylingAI Inc., sebuah start-up AI, dan menjabat sebagai CEO dan Kepala Ilmuwan pada 2019-2021. Sebelum bergabung dengan industri, dia adalah Profesor Charles E. dan Mary Jane Spahr di Departemen EECS di Universitas Kansas.

Berhemat bertemu Akurasi: Pelatihan model GPT NeoX dan Pythia yang hemat biaya dengan AWS Trainium | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Shruti Koparkar adalah Manajer Pemasaran Produk Senior di AWS. Dia membantu pelanggan menjelajahi, mengevaluasi, dan mengadopsi infrastruktur komputasi terakselerasi Amazon EC2 untuk kebutuhan pembelajaran mesin mereka.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS