Neironu tīkls YaLM 100B praksē.

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

Jūnija beigās Yandex
sabiedrībai izlaida neironu tīklu ar 100 miljardiem parametru, ko sauc par YaLM 100B . Tas ir lielākais GPT līdzīgais neironu tīkls publiskajā domēnā. Stāsta par to, kā viņi mācīja, rādīja labākos piemērus un uz ko neirons ir spējīgs. Bet vai tas ir tik labi praksē un piemērojams mājās? Raksts par to klusē, turklāt palaist un pārbaudīt to nav tik vienkārši, jo nepieciešami aptuveni 200 Gb GPU RAM. Šis komentārs par Habrē
situāciju atklāj visprecīzāk
.

Tiek apgalvots, ka pakalpojumā Yandex visi tik gudri cilvēki, un viņi pat nav ievietojuši parastu pamācību. Nav api lielam modelim, nav gatavu atkailināta vidēja vai maza modeļa parastajiem cilvēkiem (Google Colab). Nav dots piemērs, kā izveidot modeli, kā ģenerēt tekstu. Vienkārši rakstā ir norādītas pāris nianses nūģīšiem un viss. Pietiek paskatīties tuvāk, kā banka to izdarīja ar burtu “C” un darīt to pašu. Man radās iespaids, ka šis modelis ir tikai viens no neveiksmīgajiem eksperimentiem, ko bija žēl izmest miskastē, tāpēc tas tika ievietots Open Source, lai parādītu, kādus lieliskus modeļus Yandex rada, un turklāt tas ir atvērtais avots!

Internetā ir daudz jautājumu, kā palaist yalm vai pat mēģināt tiešsaistē, taču uz to nav atbilžu. Es biju starp lietotājiem, kuri uzdeva šos jautājumus. Un sāciet to izdomāt. Tā kā man ļoti vajadzēja veidu, kā ģenerēt tekstus finanšu robotiem. Lai viņi varētu prognozēt ne tikai vērtības, bet arī komentēt to tekstā, pamatojoties uz finanšu pārskatiem. Būtībā tas būs tas pats, ko dara finanšu analītiķi, tikai izmantojot mākslīgo intelektu. Ir divi veidi, kā palaist yalm.
Nomājiet serveri mākonīar 200+ Gb GPU RAM vai modificējiet kodu un palaidiet ar dziļa ātruma nulles noslogojumu (kad GPU secīgi apstrādā daļu no neironu tīkla, bet pārējais tiek saglabāts CPU RAM vai NVMe). Pirmais ir ļoti dārgs, apmēram 2500 rubļu stundā jeb 1,7 miljoni mēnesī. Otrs nezināmais, jo kods repozitorijā nav sniegts, tikai
mājieni repozitorijas jautājumā, ko nav grūti izdarīt. Sāksim ar vienkāršu.

YaLM 100B palaišanas instrukcijas

1. Mēs īrējam 200 GB GPU RAM, piemēram, šeit .

Neironu tīkls YaLM 100B praksē.

Kopējā video atmiņa ir nepieciešama vismaz 200 GB. 8×40 = 320 GB. Der tikai šis. Mazāk par 200 nav iespējams, vairāk ir iespējams. Bultiņa norāda CPU RAM, mēs uz to neskatāmies. Viņa var būt jebkura.

Mēs norādām apmēram 300 GB lielu disku, lai ar rezerves un vēlams ātru disku, jo. uz to un no tā tiks pārsūtīti desmitiem gigabaitu datu.

Neironu tīkls YaLM 100B praksē.Veidojot avotos, atlasiet Ubuntu ML (Machine Learning). Tas ir obligāti, lai videokartes būtu konfigurētas un nekas nebūtu jāinstalē papildus.

Veidojot serveri, ir nianses ar kvotām, var rasties sajūta, ka tehnika nav pieejama, bet patiesībā vienkārši jāpalielina kvotas iestatījumos. Pēc servera aktivizēšanas (tas var aizņemt 5-10 minūtes), izveidojiet savienojumu ar serveri, izmantojot ssh vai tieši servera lapas tīmekļa konsolē un izpildiet komandu.

nvidia-smi

Rezultātā vajadzētu būt tabulai ar videokartēm, draivera versiju un cuda. Apmēram šādi.
Neironu tīkls YaLM 100B praksē.Draivera versijas galvenē un kur. Kreisajā pusē ir ierīču numuri, centrā ir ierīces atmiņas lielums. Ja jums nav šīs informācijas, jūs esat savācis serveri no nepareiza avota. Kā aprakstīts iepriekš, ir nepieciešama Ubuntu ML (Machine Learnong).

2. Klonējiet repozitoriju, izmantojot YaLM

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

Klonējiet uz savu mājas mapi, lai pēc tam jums nebūtu jārediģē docker konfigurācija. Ja tiek klonēts kaut kur citur,
dodieties šeit un pievienojiet ceļu uz klonēšanas vietu.

3. Lejupielādēt kontrolpunktus (pamata modeļa apmācības informācija)

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

Tas aizņems apmēram stundu. Lai netērētu laiku velti, izveidojam jaunu ssh savienojumu un paralēli sākam būvēt dokera konteineru.

4. Instalējiet nvidia — docker 2

Parasts docker nav piemērots,
ir nepieciešams nvidia-docker2 .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM konteinera izveide

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

Tas ir arī apmēram stunda.

Life hack. Jūs varat lejupielādēt kontrolpunktus, instalēt docker un izveidot konteineru uz lēta servera ar vienu video karti. Ar laiku tas būs tāpat, lai jūs varētu nedaudz ietaupīt. Pēc montāžas uz lēta servera mēs to izdzēšam un izveidojam kaujas serveri, izmantojot disku no lēta servera. Tad jūs nepārmaksāsiet laiku par montāžas gaidīšanu un kontrolpunktu izsūknēšanu.

6. Sagatavojiet saturu

6.1 Kontrolpunkti

Kad kontrolpunktu lejupielāde ir beigusies, tie ir jāievieto konfigurācijās. Ir divi veidi: pareizi parametri vai pārsūtīt kontrolpunktus. Visur paredzēts, ka kontrolpunkti atradīsies projekta galvenajā direktorijā, respektīvi, lejupielādētais ir jāpārnes no augšā esošās lejupielādes mapes. Atrodoties mapē yalm, izpildiet

mv ./download/yalm100b_checkpoint ./

Vai mainiet ceļus uz failiem piemēru failos
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Videokartes

Mēs pārbaudām, vai videokartes ir pareizi iestatītas. Ja tev ir astoņas videokartes, tad nekas nav jāmaina. Ja cipars atšķiras, tad mainām šīs rindas
Neironu tīkls YaLM 100B praksē.Otrajā rindā izmantoto ierīču numuri (tos var apskatīt jau palaistajā nvidia-smi). Ceturtajā to skaits.

7. Palaidiet doka konteineru

Atrodoties mapē yalm, izpildiet komandu

sudo bash ./docker/run.sh

Ja viss ir kārtībā, jūs tiksit novirzīts uz konteineru, kurā jums jāiet uz yalm mapi jūsu mājas direktorijā.

cd ~/yalm

8. Palaidiet piemēru no YaLM 100B

Mēs esam gatavi uzsākt vienu no piemēriem. Tie ir aprakstīti
šeit .

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

Esiet pacietīgi, atliek pagaidīt vēl 10-15 minūtes, līdz tiks izveidots GPT modelis un ielādēti atsvari no kontrolpunktiem.
Neironu tīkls YaLM 100B praksē.

Kad izveide ir pabeigta, MegatronML liks ievadīt kontekstu, lai ģenerētu tekstu. Esiet piesardzīgs, rakstot. Noteiktos apstākļos rodas kļūda, programma avarē, un jums ir jāsāk montāža no jauna. Tāpēc labāk ir izmantot piemērus, kas ņem tekstu no faila.

9. Darba rezultāti

Neironu tīkls YaLM 100B praksē.
Neironu tīkls YaLM 100B praksē.Izskatās interesanti. Protams, tie ir tikai labi piemēri. Es veicu testu dažādiem paraugiem. Kā paredzēts, jo labāks konteksts, jo jēgpilnāks teksts tiks ģenerēts. Pilnu eksperimentālo paaudžu komplektu var apskatīt saitēs:

Par cenu man tas maksāja apmēram 9 tūkstošus rubļu par dažādu jaudu serveru nomu no apmācības un no sagatavošanas līdz paaudzei. Īpaša vilšanās bija tā, ka jūs nevarat uzreiz ģenerēt visu. Tas aizņem ļoti ilgu laiku, lai sāktu, un teksts netiek ģenerēts tik ātri, kā mēs vēlētos, ņemot vērā servera izmaksas stundā.
Neironu tīkls YaLM 100B praksē. 

Kā palaist YaLM bez 200Gb GPU RAM?

Konfigurācijai jāpievieno dziļā ātruma nulles noslodze. Tiem, kas zina, par ko mēs runājam, to izdarīt būs ļoti vienkārši. Citiem tas nemaz nav mazsvarīgs uzdevums. Ir svarīgi zināt, ka izkraušana var būt vai nu CPU RAM, vai NVMe. Par NVMe šobrīd varat aizmirst, jo. tiek apstrādāts ļoti liels datu apjoms, un disks nevar ar to tikt galā. Nulles noslodzes CPU ir reālāks. Tiesa, šim nolūkam noliktavā ir jābūt 200+ Gb CPU RAM, kas arī nav lēts. Un viens teksts tiks ģenerēts apmēram 20-40 minūtes, jo vēl nav bijis iespējams to paralēli divās videokartēs. Kā redzat zemāk esošajā ekrānuzņēmumā, ģenerēšanā tika iesaistīta tikai viena videokarte un pēc tam tikai ceturtā daļa atmiņas. Atliek noskaidrot, kāpēc netiek izmantoti visi 24 GB,
Neironu tīkls YaLM 100B praksē.Nu nobeigumā teikšu, ka ir iespējams darbināt pat ar vienu RTX 3070 TI. Bet tam nav īpašas jēgas, jo. NVMe neļaus ātri apstrādāt 150 GB datu mijmaiņas darījumā, kas ir 96 GB RAM pielikumā.
Neironu tīkls YaLM 100B praksē.

Summējot

Protams, es joprojām centīšos atrast optimālos palaišanas ceļus. Bet līdz šim esmu nonācis pie secinājuma, ka YaLM 100b ir pārāk dārgs / pārāk lēns maniem uzdevumiem. Par to pašu naudu cilvēki rakstīs daudz vairāk un daudz labāk. Bet es domāju, ka tas ir īslaicīgi, redzēsim. Ja jums nepieciešama palīdzība saistībā ar yalm palaišanu, iestatīšanu vai vēlaties skatīt rezultātus konteksta piemēros, rakstiet uz pastu vai telegrammu.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply