Närvivõrk YaLM 100B praktikas.

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

Juuni lõpus avaldas Yandex
avalikkusele 100 miljardi parameetriga närvivõrgu nimega YaLM 100B . See on suurim avalikus omandis olev GPT-taoline närvivõrk. See räägib sellest, kuidas nad õpetasid, näitasid parimaid näiteid ja milleks neuron on võimeline. Kuid kas see on praktikas nii hea ja kodus rakendatav? Artikkel vaikib sellest, pealegi pole seda nii lihtne käivitada ja kontrollida, kuna vaja on umbes 200 Gb GPU RAM-i. See kommentaar Habré kohta
paljastab olukorra kõige täpsemalt
.

Väidetavalt on Yandexis kõik sellised targad inimesed ja nad ei postitanud isegi tavalist juhendit. Ei ole api suurele mudelile, ei ole tavainimeste jaoks (Google Colabis) valmis ribadeks võetud keskmist või väikest mudelit. Mudeli seadistamise, teksti genereerimise kohta näidet pole toodud. Lihtsalt artikkel näitab nohikute jaoks paar nüanssi ja kõik. Piisab, kui vaadata lähemalt, kuidas pank seda tähega “C” tegi, ja teha sama. Mulle jäi mulje, et see mudel on lihtsalt üks ebaõnnestunud katsetest, mida oli kahju prügikasti visata, nii et see postitati avatud lähtekoodiga, et näidata, milliseid suurepäraseid mudeleid Yandex loob, ja pealegi on see avatud lähtekoodiga!

Internetis on palju küsimusi, kuidas yalmi käivitada või isegi veebis proovida, kuid sellele pole vastuseid. Olin üks kasutajaid, kes neid küsimusi esitasid. Ja asuge seda välja mõtlema. Kuna mul oli väga vaja võimalust finantsrobotite jaoks tekste genereerida. Et nad saaksid mitte ainult väärtusi ennustada, vaid ka tekstis kommenteerida, tuginedes finantsaruannetele. Sisuliselt on see sama, mida teevad finantsanalüütikud, ainult tehisintellekti kasutades. Yalmi käivitamiseks on kaks võimalust.
Rentige server pilves200+ Gb GPU RAM-iga või muutke koodi ja käivitage sügava kiirusega null-offload (kui GPU töötleb järjestikku osa närvivõrgust ja ülejäänu salvestatakse CPU RAM-i või NVMe-sse). Esimene on väga kallis, umbes 2500 rubla tunnis ehk 1,7 miljonit kuus. Teine teadmata, sest hoidlas olevat koodi pole ette nähtud, ainult
vihjed hoidla väljastamises, mida pole keeruline teha. Alustame lihtsast.

YaLM 100B käivitamise juhised

1. Rendime 200 GB GPU RAM-i, näiteks siit .

Närvivõrk YaLM 100B praktikas.

Teil on vaja vähemalt 200 GB kogu videomälu. 8×40 = 320 GB. Ainult see sobib. Alla 200 on võimatu, rohkem on võimalik. Nool näitab CPU RAM-i, me ei vaata seda. Ta võib olla ükskõik kes.

Märgime umbes 300 GB ketta, nii et varu- ja eelistatavalt kiire kettaga, sest. sinna ja sealt edastatakse kümneid gigabaite andmeid.

Närvivõrk YaLM 100B praktikas. Allikates loomisel valige Ubuntu ML (Machine Learning). See on kohustuslik, et videokaardid oleksid konfigureeritud ja midagi poleks vaja täiendavalt installida.

Serveri loomisel on kvootidega nüansse, võib tekkida tunne, et tehnikat pole, aga tegelikult tuleb seadistustes kvoote lihtsalt suurendada. Pärast serveri aktiveerimist (see võib võtta 5-10 minutit) looge ühendus serveriga ssh kaudu või otse serveri lehel olevas veebikonsoolis ja täitke käsk.

nvidia-smi

Tulemuseks peaks olema tabel videokaartide, draiveri versiooni ja cudaga. Umbes niimoodi.
Närvivõrk YaLM 100B praktikas. Draiveri versiooni päises ja kus. Vasakul küljel on seadmete numbrid, keskel on seadme mälu suurus. Kui teil seda teavet pole, olete kogunud serveri valest allikast. Nagu eespool kirjeldatud, on vaja Ubuntu ML-i (Machine Learnong).

2. Kloonige hoidla YaLM-iga

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

Kloonige oma kodukausta, et te ei peaks pärast dokkeri konfiguratsiooni redigeerima. Kui kloonitakse kuskil mujal, siis
minge siia ja lisage tee, kuhu klooniti.

3. Laadige alla kontrollpunktid (mudelite koolituse põhiteave)

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

Selleks kulub umbes tund. Et mitte asjata aega raisata, loome uue ssh ühenduse ja paralleelselt hakkame ehitama dokkeri konteinerit.

4. Installige nvidiadocker 2

Tavaline docker ei sobi,
vaja on nvidia-docker2 .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM-i konteineri ehitamine

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

See on ka umbes tund.

Elu häkkimine. Ühe videokaardiga saab odavasse serverisse alla laadida kontrollpunkte, installida dokkerit ja ehitada konteineri. Aja jooksul on see sama, nii et saate natuke säästa. Pärast odavas serveris kokkupanemist kustutame selle ja loome odava serveri ketta abil lahinguserveri. Siis ei maksa te üle montaaži ootamise ja kontrollpunktide väljapumpamise aega.

6. Valmistage sisu ette

6.1 Kontrollpunktid

Kui kontrollpunktide allalaadimine on lõppenud, peate need konfiguratsioonidesse libistama. On kaks võimalust, õiged parameetrid või kontrollpunktide ülekandmine. Igal pool eeldatakse, et kontrollpunktid on vastavalt projekti põhikataloogi, allalaaditu tuleb üle kanda ülaltoodud allalaadimise kaustast. Yalmi kaustas olemine käivita

mv ./download/yalm100b_checkpoint ./

Või muutke failide teid näidisfailides
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Videokaardid

Kontrollime, kas videokaardid on õigesti seadistatud. Kui teil on kaheksa videokaarti, pole vaja midagi muuta. Kui number on erinev, siis muudame neid ridu
Närvivõrk YaLM 100B praktikas. Teisel real kasutatud seadmete numbrid (neid saab vaadata juba käivitatud nvidia-smi-s). Neljandas nende arv.

7. Käivitage dokkimiskonteiner

Olles yalmi kaustas, täitke käsk

sudo bash ./docker/run.sh

Kui kõik on korras, suunatakse teid konteinerisse, kus peate minema oma kodukataloogi yalmi kausta.

cd ~/yalm

8. Käivitage näide YaLM 100B-st

Oleme valmis ühe näite käivitama. Neid kirjeldatakse
siin .

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

Varuge kannatust, oodake veel 10-15 minutit, kuni GPT mudel luuakse ja kontrollpunktide raskused on laaditud.
Närvivõrk YaLM 100B praktikas.

Kui ehitamine on lõppenud, palub MegatronML teil teksti genereerimiseks konteksti sisestada. Olge tippimisel ettevaatlik. Teatud asjaoludel ilmneb tõrge, programm jookseb kokku ja peate montaaži uuesti käivitama. Seetõttu on parem kasutada näiteid, mis võtavad teksti failist.

9. Töö tulemused

Närvivõrk YaLM 100B praktikas.
Närvivõrk YaLM 100B praktikas. Tundub huvitav. Loomulikult on need vaid head näited. Tegin testi erinevate näidiste peal. Nagu oodatud, mida parem on kontekst, seda sisukam tekst genereeritakse. Katsepõlvkondade täielikku komplekti saab vaadata linkidelt:

Selle hinna eest kulus mulle erineva võimsusega serverite rentimiseks koolitusest ja ettevalmistusest põlvkonnani umbes 9 tuhat rubla. Eriline pettumus oli see, et te ei saa kõike kohe genereerida. Selle käivitamine võtab väga kaua aega ja tekst ei genereeri nii kiiresti, kui me tahaksime, arvestades serveri maksumust tunnis.
Närvivõrk YaLM 100B praktikas.  

Kuidas käivitada YaLM-i ilma 200 Gb GPU RAM-ita?

Peate konfiguratsioonile lisama Deepspeed zero offload. Neil, kes teavad, millest me räägime, on seda väga lihtne teha. Teiste jaoks pole see sugugi tühine ülesanne. Oluline on teada, et mahalaadimine võib toimuda kas CPU RAM-is või NVMe-s. NVMe võid hetkel unustada, sest. töödeldakse väga suurt hulka andmeid ja ketas ei saa sellega hakkama. Zero offload CPU on reaalsem. Tõsi, selleks peab laos olema 200+ Gb CPU RAM, mis pole samuti odav. Ja ühte teksti genereeritakse umbes 20-40 minutit, kuna seda pole veel võimalik kahel videokaardil paralleelida. Nagu näete alloleval ekraanipildil, oli generatsiooniga seotud ainult üks videokaart ja siis ainult veerand mälust. Jääb veel näha, miks kõiki 24 GB ei kasutata,
Närvivõrk YaLM 100B praktikas. Noh, lõpetuseks ütlen, et isegi ühe RTX 3070 TI peal on võimalik töötada. Kuid sellel pole erilist mõtet, sest. NVMe ei võimalda teil vahetuslepingus kiiresti töödelda 150 GB andmeid, mis on 96 GB RAM-i lisas.
Närvivõrk YaLM 100B praktikas.

Summeerida

Muidugi püüan ikkagi leida optimaalsed stardirajad. Kuid siiani olen jõudnud järeldusele, et YaLM 100b on minu ülesannete jaoks liiga kallis / liiga aeglane. Sama raha eest kirjutavad inimesed palju rohkem ja palju paremini. Aga ma arvan, et see on ajutine, eks me näe. Kui vajate yalmi käivitamisel, seadistamisel abi või soovite oma konteksti näidete tulemusi näha, kirjutage meilile või telegrammile.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply