Parameter model AI telah berubah secara dramatis selama beberapa tahun terakhir. You Yang menunjukkan bahwa dari 2016 hingga Januari 2021, jumlah parameter model AI meningkat 40 kali lipat setiap 18 bulan; dari Januari 2018 hingga Januari 2021, jumlah parameter model AI besar model bahasa meningkat setiap 18 bulan sebanyak 340 kali lipat. Sebaliknya, antara Januari 2016 dan Januari 2021, memori GPU hanya akan meningkat 1,7 kali lipat setiap 18 bulan.
Terlihat bahwa biaya pelatihan yang tinggi dan siklus yang panjang merupakan permasalahan yang paling sulit diatasi dalam pengembangan model berukuran besar.
Menanggapi masalah ini, You Yang mengusulkan sistem Colossal-AI, dimulai dari tiga tingkat sistem memori efisiensi tinggi, sistem paralel N-dimensi dan optimasi skala besar, untuk meminimalkan pergerakan data dalam kondisi peralatan yang sama dan memaksimalkan throughput GPU. ditingkatkan hingga titik tertinggi.
You Yang juga menunjukkan bahwa jumlah parameter model pada tahap ini telah bertambah 100.000 kali lipat, namun jumlah lapisannya tidak bertambah banyak, yang mungkin berarti bahwa perkembangan AI saat ini mungkin bukan lagi pembelajaran mendalam, tetapi sudah masuk. era pembelajaran luas. Saat model menjadi lebih luas, dalam menghadapi tugas pelatihan GPU berskala besar dan jangka panjang, inti dari sistem pelatihan model besar adalah bagaimana menerapkan komputasi paralel GPU untuk mencapai tujuan model besar yang lebih cepat dan hemat biaya. pelatihan.
Berikut isi pidato langsung You Yang yang telah diedit dan disusun oleh Leifeng.com tanpa mengubah maksud awal:
Peluang dan Tantangan Model Besar AI
Pertama tunjukkan gambarnya. Absis pada grafik adalah waktu, dan ordinatnya adalah besaran parameter model AI.
Dari tahun 2016 hingga Januari 2021, volume parameter model besar AI akan meningkat sekitar 40 kali lipat setiap 18 bulan; dari Januari 2018 hingga Januari 2021, volume parameter model AI akan meningkat 340 kali lipat setiap 18 bulan.
Pada tahun 2016, model terbaik di dunia saat itu adalah ResNet-50, dan model terbaik saat ini adalah GPT-4. Dari segi arsitektur, meskipun OpenAI belum mengumumkan arsitektur GPT-4, namun dibandingkan dengan jaringan saraf 50 lapis ResNet-50 dan arsitektur GPT-3 yang memiliki kurang dari 100 lapisan, dapat dikatakan bahwa jumlah lapisan model AI dalam beberapa tahun terakhir belum terlalu banyak perubahan.
Dari ResNet-50 hingga GPT-4, meskipun jumlah parameternya meningkat sekitar 100.000 kali lipat, setiap lapisan sebenarnya menjadi lebih luas. Termasuk versi LLaMA-65B, juga merupakan jaringan dengan puluhan lapisan.
Jadi kita mungkin belum deep learning, tapi sudah memasuki era broad learning.
Terlihat bahwa sejak tahun 2019, arsitektur Transformer pada dasarnya telah menyatukan jalur model AI skala besar, dan model AI skala besar yang paling efisien saat ini semuanya adalah arsitektur Transformer. Dua garis putus-putus pada gambar di atas tidak hanya menunjukkan tren perubahan parameter model besar, tetapi juga menunjukkan tren perubahan GPU.
Meskipun harga saham Nvidia kini telah meningkat berkali-kali lipat, tingkat pertumbuhan memori GPU dari produsen termasuk Nvidia jauh tertinggal dari kecepatan pengembangan model besar.
Dibandingkan dengan tingkat pertumbuhan parameter model dalam enam tahun terakhir, dari Januari 2016 hingga Januari 2021, tingkat pertumbuhan komputasi GPU NVIDIA hanya meningkat 1,7 kali lipat setiap 18 bulan.
Ambil A100 80G sebagai contoh untuk menghitung jumlah memori yang diperlukan untuk pelatihan GPT-3. GPT-3 memiliki sekitar 175 miliar parameter. Untuk memudahkan penghitungan, ambil bilangan bulat 200 miliar, yang sama dengan 200 dikalikan 10 hingga pangkat 9, dan setiap presisi menempati 4 Byte, parameternya saja memakan 800G memori, dan gradien juga membutuhkan 800G memori. Menurut metode optimasi saat ini, informasi seperti momen pertama dan momen kedua disimpan dalam 800G. Dengan kata lain, jika Anda melatih model besar yang tidak melakukan apa pun, Anda memerlukan setidaknya beberapa terabyte memori. Satu GPU A100 dengan memori hanya 80G saja masih jauh dari cukup. Selain itu, semakin besar ukuran batch hasil antara , semakin besar overhead memori.
Inilah sebabnya, dari sudut pandang memori, pelatihan model besar memerlukan ribuan GPU terlebih dahulu.
Berikan contoh yang dapat diukur. PaLM adalah model besar senilai 540 miliar Menurut harga pasar komputasi awan saat ini, pelatihan PaLM memerlukan kontrak setidaknya 1.000 GPU, dan biayanya sekitar lebih dari 9 juta dolar AS. Meta telah dengan jelas menyebutkan sebelumnya bahwa LLaMA perlu menggunakan 2.000 GPU A100, dan dibutuhkan waktu tiga minggu untuk menyelesaikan satu sesi pelatihan.Dari perhitungan tersebut dapat disimpulkan bahwa biaya satu sesi pelatihan LLaMA adalah 5 juta dollar AS.
Namun, karena penyempurnaan model besar tidak terbatas pada satu sesi pelatihan, mungkin diperlukan setidaknya lima atau enam iterasi dari produk model besar yang bagus, dan tahap awal semuanya adalah trial and error. Oleh karena itu, menurut analisis saluran publik, biaya satu sesi pelatihan GPT-4 adalah sekitar 60 juta dolar AS, dan pelatihan memakan waktu setidaknya beberapa bulan. Inilah sebabnya meskipun ChatGPT sudah diupgrade ke versi terbaru, namun lapisan bawahnya masih model versi September 2021. Dengan kata lain, sejak September 2021 hingga saat ini, OpenAI pada dasarnya belum mengupgrade produknya.Alasan mendasarnya adalah biaya pelatihan setiap model tidak hanya tinggi, tetapi siklus pelatihannya juga sangat panjang, sehingga tingginya biaya pelatihan. pelatihan model besar sangat tinggi.serius.
Bayangkan sebuah masalah. Saat ini, ada model besar dengan 1 triliun parameter dan 100 miliar parameter. Dapatkah kita menggunakan metode apa pun untuk mendeteksi apakah model besar dengan triliun parameter lebih baik daripada model besar dengan 100 miliar parameter? Artinya, seberapa besar peningkatan jumlah parameter model?
Saat ini, saya merasa pertanyaan tersebut belum dapat dijawab secara ilmiah untuk saat ini. Ada beberapa alasan.
Pertama-tama, terdapat masalah optimasi non-cembung dalam pelatihan jaringan saraf. Saat ini, sebagian besar titik yang dikonvergensi oleh pelatihan adalah solusi optimal lokal daripada solusi optimal global. Oleh karena itu, kita perlu memverifikasi sejauh mana jaringan saraf dilatih, yang tidak dapat diverifikasi dengan sumber daya komputasi yang ada.
Kesulitan kedua adalah pelatihan model besar seringkali hanya melatih satu atau dua epoch, sedangkan pada model CNN sebelumnya, pelatihan ResNet memiliki 90 epoch, bahkan pelatihan self-supervised learning memiliki 1000 epoch, sehingga model besar hanya melatih satu atau dua epoch. Metode ini setara dengan hanya menelusuri kumpulan data satu atau dua kali, dan konvergensinya bahkan lebih tidak mencukupi. Oleh karena itu, dalam kasus biaya pelatihan yang begitu tinggi, sulit bagi kami untuk memverifikasi apakah model dengan 1 triliun parameter atau model dengan 2 triliun parameter lebih baik, karena potensinya belum sepenuhnya dimanfaatkan melalui eksperimen. Oleh karena itu, menurut saya model besar AI saat ini adalah subjek eksperimen. Cara meningkatkan efisiensi eksperimen ini secara efektif dan mengurangi biaya akan memainkan peran mendasar dalam mempopulerkan seluruh industri.
Kembali ke kenyataan, mengapa semua orang mengejar model besar saat ini? Dari sudut pandang logika matematika, semakin besar parameter model, semakin baik pengaruhnya, yang bersifat mutlak.
Pada saat yang sama, biaya terus meningkat. Saat ini, pelatihan model besar memerlukan ratusan, ribuan, atau bahkan puluhan ribu GPU. Bagaimana cara mengurangi biaya puluhan ribu GPU lebih lanjut merupakan tantangan yang sangat besar.
20 tahun yang lalu, karena saat itu mengandalkan frekuensi utama, semua program bersifat serial. Dengan asumsi kecepatan perangkat keras ditingkatkan 10 kali lipat, kecepatan lari juga dapat ditingkatkan 10 kali lipat tanpa mengubah satu baris kode pun. . Namun saat ini, jika Anda ingin mempercepat kode Anda 10 kali lipat, dengan asumsi perangkat keras sudah 10 kali lebih cepat, namun jika Anda tidak mengoptimalkan kodenya, mungkin malah akan lebih lambat. Alasannya adalah dalam kasus mesin yang lebih besar, seperti di dalam GPU, perpindahan data antara memori GPU dan CPU, atau perpindahan data antar GPU, ditambah perpindahan data yang dilaksanakan oleh server, akan menempati sebagian besar waktu. seluruh sistem Waktu, sebagian besar waktu dihabiskan untuk pergerakan data, dan skalabilitas model akan menjadi buruk.
Saya rasa di masa depan, perangkat lunak yang terdistribusi dengan baik dan perangkat lunak yang terdistribusi dengan buruk mungkin memiliki perbedaan kecepatan 10 kali lipat pada ribuan GPU, atau bahkan 500 GPU.
**Bagaimana cara kerja Colossal-AI? **
Berdasarkan tantangan di atas, kami mengusulkan sistem pelatihan model besar Colossal-AI, yang menyediakan metode pengoptimalan, mengurangi biaya perpindahan data, dan memaksimalkan efisiensi skalabilitas model.
Data spesifiknya adalah penggunaan PyTorch yang paling sederhana untuk melatih GPT-3 membutuhkan biaya 10 juta dolar AS. Setelah Nvidia dioptimalkan, biayanya dapat dikurangi menjadi 3 juta dolar AS dengan Megatron, dan setelah menggunakan Colossal-AI, biayanya dapat dikurangi. menjadi $1,3 juta. Terlihat bahwa dalam kondisi peralatan yang sama, minimalisasi pergerakan data mengurangi proporsi pergerakan data ke level terendah, dan dapat memperluas throughput GPU ke titik tertinggi.
Menanggapi permasalahan di atas, Colossal-AI mengusulkan tiga level. Perangkat lunak serupa lainnya juga mencakup ketiga level ini.
Lapisan pertama adalah mengoptimalkan memori. Pertama, memastikan efisiensi memori dari satu GPU dan satu server adalah yang tertinggi. Ini adalah fondasinya.
Tingkat kedua adalah paralelisme N-dimensi. Saat ini kita menggunakan ribuan atau puluhan ribu GPU, teknologi intinya adalah Parallel Computing (komputasi paralel). Dari 1 GPU hingga 10 GPU, karena skalanya yang relatif kecil, kita bisa dengan mudah mendapatkan speedup 7x; dari 10 hingga 100 GPU, kita mungkin hanya mendapatkan speedup 4x, karena skala paralelnya menjadi lebih besar, dan komunikasinya Harga sudah hilang ke atas. Dan dari 100 GPU menjadi 1000 GPU, karena biaya komunikasi semakin meningkat, kemungkinan besar kecepatannya hanya akan meningkat 2x. Dan dengan beralih dari 1.000 GPU menjadi 10.000 GPU, jika perangkat lunak berjalan dengan buruk, perangkat lunak tersebut mungkin tidak akan bertambah cepat, bahkan mungkin menjadi lebih lambat karena perangkat menghabiskan seluruh waktunya dalam komunikasi dengan kepadatan lebih tinggi.
Yang kedua adalah masalah optimasi. Menurut saya ada dua lapisan arah pengembangan model besar AI di masa depan. Lapisan pertama adalah membuat model lebih cerdas dan merancang struktur yang lebih baik. Misalnya dari BERT ke GPT, atau dari ResNet ke BERT, dll. Ia terus mencoba mengubah struktur model.
Selain itu juga terdapat perbaikan pada metode optimasi, mulai dari peralihan dari SGD ke MOMENTUM, ADAGRAD, dan ADAM saat ini, juga sangat penting untuk memiliki metode optimasi yang lebih baik yang dapat meningkatkan efisiensi hingga 10 kali lipat di masa depan.
Khusus untuk masalah paralel dalam melatih model besar dalam praktik.
Yang pertama adalah paralelisme data, yang merupakan metode paralel paling sederhana dan efisien. Paralelisme data artinya dengan asumsi ada 10.000 gambar, 1.000 gambar diproses dalam setiap siklus, jika ada 10 mesin, setiap mesin dialokasikan 100 gambar, dan semua gambar dapat diproses dalam 10 siklus.
Dalam proses paralelisme data, perlu diringkas. Setiap mesin menggunakan data yang berbeda untuk mendapatkan gradien yang berbeda. Mesin mempelajari perubahan yang berbeda pada data yang berbeda, memperbarui gradien parameter, dan akhirnya menghitung gradien global. Saat ini, metode penjumlahan dan rata-rata digunakan, efeknya sangat bagus. Sebelumnya, metode LARS Colossal-AI dalam paralelisme data mempersingkat waktu pelatihan ImageNet dari satu jam menjadi satu menit untuk Google, Meta, Tencent, Sony, dan perusahaan lain.
Paralelisme data adalah yang paling mendasar dan paling stabil. Setelah membagi data, dengan asumsi ada 10.000 GPU di masa depan, mudah terjadi empat atau lima GPU mogok setiap beberapa jam.Sulit untuk mengoperasikan dan memelihara cluster yang terdiri dari 10.000 GPU, tetapi stabilitas paralelisme data intinya adalah meskipun ada 10.000 GPU yang mogok sekitar selusin, hasil umumnya tidak akan berubah, karena ini adalah penjumlahan dan rata-rata gradien.
Berdasarkan pertimbangan ini, menurut saya paralelisme data adalah infrastruktur fundamental.
Tentu saja paralelisme data saja tidak cukup, alasannya adalah paralelisme data memiliki asumsi bahwa model harus disalin ke setiap GPU atau server, dan server atau GPU akan bertukar gradien. Namun, jika GPU hanya memiliki memori 80G, model dengan triliunan parameter memerlukan memori puluhan terabyte, yang tidak dapat disimpan di GPU.Perlu memotong model ke GPU yang berbeda dan kemudian merangkum hasilnya. Pendekatan ini disebut model paralelisme. Ada dua jenis model paralelisme, yang pertama adalah paralelisme tensor, yaitu model paralelisme dalam suatu lapisan. Misalnya jumlah lapisan GPT-3 sekitar 80 atau 90 lapisan. Model dipotong satu kali untuk setiap lapisan, dan perhitungan dalam lapisan tersebut dibagi menjadi beberapa bagian. Setelah satu lapisan dihitung, lapisan berikutnya dihitung. , dan seterusnya. Ini adalah paralelisme tensor.
Cara lainnya adalah Paralelisme Saluran Pipa (Pipeline Parallelism), sebuah model paralelisme antara paralelisme data dan paralelisme tensor. Dengan membangun beberapa pipa data (pipa), titik data dari setiap pipa data berbeda, yang setara dengan membagi ukuran besar menjadi beberapa ukuran kecil, dan perhitungan pipa dilakukan dengan cara ini. Jika ada 10 pipa, 10 pipa mewakili sepuluh kumpulan data yang berbeda, pipa pertama menghitung data lapisan pertama, dan pipa kedua menghitung lapisan kedua... sejajar dengan cara ini, mirip dengan bangunan kita Demikian pula, 10 teknik tim membangun 1000 lantai, ketika tim teknik pertama membangun lantai pertama gedung pertama, tim teknik kedua membangun lantai dua gedung kedua, dan seterusnya.
Semakin banyak gedung, semakin tinggi rasio antara gedung dan tim teknik, serta semakin tinggi efisiensinya, yang setara dengan 10 tim teknik yang beroperasi pada waktu yang sama. Setiap tim teknik setara dengan GPU, setiap bangunan setara dengan pipa, dan jumlah lapisan bangunan setara dengan jumlah lapisan jaringan saraf, yang merupakan logika inti paralelisme pipa.
Saat ini, industri telah melakukan pekerjaan terkait.Selain Colossal-AI, ada juga TensorRT dari NVIDIA dan DeepSpeed dari Microsoft, yang juga merupakan dua perusahaan dengan hambatan teknis tertinggi.
Namun yang membedakan Colossal-AI adalah Colossal-AI berfokus pada arah pengembangan model besar di masa depan. Terlihat bahwa model saat ini masih semakin luas, bukan semakin dalam, dan paralelisme tensor akan lebih penting, namun kelemahan terbesarnya adalah karena memotong seluruh lapisan, overhead komunikasi menjadi terlalu besar. Inilah sebabnya CEO Nvidia secara khusus menjelaskan masalah overhead komunikasi yang terlalu besar saat memperkenalkan paralelisme 3D pada KTT GTC untuk pertama kalinya, dan itu hanya dapat dilakukan di satu server. Oleh karena itu, Colossal-AI berfokus pada paralelisme tensor 2D dan paralelisme tensor 2,5D, yang mengurangi biaya komputasi hingga beberapa kali lipat.
Artinya dengan paralelisme tensor satu dimensi, setiap mesin harus menangani 9.999 mesin di antara 10.000 mesin, sedangkan paralelisme tensor 2D membaginya menjadi beberapa subunit, dan setiap mesin hanya perlu menangani 96 mesin. Logika intinya adalah menggunakan beberapa sinkronisasi lokal (sinkronisasi lokal) untuk menggantikan sinkronisasi global (sinkronisasi global), dan lebih banyak komunikasi lokal untuk menggantikan komunikasi global.Dalam proses ini, penjadwalan desain adalah yang paling sulit.
Hal yang sama berlaku untuk paralelisme tensor 3D. Setiap kali suatu dimensi dinaikkan, kompleksitas desainnya akan meningkat sebesar urutan besarnya, dan kompleksitas komunikasi pada akhirnya akan berkurang.
Dalam hal pengoptimalan memori, pelatihan model AI besar saat ini memerlukan banyak overhead memori. Bahkan jika Anda tidak melakukan apa pun, Anda masih memerlukan beberapa terabyte memori. Jika Anda tidak melakukan intervensi manual, setelah Anda menggunakannya , Anda mungkin memerlukan memori puluhan atau bahkan ratusan terabyte.
Untuk membuat efek prediksi model menjadi lebih baik, kita sering kali membutuhkan data barisan panjang Inti dari model besar saat ini adalah memprediksi probabilitas kata berikutnya melalui keluaran satu kata, dan data barisan panjang hanyalah diperlukan. Dalam hal ini, Colossal-AI juga meluncurkan Sequence Parallelism (paralelisme sekuens).
Secara khusus, setelah memotong urutan, Anda akan menghadapi masalah serius: saat melakukan skor perhatian, setiap token perlu dievaluasi dengan token lain dalam urutan global, dan hanya sebagian dari token yang ada di server setelah pemisahan, dan token yang berbeda akan didistribusikan di server lain, sehingga setiap server harus berurusan dengan server lain untuk dapat berjalan.
Artinya, dengan asumsi 200 orang di ruangan masing-masing mengambil sebungkus makanan ringan hari ini, saya berharap semua orang dapat mencicipi makanan ringan orang lain, dan setidaknya diperlukan 200 pertukaran persegi agar setiap orang dapat mencicipi makanan ringan orang lain. Semua makanan ringan. Maka cara yang paling mudah adalah: setiap orang membentuk lingkaran, setiap orang memberikan jajanan yang telah dimakannya kepada orang di sebelah kanan, dan mengambil jajanan dari kirinya, hanya n-1 kali, yaitu 199 lintasan Selesai. Sehingga mengurangi biaya komunikasi secara keseluruhan.
Singkatnya, tumpukan teknologi inti saat ini untuk pelatihan model besar AI sebenarnya adalah komputasi paralel, karena kita harus memproses ratusan ribu inti GPU dan menggunakan semua GPU secara paralel. Paralelisme data, paralelisme tensor, paralelisme pipeline, dan paralelisme urutan data adalah modul inti dalam paralelisme.
Dalam hal optimalisasi memori, saat ini kami berada dalam lingkungan di mana tidak banyak pilihan. GPU Nvidia adalah yang terbaik, dan sepertinya kami tidak memiliki solusi lain yang lebih baik untuk menggantikannya. Tapi masalahnya adalah memori GPU Nvidia terbatas. Dalam hal ini, bisakah kita memikirkan cara menggunakan memori CPU dan memori NVMe? Ide intinya adalah jika memori GPU tidak dapat disimpan, maka akan dipindahkan ke CPU, dan jika CPU tidak dapat disimpan maka akan ditempatkan di NVMe.Pada umumnya pada saat membangun sebuah gedung, bahan baku yang dibutuhkan tidak dapat diletakkan di lokasi konstruksi di lantai bawah, jadi kami taruh di pabrik sebelah. . Inti dari teknologinya juga untuk meminimalkan pergerakan data, yaitu meminimalkan pergerakan data antara CPU dan GPU, dan memperkuat pergerakan data antara CPU dan NVMe, sehingga meningkatkan kecepatan throughput hingga setinggi-tingginya.
Menjadi Sumber Terbuka
Colossal-AI adalah perangkat lunak sumber terbuka. Pada saat yang sama, kami juga telah membangun platform komersial. Bagi pengguna tanpa GPU, mereka dapat langsung melatih dan menerapkan model besar mereka sendiri di platform tersebut. Kami juga menyediakan berbagai model seperti LLaMA, PaLM, dan GPT, dan hanya membutuhkan waktu dua atau tiga hari untuk menyelesaikan penyempurnaan model paling cepat. Dibandingkan dengan pengguna sebelumnya yang mungkin memerlukan waktu berminggu-minggu atau bahkan berbulan-bulan untuk menangani infrastruktur seperti perangkat keras dan perangkat lunak, efisiensinya telah meningkat pesat. Pada saat yang sama, Colossal-AI juga melindungi privasi pengguna. Platform tidak akan menyimpan atau mengakses data pengguna. Inilah perbedaan penting antara Colossal-AI dan OpenAI ChatGPT. Saat kami mengunggah data ke Google Cloud, Google tidak menyentuh data kami dalam banyak kasus, namun OpenAI GPT akan menganalisisnya, dan risiko seperti model AI yang tidak dapat ditafsirkan dan pelatihan yang tidak lengkap sering terjadi. Oleh karena itu, di masa depan, banyak perusahaan akan melatih model besar mereka sendiri. Apa yang dilakukan Colossal-AI adalah memaksimalkan perlindungan privasi pengguna sekaligus menyediakan alat untuk pelatihan model besar.
Dalam hal performa, Colossal-AI dapat melatih model 24 kali lebih besar pada perangkat keras yang sama, yaitu 3 kali lebih cepat dari DeepSpeed. Bahkan server kelas bawah pun dapat menggunakan Colossal-AI untuk menyelesaikan pelatihan model terkait. Misalnya, untuk pelatihan LLaMA-65B, menggunakan kode yang sama pada Colossal-AI dapat langsung memperoleh efisiensi akselerasi sekitar 50%.
Analogi sederhananya, misalnya sekarang model besarnya menggali emas, Nvidia menjual sekop, lalu kita menjual sarung tangan dan pakaian, dan memaksimalkan efisiensi menggali emas.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
You Yang, National University of Singapore: Bagaimana AI berperforma tinggi dapat melakukan terobosan?
Sumber: Lei Feng Net
Penulis: Huang Nan
Terlihat bahwa biaya pelatihan yang tinggi dan siklus yang panjang merupakan permasalahan yang paling sulit diatasi dalam pengembangan model berukuran besar.
Menanggapi masalah ini, You Yang mengusulkan sistem Colossal-AI, dimulai dari tiga tingkat sistem memori efisiensi tinggi, sistem paralel N-dimensi dan optimasi skala besar, untuk meminimalkan pergerakan data dalam kondisi peralatan yang sama dan memaksimalkan throughput GPU. ditingkatkan hingga titik tertinggi.
You Yang juga menunjukkan bahwa jumlah parameter model pada tahap ini telah bertambah 100.000 kali lipat, namun jumlah lapisannya tidak bertambah banyak, yang mungkin berarti bahwa perkembangan AI saat ini mungkin bukan lagi pembelajaran mendalam, tetapi sudah masuk. era pembelajaran luas. Saat model menjadi lebih luas, dalam menghadapi tugas pelatihan GPU berskala besar dan jangka panjang, inti dari sistem pelatihan model besar adalah bagaimana menerapkan komputasi paralel GPU untuk mencapai tujuan model besar yang lebih cepat dan hemat biaya. pelatihan.
Berikut isi pidato langsung You Yang yang telah diedit dan disusun oleh Leifeng.com tanpa mengubah maksud awal:
Peluang dan Tantangan Model Besar AI
Pertama tunjukkan gambarnya. Absis pada grafik adalah waktu, dan ordinatnya adalah besaran parameter model AI.
Pada tahun 2016, model terbaik di dunia saat itu adalah ResNet-50, dan model terbaik saat ini adalah GPT-4. Dari segi arsitektur, meskipun OpenAI belum mengumumkan arsitektur GPT-4, namun dibandingkan dengan jaringan saraf 50 lapis ResNet-50 dan arsitektur GPT-3 yang memiliki kurang dari 100 lapisan, dapat dikatakan bahwa jumlah lapisan model AI dalam beberapa tahun terakhir belum terlalu banyak perubahan.
Dari ResNet-50 hingga GPT-4, meskipun jumlah parameternya meningkat sekitar 100.000 kali lipat, setiap lapisan sebenarnya menjadi lebih luas. Termasuk versi LLaMA-65B, juga merupakan jaringan dengan puluhan lapisan.
Jadi kita mungkin belum deep learning, tapi sudah memasuki era broad learning.
Terlihat bahwa sejak tahun 2019, arsitektur Transformer pada dasarnya telah menyatukan jalur model AI skala besar, dan model AI skala besar yang paling efisien saat ini semuanya adalah arsitektur Transformer. Dua garis putus-putus pada gambar di atas tidak hanya menunjukkan tren perubahan parameter model besar, tetapi juga menunjukkan tren perubahan GPU.
Meskipun harga saham Nvidia kini telah meningkat berkali-kali lipat, tingkat pertumbuhan memori GPU dari produsen termasuk Nvidia jauh tertinggal dari kecepatan pengembangan model besar.
Dibandingkan dengan tingkat pertumbuhan parameter model dalam enam tahun terakhir, dari Januari 2016 hingga Januari 2021, tingkat pertumbuhan komputasi GPU NVIDIA hanya meningkat 1,7 kali lipat setiap 18 bulan.
Ambil A100 80G sebagai contoh untuk menghitung jumlah memori yang diperlukan untuk pelatihan GPT-3. GPT-3 memiliki sekitar 175 miliar parameter. Untuk memudahkan penghitungan, ambil bilangan bulat 200 miliar, yang sama dengan 200 dikalikan 10 hingga pangkat 9, dan setiap presisi menempati 4 Byte, parameternya saja memakan 800G memori, dan gradien juga membutuhkan 800G memori. Menurut metode optimasi saat ini, informasi seperti momen pertama dan momen kedua disimpan dalam 800G. Dengan kata lain, jika Anda melatih model besar yang tidak melakukan apa pun, Anda memerlukan setidaknya beberapa terabyte memori. Satu GPU A100 dengan memori hanya 80G saja masih jauh dari cukup. Selain itu, semakin besar ukuran batch hasil antara , semakin besar overhead memori.
Inilah sebabnya, dari sudut pandang memori, pelatihan model besar memerlukan ribuan GPU terlebih dahulu.
Namun, karena penyempurnaan model besar tidak terbatas pada satu sesi pelatihan, mungkin diperlukan setidaknya lima atau enam iterasi dari produk model besar yang bagus, dan tahap awal semuanya adalah trial and error. Oleh karena itu, menurut analisis saluran publik, biaya satu sesi pelatihan GPT-4 adalah sekitar 60 juta dolar AS, dan pelatihan memakan waktu setidaknya beberapa bulan. Inilah sebabnya meskipun ChatGPT sudah diupgrade ke versi terbaru, namun lapisan bawahnya masih model versi September 2021. Dengan kata lain, sejak September 2021 hingga saat ini, OpenAI pada dasarnya belum mengupgrade produknya.Alasan mendasarnya adalah biaya pelatihan setiap model tidak hanya tinggi, tetapi siklus pelatihannya juga sangat panjang, sehingga tingginya biaya pelatihan. pelatihan model besar sangat tinggi.serius.
Saat ini, saya merasa pertanyaan tersebut belum dapat dijawab secara ilmiah untuk saat ini. Ada beberapa alasan.
Pertama-tama, terdapat masalah optimasi non-cembung dalam pelatihan jaringan saraf. Saat ini, sebagian besar titik yang dikonvergensi oleh pelatihan adalah solusi optimal lokal daripada solusi optimal global. Oleh karena itu, kita perlu memverifikasi sejauh mana jaringan saraf dilatih, yang tidak dapat diverifikasi dengan sumber daya komputasi yang ada.
Kesulitan kedua adalah pelatihan model besar seringkali hanya melatih satu atau dua epoch, sedangkan pada model CNN sebelumnya, pelatihan ResNet memiliki 90 epoch, bahkan pelatihan self-supervised learning memiliki 1000 epoch, sehingga model besar hanya melatih satu atau dua epoch. Metode ini setara dengan hanya menelusuri kumpulan data satu atau dua kali, dan konvergensinya bahkan lebih tidak mencukupi. Oleh karena itu, dalam kasus biaya pelatihan yang begitu tinggi, sulit bagi kami untuk memverifikasi apakah model dengan 1 triliun parameter atau model dengan 2 triliun parameter lebih baik, karena potensinya belum sepenuhnya dimanfaatkan melalui eksperimen. Oleh karena itu, menurut saya model besar AI saat ini adalah subjek eksperimen. Cara meningkatkan efisiensi eksperimen ini secara efektif dan mengurangi biaya akan memainkan peran mendasar dalam mempopulerkan seluruh industri.
Kembali ke kenyataan, mengapa semua orang mengejar model besar saat ini? Dari sudut pandang logika matematika, semakin besar parameter model, semakin baik pengaruhnya, yang bersifat mutlak.
Pada saat yang sama, biaya terus meningkat. Saat ini, pelatihan model besar memerlukan ratusan, ribuan, atau bahkan puluhan ribu GPU. Bagaimana cara mengurangi biaya puluhan ribu GPU lebih lanjut merupakan tantangan yang sangat besar.
20 tahun yang lalu, karena saat itu mengandalkan frekuensi utama, semua program bersifat serial. Dengan asumsi kecepatan perangkat keras ditingkatkan 10 kali lipat, kecepatan lari juga dapat ditingkatkan 10 kali lipat tanpa mengubah satu baris kode pun. . Namun saat ini, jika Anda ingin mempercepat kode Anda 10 kali lipat, dengan asumsi perangkat keras sudah 10 kali lebih cepat, namun jika Anda tidak mengoptimalkan kodenya, mungkin malah akan lebih lambat. Alasannya adalah dalam kasus mesin yang lebih besar, seperti di dalam GPU, perpindahan data antara memori GPU dan CPU, atau perpindahan data antar GPU, ditambah perpindahan data yang dilaksanakan oleh server, akan menempati sebagian besar waktu. seluruh sistem Waktu, sebagian besar waktu dihabiskan untuk pergerakan data, dan skalabilitas model akan menjadi buruk.
Saya rasa di masa depan, perangkat lunak yang terdistribusi dengan baik dan perangkat lunak yang terdistribusi dengan buruk mungkin memiliki perbedaan kecepatan 10 kali lipat pada ribuan GPU, atau bahkan 500 GPU.
**Bagaimana cara kerja Colossal-AI? **
Berdasarkan tantangan di atas, kami mengusulkan sistem pelatihan model besar Colossal-AI, yang menyediakan metode pengoptimalan, mengurangi biaya perpindahan data, dan memaksimalkan efisiensi skalabilitas model.
Data spesifiknya adalah penggunaan PyTorch yang paling sederhana untuk melatih GPT-3 membutuhkan biaya 10 juta dolar AS. Setelah Nvidia dioptimalkan, biayanya dapat dikurangi menjadi 3 juta dolar AS dengan Megatron, dan setelah menggunakan Colossal-AI, biayanya dapat dikurangi. menjadi $1,3 juta. Terlihat bahwa dalam kondisi peralatan yang sama, minimalisasi pergerakan data mengurangi proporsi pergerakan data ke level terendah, dan dapat memperluas throughput GPU ke titik tertinggi.
Lapisan pertama adalah mengoptimalkan memori. Pertama, memastikan efisiensi memori dari satu GPU dan satu server adalah yang tertinggi. Ini adalah fondasinya.
Tingkat kedua adalah paralelisme N-dimensi. Saat ini kita menggunakan ribuan atau puluhan ribu GPU, teknologi intinya adalah Parallel Computing (komputasi paralel). Dari 1 GPU hingga 10 GPU, karena skalanya yang relatif kecil, kita bisa dengan mudah mendapatkan speedup 7x; dari 10 hingga 100 GPU, kita mungkin hanya mendapatkan speedup 4x, karena skala paralelnya menjadi lebih besar, dan komunikasinya Harga sudah hilang ke atas. Dan dari 100 GPU menjadi 1000 GPU, karena biaya komunikasi semakin meningkat, kemungkinan besar kecepatannya hanya akan meningkat 2x. Dan dengan beralih dari 1.000 GPU menjadi 10.000 GPU, jika perangkat lunak berjalan dengan buruk, perangkat lunak tersebut mungkin tidak akan bertambah cepat, bahkan mungkin menjadi lebih lambat karena perangkat menghabiskan seluruh waktunya dalam komunikasi dengan kepadatan lebih tinggi.
Yang kedua adalah masalah optimasi. Menurut saya ada dua lapisan arah pengembangan model besar AI di masa depan. Lapisan pertama adalah membuat model lebih cerdas dan merancang struktur yang lebih baik. Misalnya dari BERT ke GPT, atau dari ResNet ke BERT, dll. Ia terus mencoba mengubah struktur model.
Selain itu juga terdapat perbaikan pada metode optimasi, mulai dari peralihan dari SGD ke MOMENTUM, ADAGRAD, dan ADAM saat ini, juga sangat penting untuk memiliki metode optimasi yang lebih baik yang dapat meningkatkan efisiensi hingga 10 kali lipat di masa depan.
Khusus untuk masalah paralel dalam melatih model besar dalam praktik.
Yang pertama adalah paralelisme data, yang merupakan metode paralel paling sederhana dan efisien. Paralelisme data artinya dengan asumsi ada 10.000 gambar, 1.000 gambar diproses dalam setiap siklus, jika ada 10 mesin, setiap mesin dialokasikan 100 gambar, dan semua gambar dapat diproses dalam 10 siklus.
Dalam proses paralelisme data, perlu diringkas. Setiap mesin menggunakan data yang berbeda untuk mendapatkan gradien yang berbeda. Mesin mempelajari perubahan yang berbeda pada data yang berbeda, memperbarui gradien parameter, dan akhirnya menghitung gradien global. Saat ini, metode penjumlahan dan rata-rata digunakan, efeknya sangat bagus. Sebelumnya, metode LARS Colossal-AI dalam paralelisme data mempersingkat waktu pelatihan ImageNet dari satu jam menjadi satu menit untuk Google, Meta, Tencent, Sony, dan perusahaan lain.
Berdasarkan pertimbangan ini, menurut saya paralelisme data adalah infrastruktur fundamental.
Tentu saja paralelisme data saja tidak cukup, alasannya adalah paralelisme data memiliki asumsi bahwa model harus disalin ke setiap GPU atau server, dan server atau GPU akan bertukar gradien. Namun, jika GPU hanya memiliki memori 80G, model dengan triliunan parameter memerlukan memori puluhan terabyte, yang tidak dapat disimpan di GPU.Perlu memotong model ke GPU yang berbeda dan kemudian merangkum hasilnya. Pendekatan ini disebut model paralelisme. Ada dua jenis model paralelisme, yang pertama adalah paralelisme tensor, yaitu model paralelisme dalam suatu lapisan. Misalnya jumlah lapisan GPT-3 sekitar 80 atau 90 lapisan. Model dipotong satu kali untuk setiap lapisan, dan perhitungan dalam lapisan tersebut dibagi menjadi beberapa bagian. Setelah satu lapisan dihitung, lapisan berikutnya dihitung. , dan seterusnya. Ini adalah paralelisme tensor.
Semakin banyak gedung, semakin tinggi rasio antara gedung dan tim teknik, serta semakin tinggi efisiensinya, yang setara dengan 10 tim teknik yang beroperasi pada waktu yang sama. Setiap tim teknik setara dengan GPU, setiap bangunan setara dengan pipa, dan jumlah lapisan bangunan setara dengan jumlah lapisan jaringan saraf, yang merupakan logika inti paralelisme pipa.
Saat ini, industri telah melakukan pekerjaan terkait.Selain Colossal-AI, ada juga TensorRT dari NVIDIA dan DeepSpeed dari Microsoft, yang juga merupakan dua perusahaan dengan hambatan teknis tertinggi.
Namun yang membedakan Colossal-AI adalah Colossal-AI berfokus pada arah pengembangan model besar di masa depan. Terlihat bahwa model saat ini masih semakin luas, bukan semakin dalam, dan paralelisme tensor akan lebih penting, namun kelemahan terbesarnya adalah karena memotong seluruh lapisan, overhead komunikasi menjadi terlalu besar. Inilah sebabnya CEO Nvidia secara khusus menjelaskan masalah overhead komunikasi yang terlalu besar saat memperkenalkan paralelisme 3D pada KTT GTC untuk pertama kalinya, dan itu hanya dapat dilakukan di satu server. Oleh karena itu, Colossal-AI berfokus pada paralelisme tensor 2D dan paralelisme tensor 2,5D, yang mengurangi biaya komputasi hingga beberapa kali lipat.
Hal yang sama berlaku untuk paralelisme tensor 3D. Setiap kali suatu dimensi dinaikkan, kompleksitas desainnya akan meningkat sebesar urutan besarnya, dan kompleksitas komunikasi pada akhirnya akan berkurang.
Untuk membuat efek prediksi model menjadi lebih baik, kita sering kali membutuhkan data barisan panjang Inti dari model besar saat ini adalah memprediksi probabilitas kata berikutnya melalui keluaran satu kata, dan data barisan panjang hanyalah diperlukan. Dalam hal ini, Colossal-AI juga meluncurkan Sequence Parallelism (paralelisme sekuens).
Secara khusus, setelah memotong urutan, Anda akan menghadapi masalah serius: saat melakukan skor perhatian, setiap token perlu dievaluasi dengan token lain dalam urutan global, dan hanya sebagian dari token yang ada di server setelah pemisahan, dan token yang berbeda akan didistribusikan di server lain, sehingga setiap server harus berurusan dengan server lain untuk dapat berjalan.
Artinya, dengan asumsi 200 orang di ruangan masing-masing mengambil sebungkus makanan ringan hari ini, saya berharap semua orang dapat mencicipi makanan ringan orang lain, dan setidaknya diperlukan 200 pertukaran persegi agar setiap orang dapat mencicipi makanan ringan orang lain. Semua makanan ringan. Maka cara yang paling mudah adalah: setiap orang membentuk lingkaran, setiap orang memberikan jajanan yang telah dimakannya kepada orang di sebelah kanan, dan mengambil jajanan dari kirinya, hanya n-1 kali, yaitu 199 lintasan Selesai. Sehingga mengurangi biaya komunikasi secara keseluruhan.
Dalam hal optimalisasi memori, saat ini kami berada dalam lingkungan di mana tidak banyak pilihan. GPU Nvidia adalah yang terbaik, dan sepertinya kami tidak memiliki solusi lain yang lebih baik untuk menggantikannya. Tapi masalahnya adalah memori GPU Nvidia terbatas. Dalam hal ini, bisakah kita memikirkan cara menggunakan memori CPU dan memori NVMe? Ide intinya adalah jika memori GPU tidak dapat disimpan, maka akan dipindahkan ke CPU, dan jika CPU tidak dapat disimpan maka akan ditempatkan di NVMe.Pada umumnya pada saat membangun sebuah gedung, bahan baku yang dibutuhkan tidak dapat diletakkan di lokasi konstruksi di lantai bawah, jadi kami taruh di pabrik sebelah. . Inti dari teknologinya juga untuk meminimalkan pergerakan data, yaitu meminimalkan pergerakan data antara CPU dan GPU, dan memperkuat pergerakan data antara CPU dan NVMe, sehingga meningkatkan kecepatan throughput hingga setinggi-tingginya.
Menjadi Sumber Terbuka
Colossal-AI adalah perangkat lunak sumber terbuka. Pada saat yang sama, kami juga telah membangun platform komersial. Bagi pengguna tanpa GPU, mereka dapat langsung melatih dan menerapkan model besar mereka sendiri di platform tersebut. Kami juga menyediakan berbagai model seperti LLaMA, PaLM, dan GPT, dan hanya membutuhkan waktu dua atau tiga hari untuk menyelesaikan penyempurnaan model paling cepat. Dibandingkan dengan pengguna sebelumnya yang mungkin memerlukan waktu berminggu-minggu atau bahkan berbulan-bulan untuk menangani infrastruktur seperti perangkat keras dan perangkat lunak, efisiensinya telah meningkat pesat. Pada saat yang sama, Colossal-AI juga melindungi privasi pengguna. Platform tidak akan menyimpan atau mengakses data pengguna. Inilah perbedaan penting antara Colossal-AI dan OpenAI ChatGPT. Saat kami mengunggah data ke Google Cloud, Google tidak menyentuh data kami dalam banyak kasus, namun OpenAI GPT akan menganalisisnya, dan risiko seperti model AI yang tidak dapat ditafsirkan dan pelatihan yang tidak lengkap sering terjadi. Oleh karena itu, di masa depan, banyak perusahaan akan melatih model besar mereka sendiri. Apa yang dilakukan Colossal-AI adalah memaksimalkan perlindungan privasi pengguna sekaligus menyediakan alat untuk pelatihan model besar.
Dalam hal performa, Colossal-AI dapat melatih model 24 kali lebih besar pada perangkat keras yang sama, yaitu 3 kali lebih cepat dari DeepSpeed. Bahkan server kelas bawah pun dapat menggunakan Colossal-AI untuk menyelesaikan pelatihan model terkait. Misalnya, untuk pelatihan LLaMA-65B, menggunakan kode yang sama pada Colossal-AI dapat langsung memperoleh efisiensi akselerasi sekitar 50%.
Analogi sederhananya, misalnya sekarang model besarnya menggali emas, Nvidia menjual sekop, lalu kita menjual sarung tangan dan pakaian, dan memaksimalkan efisiensi menggali emas.