Neural netwurk YaLM 100B yn ‘e praktyk.

Программирование

Oan ‘e ein fan juny hat Yandex
in neuronale netwurk frijlitten mei 100 miljard parameters neamd YaLM 100B oan it publyk . It is it grutste GPT-like neurale netwurk yn it publike domein. It fertelt oer hoe’t se learden, de bêste foarbylden lieten sjen en wat it neuron yn steat is. Mar is it yn de praktyk sa goed en fan tapassing thús? It artikel is stil oer dit, boppedat is it net sa maklik om it te rinnen en te kontrolearjen, om’t sawat 200 Gb fan GPU RAM nedich is. Dizze opmerking oer Habré
ûntbleatet de situaasje it meast akkuraat
.

Nei alle gedachten, yn Yandex, al sokke tûke minsken, en se hawwe net iens post in normale How-to. D’r is gjin api foar in grut model, d’r is gjin klear makke stripped-down medium of lyts model foar gewoane minsken (yn Google Colab). Gjin foarbyld wurdt jûn oer hoe’t jo it model opstelle, hoe’t jo tekst generearje. It is gewoan dat it artikel in pear nuânses oanjout foar nerds en dat is it. It is genôch om in tichterby te sjen hoe’t de bank it dien hat mei de letter “C” en itselde dwaan. Ik krige de yndruk dat dit model gewoan ien fan ‘e mislearre eksperiminten is dy’t spitich wie om yn it jiskefet te smiten, dus waard it pleatst yn Open Source om te sjen hokker geweldige modellen Yandex makket, en boppedat is it iepen boarne!

D’r binne in soad fragen op it ynternet hoe’t jo Yalm útfiere kinne of sels online besykje, mar d’r binne gjin antwurden op dit. Ik wie ûnder de brûkers dy’t dizze fragen stelden. En set it út. Sûnt ik echt in manier nedich wie om teksten te generearjen foar finansjele robots. Sadat se net allinnich de wearden foarsizze kinne, mar der ek yn tekst op kommentearje kinne, op basis fan finansjele rapporten. Yn essinsje sil it itselde wêze as wat finansjele analysten dogge, allinich mei it brûken fan keunstmjittige yntelliginsje. D’r binne twa manieren om yalm te rinnen.
Hiere in tsjinner yn ‘e wolkmei 200+ Gb GPU RAM of feroarje de koade en rinne mei deepspeed nul offload (doe’t de GPU sequentially ferwurket diel fan it neurale netwurk, en de rest wurdt opslein yn CPU RAM of NVMe). De earste is tige djoer, sawat 2500 roebel per oere of 1,7 miljoen per moanne. De twadde ûnbekend, omdat de koade yn ‘e repository wurdt net levere, allinich
hintsjes yn’ e útjefte fan ‘e repository, wat net dreech te dwaan is. Litte wy ienfâldich begjinne.

YaLM 100B Launch Ynstruksjes

1. Wy hiere 200 GB GPU RAM, bygelyks hjir .

Neural netwurk YaLM 100B yn 'e praktyk.

Jo moatte op syn minst 200 GB fan totale fideo ûnthâld. 8×40 = 320 GB. Allinnich dizze past. Minder as 200 is ûnmooglik, mear is mooglik. De pylk jout de CPU RAM oan, wy sjogge it net. Se kin elkenien wêze.

Wy jouwe in skiif oan fan sa’n 300 GB, dus dat mei in reserve en leafst in flugge skiif, want. tsientallen gigabytes oan gegevens wurde oerbrocht nei en fan it.

Neural netwurk YaLM 100B yn 'e praktyk.As jo ​​​​yn boarnen meitsje, selektearje Ubuntu ML (Machine Learning). Dit is ferplichte sadat de fideokaarten binne konfigurearre en neat moat ekstra ynstalleare wurde.

By it meitsjen fan in server binne d’r nuânses mei kwota’s, jo kinne it gefoel krije dat de apparatuer net beskikber is, mar feitlik moatte jo gewoan de kwota’s yn ‘e ynstellings ferheegje. Neidat de tsjinner is aktivearre (it kin 5-10 minuten duorje), ferbine mei de tsjinner fia ssh of direkt yn ‘e webkonsole op’ e tsjinner side en útfiere it kommando.

nvidia-smi

It resultaat moat in tafel wêze mei fideokaarten, bestjoerderferzje en cuda. Likernôch sa.
Neural netwurk YaLM 100B yn 'e praktyk.Yn de koptekst fan de bestjoerder ferzje en wêr. Oan de linker kant binne de apparaat nûmers, yn it sintrum is de grutte fan it apparaat ûnthâld. As jo ​​dizze ynformaasje net hawwe, dan hawwe jo de tsjinner fan ‘e ferkearde boarne sammele. Ubuntu ML (Machine Learnong) is fereaske, lykas hjirboppe beskreaun.

2. Kloon de repository mei YaLM

sudo git kloon https://github.com/yandex/YaLM-100B/ yalm
cd yalm

Kloon nei jo thúsmap sadat jo de docker-konfiguraasje dêrnei net hoege te bewurkjen. As jo ​​earne oars klone,
gean dan hjir en foegje it paad ta nei wêr’t kloond is.

3. Kontrolepunten downloade (ynformaasje foar basismodeltraining)

sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh

Dit sil sawat in oere duorje. Om net om ‘e nocht tiid te fergrieme, meitsje wy in nije ssh-ferbining en parallel begjinne wy ​​​​in dockerkontener te bouwen.

4. Ynstallearje nvidiadocker 2

Normale docker is net geskikt,
nvidia-docker2 is nedich .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Bouwe in kontener foar YaLM

cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh

It is ek sawat in oere.

Life hack. Jo kinne checkpoints downloade, docker ynstallearje en in kontener bouwe op in goedkeap server mei ien fideokaart. It sil op ‘e tiid itselde wêze, dus jo kinne in bytsje besparje. Nei gearkomste op in goedkeape tsjinner, wy wiskje it, en meitsje in combat tsjinner mei help fan in skiif út in goedkeape tsjinner. Dan sille jo de tiid net betelje foar it wachtsjen op ‘e gearkomste en it útpompen fan kontrôlepunten.

6. Tariede ynhâld

6.1 Kontrolepunten

Nei’t de ynlaad fan kontrôlepunten foarby is, moatte jo se yn ‘e konfiguraasjes glide. D’r binne twa manieren, korrekte parameters as kontrôlepunten foar oerdracht. Oeral wurdt ferwachte dat de kontrôlepunten yn ‘e haadmap fan it projekt sille wêze, respektivelik, wat is ynladen moat wurde oerdroegen fan’ e downloadmap hjirboppe. Being yn ‘e yalm map útfiere

mv ./download/yalm100b_checkpoint ./

Of feroarje de paden nei de triemmen yn de foarbyldbestannen
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Fideokaarten

Wy kontrolearje dat de fideokaarten goed ynsteld binne. As jo ​​​​acht fideokaarten hawwe, dan hoecht neat te feroarjen. As it nûmer oars is, feroarje wy dizze rigels
Neural netwurk YaLM 100B yn 'e praktyk.. Yn de fjirde, harren nûmer.

7. Run de docker container

As jo ​​​​yn ‘e Yalm-map binne, útfiere it kommando

sudo bash ./docker/run.sh

As alles goed is, dan wurde jo nei in kontener brocht wêryn jo moatte gean nei de map Yalm yn jo thúsmap.

cd ~/yalm

8. Run it foarbyld út YaLM 100B

Wy binne ree om ien fan ‘e foarbylden te lansearjen. Se wurde
hjir beskreaun .

chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh

Wês geduldich, it bliuwt noch 10-15 minuten te wachtsjen oant it GPT-model is makke en de gewichten fan ‘e kontrôlepunten wurde laden.
Neural netwurk YaLM 100B yn 'e praktyk.

As de bou klear is, sil MegatronML jo freegje om in kontekst yn te fieren om tekst te generearjen. Wês foarsichtich as jo typen. Under bepaalde omstannichheden komt in flater foar, it programma crasht en jo moatte de gearstalling opnij begjinne. Dêrom is it better om foarbylden te brûken dy’t tekst út in bestân nimme.

9. Resultaten fan it wurk

Neural netwurk YaLM 100B yn 'e praktyk.
Neural netwurk YaLM 100B yn 'e praktyk.Sjocht der nijsgjirrich út. Fansels binne dit gewoan goede foarbylden. Ik rûn de test op ferskate samples. Lykas ferwachte, hoe better de kontekst, de mear betsjuttingsfolle tekst sil generearre wurde. De folsleine set fan eksperimintele generaasjes kin wurde besjoen op de keppelings:

Foar de priis koste it my sa’n 9 tûzen roebel foar it hieren fan servers fan ferskate kapasiteiten fan training en fan tarieding oant generaasje. In bysûndere teloarstelling wie dat jo net alles direkt kinne generearje. It duorret in hiel lange tiid om te begjinnen en de tekst generearret net sa fluch as wy wolle, sjoen de kosten fan de tsjinner per oere.
Neural netwurk YaLM 100B yn 'e praktyk. 

Hoe kinne jo YaLM útfiere sûnder 200Gb GPU RAM?

Jo moatte deepspeed nul offload tafoegje oan de konfiguraasje. Foar dyjingen dy’t witte wêr’t wy it oer hawwe, sil it heul maklik wêze om it te dwaan. Foar oaren is dit hielendal gjin triviale taak. It is wichtich om te witten dat ôfladen kin wêze yn CPU RAM as NVMe. Jo kinne ferjitte oer NVMe op it stuit, omdat. in tige grutte hoemannichte gegevens wurdt ferwurke en de skiif kin it net oan. Zero offload CPU is mear echte. Wier, hjirfoar moatte jo 200+ Gb CPU RAM op foarried hawwe, wat ek net goedkeap is. En ien tekst sil wurde oanmakke foar sawat 20-40 minuten, om’t it noch net mooglik wie om it op twa fideokaarten te parallelisearjen. Lykas jo kinne sjen yn ‘e skermprint hjirûnder, wie mar ien fideokaart belutsen by de generaasje, en dan allinich foar in kwart fan it ûnthâld. It bliuwt te sjen wêrom’t alle 24 GB net wurde brûkt,
Neural netwurk YaLM 100B yn 'e praktyk.No, ta konklúzje sil ik sizze dat it mooglik is om sels op ien RTX 3070 TI te rinnen. Mar der is gjin bysûndere sin yn dit, omdat. NVMe sil jo net tastean om 150 GB fan gegevens fluch te ferwurkjen yn ‘e swap, dy’t yn’ e taheaksel fan 96 GB RAM binne.
Neural netwurk YaLM 100B yn 'e praktyk.

Gearfetting

Fansels sil ik noch besykje de optimale startpaden te finen. Mar oant no ta bin ik ta de konklúzje kommen dat YaLM 100b te djoer / te stadich is foar myn taken. Foar itselde jild sille minsken folle mear en folle better skriuwe. Mar ik tink dat it tydlik is, wy sille sjen. As jo ​​​​help nedich hawwe mei it lansearjen, it ynstellen fan Yalm, of wolle jo de resultaten sjen op jo kontekstfoarbylden, skriuw dan nei de mail of telegram.

pskucherov
Rate author
Add a comment

  1. Olha

    Статья на Мега актуальную тему! Спасибо.

    Reply
  2. Данила

    Крутая статья! Спасибо автору!

    Reply
  3. Дмитрий

    СПАСИБО !!!
    три дня эту информацию искал
    нет подобного о RuGPT3 и Порфириче?

    Reply