uutiset

DeepMindin tutkimuskustannukset ovat niin korkeat, että yksi ICML-paperi maksoi 12,9 miljoonaa dollaria

2024-08-03

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


Uusi viisausraportti

Toimittaja: Qiao Yang

[Johdatus uuteen viisauteen] DeepMindin äskettäin ICML 2024 -tapahtumassa hyväksymä paperi paljasti heidän Googlen tukeman "tyranniansa". Artikkelissa arvioidaan, että tämän tutkimuksen vaatima laskentateho ja kustannukset ovat noin 15 % Llama 3:n esikoulutuksesta ja hinta voi nousta 12,9 miljoonaan dollariin.

Kuinka paljon kokeellista budjettia tarvitaan konferenssipaperin julkaisemiseen?

Äskettäin DeepMind julkaisi tutkimuksen, jossa tehtiin laaja empiirinen tutkimus erilaisista algoritmisista ja arkkitehtonisista yksityiskohdista, kuten parametrien ja optimoijien valinnasta, kun LLM skaalautuu.

Tämän asiakirjan on hyväksynyt ICML 2024.


Paperiosoite: https://arxiv.org/abs/2407.05872

63-sivuinen paperi kattaa kymmeniä tuhansia malleja, ja vaihtoehtoja ovat 3 optimoijaa, 4 parametrointimallia, useita kohdistusoletuksia, yli tusina oppimisnopeutta ja 14 parametrikokoa 26,8 B asti.


4 parametrointijärjestelmää, jotka vaativat kokeilua

Pelkästään nämä numerot kuultuaan ei ole vaikeaa tietää, että tähän tutkimukseen tulee sisältyä suuri määrä malliajokokeita.

Uskollinen lukija, testatakseen ymmärrystään paperin sisällöstä, laski kaikki siinä tehdyt kokeet ja arvioi paperin kopioimisen kustannukset.


Kun kaikki tarvittava laskentateho yhteen lasketaan, se saavutti hämmästyttävät 12,9 miljoonaa dollaria.

On tullut aika testata perustaitojasi Jos olet tutkimusryhmän johtaja, tarvittavan laskentatehon ja kustannusten arvioiminen koesuunnitelman perusteella on olennainen taito.

Seuratkaamme sitten tätä blogiartikkelia saadaksemme selville, missä tarkalleen nämä yli 10 miljoonaa Yhdysvaltain dollaria poltettiin.

Muuntajan arkkitehtuuritiedot

Paperin liitteessä C on useita yksityiskohtaisia ​​asetuksia mallin algoritmista ja arkkitehtuurista, kuten pelkän dekooderin arkkitehtuurin käyttö, kerrosten normalisointi, GeLU-aktivointitoiminto, ei dropoutia, T5-tokenizer, eräkoko 256, FSDP-rinnakkaisisuuden käyttö jne.


Koemallien parametrimittakaavatilastot

Arkkitehtonisten tietojen avulla voimme karkeasti arvioida FLOPS:t, jotka vaaditaan jokaiselle koulutuksessa olevalle tunnukselle, joka on merkitty M:llä.

Koska artikkelissa ei kuvata mitään GQA/MQA-mekanismia, oletetaan, että Rkv=1, lseq=512, Dhead=128, L=8 (syvyys) ja V=32101 (segmentoijasanasto) lisäksi.

Mallin kokonaisparametrit voidaan ilmaista seuraavasti:

Siksi voimme saada M:n laskentakaavan:

Oletuksena koetta kohden käsiteltyjen merkkien määrä (TPE) on 5k (harjoitusvaiheiden määrä) × 256 (erän koko) × 512 (lseq), mikä on noin 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

Tasauskoe

Hypoteesin kohdistuskokeessa käytettiin suoraan myöhemmästä oppimisnopeuden skannauksesta saatua optimaalista tulosta erillisen oppimisnopeusskannauksen sijaan, joten kustannuslaskenta tässä vaiheessa on suhteellisen yksinkertainen:


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

Jos H100 maksaa 3 dollaria per käyttötunti, kohdistuskokeilun hinta on noin 888 dollaria.

oppimisaste

Alaongelma: Optimaalinen arviointihäviö (eval loss) -koe

Paperin taulukko E1 tallentaa kaikki mahdolliset yhdistelmät optimoijasta × parametrointijärjestelmä × mallin koko × kokeelliset asetukset alle 6 mallikoon, ja suorita vastaavasti perusoppimisnopeuden skannaukset parhaan arviointihäviön saamiseksi.

Mukana on yhteensä seuraavat kokeelliset muuttujat:

- Mallin mitat D∈3072,4096,6144,8192,12288,16384

- 4 parametrointivaihtoehtoa

- 3 optimoijaa, joista SGD:llä on vain 5 kokeellista asetusta, Adamilla ja Adam+Param Scalingilla on 7 kokeellista asetusta

Oletetaan, että tässä kaikki kokeet suoritetaan itsenäisesti, eikä tuloksia toisteta muista paikoista. Siksi, jos ne kaikki suoritetaan kerran, kustannusten yläraja on:


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)

Tämän osan hinta on lähes 400 000 dollaria, mikä on edelleen hyväksyttävällä alueella, mutta se on jo erittäin kallis useimmille akateemisille budjeteille.

Taulukko E1 antaa parhaan arviointihäviön, mutta ei kuvaa LR:n skannausstrategiaa, ja myös kunkin kuvan pistemäärä on erilainen.


Koska emme saaneet vastausta artikkelin kirjoittajalta, emme voi määrittää tarkkaa mekanismia, joten oletamme, että jokainen parhaiten arvioitu menetys on käynyt läpi 15 koetta (silmämääräisessä tarkastuksessa havaittiin, että kunkin rivin pistemäärä on noin 10 15 asti).

β-parametri

Opinnäytetyön kohdan 4.2 mukaan oppimisnopeuteen kuuluu myös kahden hyperparametrin valinta: β ja γ.

Jos on vain β-parametreja, sitä kutsutaan "LR+oletus"-asetukseksi:


Tämä osa sisältää 3x optimoijan, 4x parametroinnin sekä erilliset kokeet globaaleilla ja yksittäisillä kerroksilla (GlobalLR, Perlayer-fullalign) ja tuntemattoman määrän LR-skannauksia:


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

Kuten kaavasta voidaan nähdä, hinta on samanlainen kuin alla oleva epsilon-kokeilu, jotka molemmat ovat 2 miljoonaa dollaria.

γ-parametri

Verrattuna β-parametrikokeeseen, tässä osassa on kaksi yksityiskohtaista eroa.

Ensinnäkin GlobalLR- ja Perlayer-fullalign-asetusten lisäksi on lisättävä myös Perlayer-noalign-asetus.


Toiseksi 3D-hyperparametrihaku (γ_1, γ_h, γ_L+1) suoritetaan vain kohteelle d=1024=b, joten 800 ajoa on lisää.


Laskentakaava näiden kahden yhdistämisen jälkeen on:


Tämän osan arvioitu hinta on lähellä Adamin epsilonin lämpökarttakoetta, noin 3,2 miljoonaa dollaria.

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)

Adam Optimizerin Epsilon-parametrit

Paperin kohdassa 4.3 kuvattu Epsilon-parametrikoe muodostaa suurimman osan laskennasta.


Yllä olevan päätelmän mukaan 15 erilaista oppimisnopeutta (pistettä per rivi) kokeillaan joka kerta parhaan arviointihäviön löytämiseksi, jolloin kuvassa 6 esitetyn epsilon-parametrimuutoskaavion laskentamäärä on:


Laskelmat paljastivat ytimekkäästi kalliin 2 miljoonan dollarin laskun.

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) '''

Kuvan 6 vasemmalla puolella olevan viivakaavion lisäksi liitteessä F on myös lämpökartan tulokset.


Olettaen, että jokainen lohkoarvo on 13 oppimisnopeuden skannauksen tulos, tämän osan laskentamäärä on:


Todettiin, että näiden 8 lämpökartan hankkiminen maksoi 3,2 miljoonaa dollaria. Lisäksi, koska mallinnamme LR-skannausten määrän vakiona 13, tämä luku voi olla pienempi kuin todelliset kustannukset.

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) '''

painon lasku

Painon heikkenemiskoe (Liite G) on suhteellisen helppo ymmärtää. Perus LR-skannaus suoritetaan 4×-parametreilla:


Se on paljon halvempi kuin epsilon-koe, joka on Bay Arean insinöörin vuosipalkka - 317 000 dollaria.

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) '''

Adafaktorin optimoija

Tämä osa kokeesta on kuvattu yksityiskohtaisesti liitteessä C3, ja sen tarkoituksena on testata, onko Adafactor- ja Adam+parametrin skaalalla samanlaiset leveysskaalausmekanismit.


On olemassa 2×4 kaavioita, joissa jokainen optimoija kerää 11 datapistettä, joten laskentakaava on:


Laskuun lisättiin vielä 188 000 dollaria.

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) '''

Laskennan optimointi

Paperi yrittää muuttaa huomiopäiden määrää H toivoen löytävänsä optimaaliset laskenta-asetukset, mutta siihen liittyy muutoksia askelkokoon ja tietosarjaan, joten tässä osassa ei käytetä kaavakuvauksia. Laskentakoodi on seuraava:

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)

Tee yhteenveto

Tee yhteenveto yllä olevien kokeiden laskentatehosta ja kustannuksista:

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)

Havaittiin, että koko paperin laskennallinen monimutkaisuus oli 5.42e24 FLOPS.

Tämä luku on vain 15 % Llama 3:n harjoituslaskennan määrästä. Jos ajetaan 100 000 kortin H100-klusterissa, kaikkien kokeiden suorittaminen kestää vain 2 päivää.

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%']

Jos emme kuitenkaan mittaa sitä LLM-esikoulutuksen standardeista, vaan pidämme tätä DeepMind-paperia vain akateemisena tutkimuksena, tämä laskelmien määrä näyttää melko ylelliseltä.

Jos laboratoriossa on vain 10 H100:ta, olisi mahdotonta tehdä tämän suuruista tutkimusta.

Suuri laboratorio, jossa on 100 H100:ta, saattaa pystyä suorittamaan kaikki yllä mainitut kokeet muutamassa vuodessa.

Viitteet:

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

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

https://arxiv.org/abs/2407.05872