Neurale netwerk YaLM 100B in die praktyk.

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

Aan die einde van Junie het Yandex
‘n neurale netwerk met 100 miljard parameters genaamd YaLM 100B aan die publiek vrygestel . Dit is die grootste GPT-agtige neurale netwerk in die publieke domein. Dit vertel hoe hulle onderrig het, die beste voorbeelde gewys het en waartoe die neuron in staat is. Maar is dit so goed in die praktyk en toepaslik by die huis? Die artikel is stil hieroor, en dit is boonop nie so maklik om dit uit te voer en na te gaan nie, aangesien ongeveer 200 Gb GPU RAM benodig word. Hierdie opmerking oor Habré
openbaar die situasie die akkuraatste
.

Na bewering, in Yandex, al sulke slim mense, en hulle het nie eens ‘n normale How-to geplaas nie. Daar is geen api vir ‘n groot model nie, daar is geen klaargemaakte gestroopte medium of klein model vir gewone mense nie (in Google Colab). Geen voorbeeld word gegee oor hoe om die model op te stel, hoe om teks te genereer nie. Dit is net dat die artikel ‘n paar nuanses vir nerds aandui en dit is dit. Dit is genoeg om van nader te kyk hoe die bank dit met die letter “C” gedoen het en dieselfde te doen. Ek het die indruk gekry dat hierdie model net een van die mislukte eksperimente is wat jammer was om in die asblik te gooi, daarom is dit in Open Source geplaas om te wys watter wonderlike modelle Yandex skep, en boonop is dit oopbron!

Daar is baie vrae op die internet hoe om yalm te hardloop of selfs aanlyn te probeer, maar daar is geen antwoorde hierop nie. Ek was een van die gebruikers wat hierdie vrae gevra het. En begin om dit uit te vind. Aangesien ek regtig ‘n manier nodig gehad het om tekste vir finansiële robotte te genereer. Sodat hulle nie net die waardes kan voorspel nie, maar ook in teks kommentaar daarop kan lewer, gebaseer op finansiële verslae. In wese sal dit dieselfde wees as wat finansiële ontleders doen, slegs met die gebruik van kunsmatige intelligensie. Daar is twee maniere om yalm te hardloop.
Huur ‘n bediener in die wolkmet 200+ Gb GPU RAM of verander die kode en hardloop met diepspoed nul aflaai (wanneer die GPU opeenvolgend ‘n deel van die neurale netwerk verwerk, en die res in SVE RAM of NVMe gestoor word). Die eerste een is baie duur, ongeveer 2500 roebels per uur of 1,7 miljoen per maand. Die tweede onbekende, want die kode in die bewaarplek word nie verskaf nie, slegs
wenke in die uitgawe van die bewaarplek, wat nie moeilik is om te doen nie. Kom ons begin eenvoudig.

YaLM 100B bekendstellingsinstruksies

1. Ons huur 200 GB GPU RAM, byvoorbeeld hier .

Neurale netwerk YaLM 100B in die praktyk.

Jy benodig ten minste 200 GB totale videogeheue. 8×40 = 320 GB. Net hierdie een pas. Minder as 200 is onmoontlik, meer is moontlik. Die pyltjie dui die CPU RAM aan, ons kyk nie daarna nie. Sy kan enige iemand wees.

Ons dui ‘n skyf van ongeveer 300 GB aan, sodat met ‘n ekstra en verkieslik ‘n vinnige skyf, want. tiene gigagrepe se data sal daarheen en daarvandaan oorgedra word.

Neurale netwerk YaLM 100B in die praktyk. Wanneer u in bronne skep, kies Ubuntu ML (Masjineleer). Dit is verpligtend sodat die videokaarte gekonfigureer is en niks addisioneel geïnstalleer hoef te word nie.

Wanneer jy ‘n bediener skep, is daar nuanses met kwotas, jy kan die gevoel kry dat die toerusting nie beskikbaar is nie, maar eintlik moet jy net die kwotas in die instellings verhoog. Nadat die bediener geaktiveer is (dit kan 5-10 minute neem), koppel aan die bediener via ssh of direk in die webkonsole op die bedienerbladsy en voer die opdrag uit.

nvidia-smi

Die resultaat moet ‘n tabel met videokaarte, bestuurderweergawe en cuda wees. Ongeveer so.
Neurale netwerk YaLM 100B in die praktyk. In die bestuurder weergawe kop en waar. Aan die linkerkant is die toestelnommers, in die middel is die grootte van die toestelgeheue. As jy nie hierdie inligting het nie, dan het jy die bediener van die verkeerde bron af versamel. Ubuntu ML (Machine Learnong) word vereis, soos hierbo beskryf.

2. Kloon die bewaarplek met YaLM

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

Kloon na jou tuisvouer sodat jy nie die docker-konfigurasie daarna hoef te wysig nie. As dit iewers anders gekloon is,
gaan dan hierheen en voeg die pad by waar gekloon is.

3. Laai kontrolepunte af (basiese model opleiding inligting)

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

Dit sal ongeveer ‘n uur neem. Om nie tevergeefs tyd te mors nie, skep ons ‘n nuwe ssh-verbinding en in parallel begin ons ‘n docker-houer bou.

4. Installeer nvidiadocker 2

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

5. Bou ‘n houer vir YaLM

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

Dit is ook omtrent ‘n uur.

Life hack. Jy kan kontrolepunte aflaai, docker installeer en ‘n houer op ‘n goedkoop bediener bou met een videokaart. Dit sal mettertyd dieselfde wees, so jy kan ‘n bietjie spaar. Nadat ons op ‘n goedkoop bediener gemonteer het, vee ons dit uit en skep ‘n gevegbediener met ‘n skyf vanaf ‘n goedkoop bediener. Dan betaal jy nie die tyd om vir die vergadering te wag en kontrolepunte uit te pomp nie.

6. Berei inhoud voor

6.1 Kontrolepunte

Nadat die aflaai van kontrolepunte verby is, moet u dit in die konfigurasies inskuif. Daar is twee maniere, korrekte parameters of oordragkontrolepunte. Oral word verwag dat die kontrolepunte onderskeidelik in die hoofgids van die projek sal wees, wat afgelaai is, moet oorgedra word vanaf die aflaai-lêergids hierbo. Om in die ylm-lêergids te wees, voer uit

mv ./download/yalm100b_checkpoint ./

Of verander die paaie na die lêers in die voorbeeldlêers
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Videokaarte

Ons kyk of die videokaarte korrek ingestel is. As jy agt videokaarte het, hoef niks verander te word nie. As die nommer anders is, verander ons hierdie lyne
Neurale netwerk YaLM 100B in die praktyk. In die tweede reël, die nommers van die toestelle wat gebruik word (jy kan daarna kyk in nvidia-smi, wat jy reeds van stapel gestuur het). In die vierde, hul nommer.

7. Begin die dokhouer

Om in die ylm-lêergids te wees, voer die opdrag uit

sudo bash ./docker/run.sh

As alles in orde is, sal jy na ‘n houer geneem word waarin jy na die ylm-lêergids in jou tuisgids moet gaan.

cd ~/yalm

8. Begin die voorbeeld vanaf YaLM 100B

Ons is gereed om een ​​van die voorbeelde bekend te stel. Hulle word
hier beskryf .

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

Wees geduldig, dit bly om nog 10-15 minute te wag totdat die GPT-model geskep is en die gewigte van die kontrolepunte gelaai is.
Neurale netwerk YaLM 100B in die praktyk.

Wanneer die bou voltooi is, sal MegatronML jou vra om ‘n konteks in te voer om teks te genereer. Wees versigtig wanneer jy tik. Onder sekere omstandighede vind ‘n fout plaas, die program crash en jy moet die samestelling weer begin. Daarom is dit beter om voorbeelde te gebruik wat teks uit ‘n lêer neem.

9. Resultate van die werk

Neurale netwerk YaLM 100B in die praktyk.
Neurale netwerk YaLM 100B in die praktyk. Lyk interessant. Dit is natuurlik net goeie voorbeelde. Ek het die toets op verskillende monsters uitgevoer. Soos verwag, hoe beter die konteks, hoe meer betekenisvolle teks sal gegenereer word. Die volledige stel eksperimentele generasies kan by die skakels besigtig word:

Vir die prys het dit my ongeveer 9 duisend roebels gekos vir die huur van bedieners met verskillende vermoëns van opleiding en van voorbereiding tot generasie. ‘n Besondere teleurstelling was dat jy nie dadelik alles kan genereer nie. Dit neem baie lank om te begin en die teks genereer nie so vinnig as wat ons wil nie, gegewe die koste van die bediener per uur.
Neurale netwerk YaLM 100B in die praktyk.  

Hoe om YaLM te laat loop sonder 200 Gb GPU RAM?

Jy moet diepspoed nul aflaai by die konfigurasie voeg. Vir diegene wat weet waarvan ons praat, sal dit baie maklik wees om dit te doen. Vir ander is dit glad nie ‘n onbenullige taak nie. Dit is belangrik om te weet dat aflaai in SVE RAM of NVMe kan wees. Jy kan op die oomblik van NVMe vergeet, want. ‘n baie groot hoeveelheid data word verwerk en die skyf kan dit nie hanteer nie. Zero offload CPU is meer werklik. Dit is waar, hiervoor moet jy 200+ Gb SVE RAM in voorraad hê, wat ook nie goedkoop is nie. En een teks sal vir ongeveer 20-40 minute gegenereer word, aangesien dit nog nie moontlik was om dit op twee videokaarte te paralleliseer nie. Soos u in die skermkiekie hieronder kan sien, was slegs een videokaart by die generering betrokke, en dan slegs vir ‘n kwart van die geheue. Dit moet nog gesien word hoekom al 24 GB nie gebruik word nie,
Neurale netwerk YaLM 100B in die praktyk. Wel, ten slotte, sal ek sê dat dit moontlik is om selfs op een RTX 3070 TI te hardloop. Maar daar is geen besondere sin hierin nie, want. NVMe sal jou nie toelaat om vinnig 150 GB data in die ruil te verwerk nie, wat in die aanhangsel van 96 GB RAM is.
Neurale netwerk YaLM 100B in die praktyk.

Opsomming

Ek sal natuurlik steeds probeer om die optimale bekendstellingspaaie te vind. Maar tot dusver het ek tot die gevolgtrekking gekom dat YaLM 100b te duur / te stadig is vir my take. Vir dieselfde geld sal mense baie meer en baie beter skryf. Maar ek dink dit is tydelik, ons sal sien. As jy hulp nodig het met die bekendstelling, die opstel van Yalm, of die resultate op jou konteksvoorbeelde wil sien, skryf aan die pos of telegram.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply