berita

Biaya penelitian DeepMind sangat tinggi sehingga satu makalah ICML berharga $12,9 juta

2024-08-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Laporan Kebijaksanaan Baru

Editor: Qiao Yang

[Pengantar Kebijaksanaan Baru] Sebuah makalah yang baru-baru ini diterima oleh DeepMind di ICML 2024 sepenuhnya mengungkap "tirani" mereka yang didukung oleh Google. Sebuah artikel memperkirakan bahwa daya komputasi dan biaya yang diperlukan untuk penelitian ini adalah sekitar 15% dari pra-pelatihan Llama 3, dan biayanya bisa mencapai 12,9 juta dolar AS.

Berapa banyak anggaran eksperimental yang diperlukan untuk menerbitkan makalah konferensi?

Baru-baru ini, DeepMind menerbitkan sebuah penelitian yang melakukan penyelidikan empiris ekstensif terhadap berbagai detail algoritmik dan arsitektur, seperti pemilihan parameter dan pengoptimal, ketika LLM ditingkatkan.

Makalah ini telah diterima oleh ICML 2024.


Alamat makalah: https://arxiv.org/abs/2407.05872

Makalah setebal 63 halaman ini mencakup puluhan ribu model, dan alternatifnya mencakup 3 pengoptimal, 4 skema parameterisasi, beberapa asumsi penyelarasan, lebih dari selusin kecepatan pembelajaran, dan 14 ukuran parameter hingga 26,8 miliar.


4 skema parameterisasi yang memerlukan eksperimen

Mendengar angka-angka tersebut saja, tidak sulit untuk mengetahui bahwa penelitian ini harus melibatkan sejumlah besar eksperimen yang menjalankan model.

Seorang pembaca setia, untuk menguji pemahamannya terhadap isi makalah, menghitung semua eksperimen yang dilakukan di dalamnya dan memperkirakan biaya replikasi makalah tersebut.


Jika dijumlahkan dengan seluruh daya komputasi yang dibutuhkan, totalnya mencapai US$12,9 juta.

Waktunya telah tiba untuk menguji keterampilan dasar Anda. Jika Anda adalah pemimpin tim peneliti, memperkirakan daya komputasi dan biaya yang diperlukan berdasarkan rencana eksperimental merupakan keterampilan yang penting.

Kalau begitu mari kita ikuti artikel blog ini untuk mencari tahu di mana tepatnya uang senilai lebih dari 10 juta dolar AS ini dibakar.

Informasi arsitektur transformator

Lampiran C makalah ini memberikan berbagai pengaturan detail tentang algoritma dan arsitektur model, seperti menggunakan arsitektur khusus decoder, normalisasi lapisan, fungsi aktivasi GeLU, tidak ada dropout, tokenizer T5, ukuran batch 256, menggunakan paralelisme FSDP, dll.


Statistik skala parameter model eksperimental

Melalui informasi arsitektur, kita dapat memperkirakan secara kasar FLOPS yang diperlukan untuk setiap token dalam pelatihan, yang dinotasikan sebagai M.

Karena makalah ini tidak menjelaskan mekanisme GQA/MQA, diasumsikan bahwa Rkv=1, selain lseq=512, Dhead=128, L=8 (kedalaman), dan V=32101 (kosakata segmenter kata).

Parameter total model dapat dinyatakan sebagai:

Oleh karena itu, kita mendapatkan rumus perhitungan M:

Secara default, jumlah token yang diproses per eksperimen (TPE) adalah 5k (jumlah langkah pelatihan) × 256 (ukuran batch) × 512 (lseq), yaitu sekitar 6,5536e9.

def M(d: int, L=8, l_seq=512, V=32101) -> int:     return 6*d * (L*(12*d + l_seq) + V) TPE = 50000 * 256 * 512

Eksperimen penyelarasan

Pada percobaan penyelarasan hipotesis, hasil optimal yang diperoleh dari pemindaian kecepatan pemelajaran berikutnya langsung digunakan alih-alih pemindaian kecepatan pembelajaran terpisah, sehingga penghitungan biaya pada langkah ini relatif sederhana:


def alignment() -> int:     return 4 * TPE * sum(M(d) for d in [1024,2048,4096]) # >>> f'{alignment():.3E}' # '3.733E+20' # >>> cost_of_run(alignment())[0] # 888.81395400704

Jika H100 berharga $3 per jam pengoperasian, biaya eksperimen penyelarasan kira-kira $888.

kecepatan pembelajaran

Sub-masalah: Eksperimen kerugian evaluasi (eval loss) yang optimal

Tabel E1 dari makalah ini mencatat semua kemungkinan kombinasi pengoptimal × skema parameterisasi × ​​ukuran model × pengaturan eksperimental di bawah 6 ukuran model, dan melakukan pemindaian kecepatan pembelajaran dasar masing-masing untuk mendapatkan kerugian evaluasi terbaik.

Total variabel eksperimental berikut disertakan:

- Dimensi model D∈3072,4096,6144,8192,12288,16384

- 4 opsi parameterisasi

- 3 pengoptimal, dimana SGD hanya memiliki 5 pengaturan eksperimental, Adam dan Adam+Param Scaling memiliki 7 pengaturan eksperimental

Asumsikan semua percobaan di sini dilakukan secara independen, dan hasilnya tidak direplikasi dari tempat lain. Oleh karena itu, jika semuanya dijalankan satu kali, terdapat perkiraan batas atas biayanya:


H = [1,2,4,6,8,12,16,20,24,32,48,64,96,128] D = [h * 128 for h in H] def table_e1() -> int:   sets_x_optims = 5 + 7 + 7   return 4 * sets_x_optims * TPE * sum(M(d) for d in D[-6:]) # >>> f'{table_e1():.3E}';cost_of_run(table_e1()) # '1.634E+23' # (388955.9991064986, 16206.499962770775)

Biaya bagian ini mendekati $400,000, yang masih dalam kisaran yang dapat diterima, namun sudah sangat mahal untuk sebagian besar anggaran akademik.

Tabel E1 memberikan evaluasi kerugian terbaik, tetapi tidak menjelaskan strategi pemindaian LR, dan jumlah titik pada setiap gambar juga berbeda.


Karena kami tidak mendapat jawaban dari penulis makalah, kami tidak dapat menentukan mekanisme spesifiknya, jadi kami berasumsi bahwa setiap kerugian yang dievaluasi terbaik telah melalui 15 percobaan (inspeksi visual menemukan bahwa jumlah titik di setiap baris adalah sekitar 10 sampai 15).

parameter

Menurut Bagian 4.2 makalah ini, kecepatan pembelajaran juga melibatkan pemilihan dua hyperparameter: β dan γ.

Jika hanya ada parameter β, ini disebut pengaturan "LR+default":


Bagian ini mencakup pengoptimal 3×, parameterisasi 4×, ditambah eksperimen terpisah pada lapisan global dan tunggal (GlobalLR, Perlayer-fullalign), dan pemindaian LR dalam jumlah yang tidak diketahui:


def beta_only() -> int:   return 3*4*2*PpL * TPE * sum(M(d) for d in D) # 7.988E+23 (1902022.3291813303, 79250.93038255542)

Terlihat dari rumusnya, biayanya mirip dengan percobaan epsilon di bawah ini, yaitu keduanya sebesar US$2 juta.

parameter

Dibandingkan dengan eksperimen parameter β, terdapat dua perbedaan mendetail pada bagian ini.

Pertama-tama, selain setting GlobalLR dan Perlayer-fullalign, perlu juga ditambahkan setting Perlayer-noalign.


Kedua, pencarian hyperparameter 3D (γ_1, γ_h, γ_L+1) dilakukan hanya untuk d=1024=b, jadi ada 800 proses tambahan.


Rumus perhitungan setelah menggabungkan keduanya adalah:


Perkiraan biaya bagian ini mendekati eksperimen peta panas epsilon Adam, sekitar $3,2 juta.

def gamma_expts() -> int:   return 36*TPE * (800*M(1024) + PpL*sum(M(d) for d in D)) # gamma_expts 1.354E+24 (3224397.534237257, 134349.8972598857)

Parameter Epsilon pengoptimal Adam

Eksperimen parameter Epsilon yang dijelaskan di Bagian 4.3 makalah ini merupakan bagian terbesar dari penghitungan.


Berdasarkan inferensi di atas, 15 learning rate yang berbeda (titik per baris) dicoba setiap kali untuk mencari kerugian evaluasi terbaik, maka besarnya perhitungan grafik perubahan parameter epsilon yang ditunjukkan pada Gambar 6 adalah:


Perhitungannya mengungkapkan tagihan yang sangat mahal sebesar $2 juta.

PpL = 15  # unprincipled estimate def eps_variants() -> int:   return 4 * 6 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{eps_variants():.3E}';cost_of_run(eps_variants()) '7.988E+23' (1902022.3291813303, 79250.93038255542) '''

Selain diagram garis di sebelah kiri Gambar 6, terdapat juga hasil heat map pada Lampiran F.


Dengan asumsi setiap nilai blok merupakan hasil pemindaian learning rate sebanyak 13 kali, maka jumlah perhitungan bagian ini adalah:


Diketahui bahwa biaya untuk memperoleh 8 peta panas ini saja adalah US$3,2 juta. Selain itu, karena kami memodelkan jumlah pemindaian LR sebagai konstanta 13, jumlah ini mungkin lebih rendah dibandingkan biaya sebenarnya.

def eps_heatmaps() -> int:    # eps-type * eps-val * parameterizations * LR range * ...   return 2 * 6 * 4 * 13 * TPE * sum(M(d) for d in D[-6:]) ''' >>> f'{eps_heatmaps():.3E}';cost_of_run(eps_heatmaps()) '1.341E+24' (3193533.466348094, 133063.89443117057) '''

penurunan berat badan

Eksperimen peluruhan bobot (Lampiran G) relatif mudah dipahami. Pemindaian LR dasar dilakukan pada skema parameterisasi 4× dan semua parameter:


Ini jauh lebih murah daripada eksperimen epsilon, yang merupakan gaji tahunan seorang insinyur Bay Area sebesar $317,000.

def weight_decay() -> int:   return 4 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{weight_decay():.3E}'; cost_of_run(weight_decay()) '1.331E+23' (317003.7215302217, 13208.488397092571) '''

Pengoptimal Adafactor

Bagian percobaan ini dijelaskan secara rinci dalam Lampiran C3 dan untuk menguji apakah penskalaan parameter Adafactor dan Adam+ memiliki mekanisme penskalaan lebar yang serupa.


Terdapat plot 2x4, dimana setiap pengoptimal mengumpulkan 11 titik data, sehingga rumus perhitungannya adalah:


$188.000 lainnya ditambahkan ke tagihan.

def adafactor() -> int:   return 2*2*4*PpL*TPE*sum(M(d) for d in D[:11]) ''' >>> f'{adafactor():.3E}'; cost_of_run(adafactor()) '7.918E+22' (188532.80765144504, 7855.533652143543) '''

Optimalisasi perhitungan

Makalah ini mencoba mengubah jumlah kepala perhatian H dengan harapan menemukan pengaturan perhitungan yang optimal, namun melibatkan perubahan ukuran langkah dan kumpulan data, sehingga bagian ini tidak menggunakan deskripsi rumus. Kode perhitungannya adalah sebagai berikut:

def P(d: int, L=8, V=32101) -> int:     return 2 * d * (6*L*d + V) def compute_optimal():   indices_50k = (14, 14, 12)   return 4*PpL*sum([     TPE * sum(sum( M(d) for d in D[:i] ) for i in indices_50k),         20  * sum(P(d)*M(d) for d in D[:11]) *3,   ]) # compute_optim 7.518E+23 (1790104.1799513847, 74587.67416464102)

Meringkaskan

Ringkaslah daya komputasi dan biaya eksperimen di atas:

alignment       3.733E+20 (888.81395400704, 37.033914750293334) table_e1        1.634E+23 (388955.9991064986, 16206.499962770775) eps_variants    7.988E+23 (1902022.3291813303, 79250.93038255542) eps_heatmaps    1.341E+24 (3193533.466348094, 133063.89443117057) beta_only       7.988E+23 (1902022.3291813303, 79250.93038255542) gamma_expts     1.354E+24 (3224397.534237257, 134349.8972598857) weight_decay    1.331E+23 (317003.7215302217, 13208.488397092571) adafactor       7.918E+22 (188532.80765144504, 7855.533652143543) compute_optim   7.518E+23 (1790104.1799513847, 74587.67416464102)

Ditemukan bahwa kompleksitas komputasi keseluruhan makalah adalah 5.42e24 FLOPS.

Jumlah ini hanya 15% dari jumlah perhitungan pelatihan Llama 3. Jika dijalankan pada cluster H100 yang memiliki 100.000 kartu, hanya membutuhkan waktu 2 hari untuk menyelesaikan semua eksperimen.

total_flops=5.421E+24 rental price: US$12.9M h100 node months required: 746.9595590938408 (sanity check) D=[128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 4096, 6144, 8192, 12288, 16384] (sanity check) model sizes: ['0.00979B', '0.0227B', '0.058B', '0.106B', '0.166B', '0.325B', '0.534B', '0.794B', '1.1B', '1.87B', '4.02B', '6.97B', '15.3B', '26.8B'] (sanity check) M/6P: ['63.4%', '68.5%', '75.3%', '79.7%', '82.8%', '86.8%', '89.3%', '91.0%', '92.2%', '93.9%', '95.7%', '96.7%', '97.7%', '98.3%']

Namun jika kita tidak mengukurnya dari standar pra-pelatihan LLM, dan hanya menganggap makalah DeepMind ini sebagai penelitian akademis, maka jumlah perhitungan tersebut terkesan cukup boros.

Jika laboratorium hanya memiliki 10 H100, mustahil melakukan penelitian sebesar ini.

Sebuah laboratorium besar dengan 100 H100 mungkin dapat menyelesaikan semua eksperimen di atas dalam beberapa tahun.

Referensi:

https://152334h.github.io/blog/scaling-exponents/

https://news.ycombinator.com/item?id=41107721

https://arxiv.org/abs/2407.05872