Neuroverkko YaLM 100B käytännössä.

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

Kesäkuun lopussa Yandex
julkaisi yleisölle 100 miljardin parametrin hermoverkon nimeltä YaLM 100B . Se on suurin julkisessa käytössä oleva GPT:n kaltainen neuroverkko. Se kertoo kuinka he opettivat, osoittivat parhaita esimerkkejä ja mihin neuroni pystyy. Mutta onko se niin hyvä käytännössä ja sovellettavissa kotona? Artikkeli on hiljaa tästä, lisäksi sen suorittaminen ja tarkistaminen ei ole niin helppoa, koska tarvitaan noin 200 Gt GPU RAM-muistia. Tämä Habren
kommentti paljastaa tilanteen tarkimmin
.

Väitetään, että Yandexissä kaikki niin älykkäät ihmiset, eivätkä he edes lähettäneet normaalia ohjetta. Isolle mallille ei ole api:tä, ei ole valmiita riisuttua keskikokoista tai pientä mallia tavallisille ihmisille (Google Colabissa). Mallin asettamisesta, tekstin luomisesta ei anneta esimerkkiä. Se on vain, että artikkeli osoittaa pari vivahdetta nörteille ja se on siinä. Riittää, kun tarkastellaan tarkemmin, kuinka pankki teki sen kirjaimella ”C” ja tee samoin. Sain sen vaikutelman, että tämä malli on vain yksi epäonnistuneista kokeiluista, jotka oli sääli heittää se roskakoriin, joten se julkaistiin avoimeen lähdekoodiin näyttämään, mitä upeita malleja Yandex luo, ja lisäksi se on avoimen lähdekoodin!

Internetissä on paljon kysymyksiä yalmin suorittamisesta tai jopa yrittämisestä verkossa, mutta tähän ei ole vastauksia. Olin niiden käyttäjien joukossa, jotka esittivät nämä kysymykset. Ja ryhtyä selvittämään sitä. Koska tarvitsin todella tavan luoda tekstejä talousroboteille. Jotta he voivat ennustaa paitsi arvoja, myös kommentoida sitä tekstinä talousraporttien perusteella. Pohjimmiltaan se on sama kuin mitä talousanalyytikot tekevät, vain tekoälyn avulla. On kaksi tapaa ajaa yalmia.
Vuokraa palvelin pilvessä200+ Gt GPU RAM-muistilla tai viimeistele koodi ja suorita se syvänopeuksisella nollapurkulla (kun GPU prosessoi peräkkäin osan hermoverkosta ja loput tallennetaan CPU RAMiin tai NVMe:hen). Ensimmäinen on erittäin kallis, noin 2500 ruplaa tunnissa tai 1,7 miljoonaa kuukaudessa. Toinen tuntematon, koska arkiston koodia ei anneta, vain
vihjeitä arkiston ongelmasta, mikä ei ole vaikeaa. Aloitetaan yksinkertaisesta.

YaLM 100B:n käynnistysohjeet

1. Vuokraamme 200 Gt GPU RAM -muistia esimerkiksi täältä .

Neuroverkko YaLM 100B käytännössä.

Tarvitset yhteensä vähintään 200 Gt videomuistia. 8×40 = 320 Gt. Vain tämä sopii. Alle 200 on mahdotonta, enemmän on mahdollista. Nuoli osoittaa suorittimen RAM-muistia, emme katso sitä. Hän voi olla kuka tahansa.

Ilmoitamme noin 300 Gt:n levyn, joten varalevyllä ja mieluiten nopealla levyllä, koska. siihen ja sieltä siirretään kymmeniä gigatavuja dataa.

Neuroverkko YaLM 100B käytännössä.Kun luot lähteissä, valitse Ubuntu ML (Machine Learning). Tämä on pakollista, jotta näytönohjaimet on konfiguroitu eikä mitään tarvitse asentaa ylimääräisesti.

Kun palvelin on aktivoitu (voi kestää 5-10 minuuttia), muodosta yhteys palvelimeen ssh:n kautta tai suoraan palvelinsivun verkkokonsolissa ja suorita komento.

nvidia-smi

Tuloksena pitäisi olla taulukko, jossa on näytönohjaimet, ajuriversio ja cuda. Suunnilleen näin.
Neuroverkko YaLM 100B käytännössä.Ohjainversion otsikossa ja missä. Vasemmalla on laitenumerot, keskellä laitteen muistin koko. Jos sinulla ei ole näitä tietoja, olet kerännyt palvelimen väärästä lähteestä. Ubuntu ML (Machine Learnong) vaaditaan, kuten yllä on kuvattu.

2. Kloonaa arkisto YaLMilla

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

Kloonaa kotikansioosi, jotta sinun ei tarvitse muokata Dockerin asetuksia jälkeenpäin. Jos kloonataan jonnekin muualle,
mene tänne ja lisää polku kloonatun paikkaan.

3. Lataa tarkistuspisteet (perusmallin koulutustiedot)

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

Tämä kestää noin tunnin. Jotta aikaa ei tuhlata turhaan, luomme uuden ssh-yhteyden ja samalla aloitamme telakointikontin rakentamisen.

4. Asenna nvidiadocker 2

Normaali docker ei sovellu,
nvidia-docker2 tarvitaan .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Kontin rakentaminen YaLM:lle

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

Se on myös noin tunti.

Elämän hakkerointi. Voit ladata tarkistuspisteitä, asentaa telakointiaseman ja rakentaa kontin halvalle palvelimelle yhdellä näytönohjaimella. Se on sama ajan myötä, joten voit säästää vähän. Kokoamisen jälkeen halvalla palvelimella poistamme sen ja luomme taistelupalvelimen halvan palvelimen levyllä. Silloin et maksa liikaa aikaa kokoonpanon odottamiseen ja tarkistuspisteiden pumppaamiseen.

6. Valmistele sisältö

6.1 Tarkistuspisteet

Kun tarkistuspisteiden lataus on päättynyt, sinun on liuotettava ne asetuksiin. On kaksi tapaa, oikeat parametrit tai siirtää tarkistuspisteet. Kaikkialla odotetaan, että tarkistuspisteet ovat projektin päähakemistossa, vastaavasti, ladattava on siirrettävä yllä olevasta latauskansiosta. Ole yalm-kansiossa suorita

mv ./download/yalm100b_checkpoint ./

Tai muuta tiedostojen polkuja esimerkkitiedostoissa
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Näytönohjaimet

Tarkistamme, että näytönohjaimet on asetettu oikein. Jos sinulla on kahdeksan näytönohjainta, mitään ei tarvitse muuttaa. Jos numero on eri, muutamme näitä rivejä
Neuroverkko YaLM 100B käytännössä.Toisella rivillä käytettyjen laitteiden numerot (voit katsoa niitä nvidia-smi:ssä, jonka olet jo käynnistänyt). Neljännessä heidän lukumääränsä.

7. Suorita telakointisäiliö

Suorita komento yalm-kansiossa

sudo bash ./docker/run.sh

Jos kaikki on kunnossa, sinut viedään säiliöön, jossa sinun on siirryttävä kotihakemistosi yalm-kansioon.

cd ~/yalm

8. Suorita esimerkki YaLM 100B:stä

Olemme valmiita lanseeraamaan yhden esimerkeistä. Ne on kuvattu
täällä .

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

Ole kärsivällinen, odota vielä 10-15 minuuttia, kunnes GPT2-malli on luotu ja tarkastuspisteiden painot ladataan.
Neuroverkko YaLM 100B käytännössä.

Kun koontiversio on valmis, MegatronML kehottaa sinua syöttämään kontekstin tekstin luomiseksi. Ole varovainen kirjoittaessasi. Tietyissä olosuhteissa tapahtuu virhe, ohjelma kaatuu ja sinun on aloitettava kokoonpano uudelleen. Siksi on parempi käyttää esimerkkejä, jotka ottavat tekstiä tiedostosta.

9. Työn tulokset

Neuroverkko YaLM 100B käytännössä.
Neuroverkko YaLM 100B käytännössä.Näyttää mielenkiintoiselta. Nämä ovat tietysti vain hyviä esimerkkejä. Tein testin eri näytteillä. Kuten odotettiin, mitä parempi konteksti, sitä merkityksellisempää tekstiä syntyy. Täysi joukko kokeellisia sukupolvia on katsottavissa linkeistä:

Hintaan nähden se maksoi minulle noin 9 tuhatta ruplaa eri kapasiteettien palvelimien vuokraamisesta koulutuksesta ja valmistelusta sukupolveen. Erityinen pettymys oli, että kaikkea ei voi luoda heti. Aloitus kestää hyvin kauan, eikä tekstiä synny niin nopeasti kuin haluaisimme, kun otetaan huomioon palvelimen tuntikustannukset.
Neuroverkko YaLM 100B käytännössä. 

Kuinka käynnistää YaLM ilman 200 Gt GPU RAMia?

Sinun on lisättävä kokoonpanoon deepspeed zero offload. Niille, jotka tietävät, mistä puhumme, sen tekeminen on erittäin helppoa. Toisille tämä ei ole vähäpätöinen tehtävä. On tärkeää tietää, että purkaminen voi tapahtua joko CPU RAM -muistissa tai NVMe:ssä. Voit unohtaa NVMe:n tällä hetkellä, koska. erittäin suuri määrä dataa käsitellään, eikä levy pysty käsittelemään sitä. Zero offload CPU on todellisempi. Totta, tätä varten sinulla on oltava 200+ Gb CPU RAM -muistia varastossa, mikä ei myöskään ole halpaa. Ja yhtä tekstiä syntyy noin 20-40 minuuttia, koska sitä ei ole vielä voitu rinnastaa kahdella näytönohjaimella. Kuten alla olevasta kuvakaappauksesta näet, sukupolvessa oli mukana vain yksi näytönohjain ja sitten vain neljännes muistista. Jää nähtäväksi, miksi kaikkia 24 Gt:a ei käytetä,
Neuroverkko YaLM 100B käytännössä.No, lopuksi sanon, että on mahdollista ajaa jopa yhdellä RTX 3070 TI: llä. Mutta tässä ei ole mitään erityistä järkeä, koska. NVMe ei salli sinun käsitellä nopeasti 150 Gt:n dataa swapissa, jotka ovat 96 Gt:n RAM-muistin liitteenä.
Neuroverkko YaLM 100B käytännössä.

Yhteenvetona

Toki yritän silti löytää optimaaliset laukaisureitit. Mutta toistaiseksi olen tullut siihen tulokseen, että YaLM 100b on liian kallis / liian hidas tehtäviini. Samalla rahalla ihmiset kirjoittavat paljon enemmän ja paljon paremmin. Mutta mielestäni se on väliaikaista, katsotaan. Jos tarvitset apua yalmin käynnistämisessä, asettamisessa tai haluat nähdä tulokset kontekstiesimerkeissäsi, kirjoita sähköpostiin tai sähkeeseen.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Vastaa
  2. Данила

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

    Vastaa
  3. Дмитрий

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

    Vastaa