Neurónová sieť YaLM 100B v praxi.

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

Na konci júna Yandex
sprístupnil verejnosti neurónovú sieť so 100 miliardami parametrov s názvom YaLM 100B . Je to najväčšia neurónová sieť podobná GPT vo verejnej doméne. Hovorí o tom, ako učili, ukázali najlepšie príklady a čoho je neurón schopný. Je to však také dobré v praxi a použiteľné doma? Článok o tom mlčí, navyše nie je také ľahké ho spustiť a skontrolovať, pretože je potrebných približne 200 Gb GPU RAM. Tento komentár k Habrému
odhaľuje situáciu najpresnejšie
.

V Yandex sú údajne všetci takí inteligentní ľudia a ani nezverejnili normálny návod. Neexistuje žiadne api pre veľký model, neexistuje žiadny hotový vyzlečený stredný alebo malý model pre bežných ľudí (v Google Colab). Nie je uvedený žiadny príklad, ako nastaviť model, ako generovať text. Je to tak, že článok naznačuje pár nuancií pre nerdov a to je všetko. Stačí sa bližšie pozrieť, ako to urobila banka s písmenom „C“ a urobiť to isté. Nadobudol som dojem, že tento model je len jedným z neúspešných experimentov, ktoré bolo škoda vyhodiť do koša, a tak bol uverejnený v Open Source, aby ukázal, aké skvelé modely Yandex vytvára, a navyše je to open source!

Na internete je veľa otázok, ako spustiť yalm alebo dokonca vyskúšať online, ale na to neexistujú žiadne odpovede. Bol som medzi užívateľmi, ktorí sa pýtali na tieto otázky. A pustite sa do zisťovania. Keďže som naozaj potreboval spôsob, ako generovať texty pre finančných robotov. Aby na základe finančných správ vedeli predvídať nielen hodnoty, ale aj textovo to komentovať. V podstate to bude to isté, čo robia finanční analytici, len s využitím umelej inteligencie. Existujú dva spôsoby, ako spustiť yalm.
Prenajmite si server v cloudes 200+ Gb GPU RAM alebo upraviť kód a spustiť s hlbokou rýchlosťou nulového zaťaženia (keď GPU sekvenčne spracováva časť neurónovej siete a zvyšok je uložený v CPU RAM alebo NVMe). Prvý z nich je veľmi drahý, asi 2500 rubľov za hodinu alebo 1,7 milióna mesačne. Druhá neznáma, pretože kód v úložisku nie je poskytnutý, iba
náznaky v otázke úložiska, čo nie je ťažké. Začnime jednoducho.

Pokyny na spustenie YaLM 100B

1. Požičiame 200 GB GPU RAM, napríklad tu .

Neurónová sieť YaLM 100B v praxi.

Potrebujete aspoň 200 GB celkovej video pamäte. 8×40 = 320 GB. Len tento sa hodí. Menej ako 200 je nemožné, viac je možné. Šípka označuje CPU RAM, nepozeráme sa na ňu. Môže ňou byť ktokoľvek.

Disk označujeme asi 300 GB, takže s náhradným a najlepšie rýchlym diskom, pretože. sa doň a z neho prenesú desiatky gigabajtov dát.

Neurónová sieť YaLM 100B v praxi.Pri vytváraní zdrojov vyberte Ubuntu ML (Machine Learning). Toto je povinné, aby boli grafické karty nakonfigurované a nebolo potrebné nič dodatočne inštalovať.

Pri vytváraní servera existujú nuansy s kvótami, môžete mať pocit, že vybavenie nie je k dispozícii, ale v skutočnosti stačí zvýšiť kvóty v nastaveniach. Po aktivácii servera (môže to trvať 5-10 minút) sa pripojte k serveru cez ssh alebo priamo vo webovej konzole na stránke servera a vykonajte príkaz.

nvidia-smi

Výsledkom by mala byť tabuľka s grafickými kartami, verziou ovládača a cuda. Približne takto.
Neurónová sieť YaLM 100B v praxi.V hlavičke verzie ovládača a kde. Na ľavej strane sú čísla zariadení, v strede je veľkosť pamäte zariadenia. Ak tieto informácie nemáte, potom ste server zhromaždili z nesprávneho zdroja. Vyžaduje sa Ubuntu ML (Machine Learnong), ako je popísané vyššie.

2. Naklonujte úložisko pomocou YaLM

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

Naklonujte sa do svojho domovského priečinka, aby ste potom nemuseli upravovať konfiguráciu dockeru. Ak je klonovaný niekde inde,
prejdite sem a pridajte cestu k miestu klonovania.

3. Stiahnite si kontrolné body (informácie o základnom modeli školenia)

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

Bude to trvať asi hodinu. Aby sme zbytočne nestrácali čas, vytvoríme nové ssh pripojenie a paralelne začneme budovať docker kontajner.

4. Nainštalujte nvidiadocker 2

Normálny docker nie je vhodný,
je potrebný nvidia-docker2 .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Zostavenie kontajnera pre YaLM

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

Je to tiež asi hodina.

Životný hack. Môžete si stiahnuť kontrolné body, nainštalovať docker a postaviť kontajner na lacnom serveri s jednou grafickou kartou. Časom to bude rovnaké, takže môžete trochu ušetriť. Po montáži na lacný server ho vymažeme a vytvoríme bojový server pomocou disku z lacného servera. Potom nepreplatíte čas čakania na montáž a odčerpávanie kontrolných bodov.

6. Pripravte obsah

6.1 Kontrolné body

Po dokončení sťahovania kontrolných bodov ich musíte vložiť do konfigurácií. Existujú dva spôsoby, správne parametre alebo prenosové kontrolné body. Všade sa očakáva, že kontrolné body budú v hlavnom adresári projektu, respektíve to, čo bolo stiahnuté, je potrebné preniesť z vyššie uvedeného priečinka sťahovania. V priečinku yalm spustite

mv ./download/yalm100b_checkpoint ./

Alebo zmeňte cesty k súborom vo vzorových súboroch
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Grafické karty

Skontrolujeme, či sú grafické karty správne nastavené. Ak máte osem grafických kariet, nie je potrebné nič meniť. Ak je číslo iné, tak tieto riadky zmeníme
Neurónová sieť YaLM 100B v praxi.V druhom riadku čísla použitých zariadení (môžete si ich pozrieť v nvidia-smi, ktoré ste už spustili). Vo štvrtom ich počet.

7. Spustite kontajner ukotvenia

V priečinku yalm vykonajte príkaz

sudo bash ./docker/run.sh

Ak je všetko v poriadku, dostanete sa do kontajnera, v ktorom musíte prejsť do priečinka yalm vo vašom domovskom adresári.

cd ~/yalm

8. Spustite príklad z YaLM 100B

Sme pripravení spustiť jeden z príkladov. Sú popísané
tu .

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

Buďte trpezliví, zostáva počkať ďalších 10-15 minút, kým sa vytvorí model GPT a načítajú sa závažia z kontrolných bodov.
Neurónová sieť YaLM 100B v praxi.

Po dokončení zostavovania vás MegatronML vyzve na zadanie kontextu na vygenerovanie textu. Pri písaní buďte opatrní. Za určitých okolností dôjde k chybe, program spadne a je potrebné spustiť zostavu znova. Preto je lepšie použiť príklady, ktoré preberajú text zo súboru.

9. Výsledky práce

Neurónová sieť YaLM 100B v praxi.
Neurónová sieť YaLM 100B v praxi.Vyzerá zaujímavo. Samozrejme, toto sú len dobré príklady. Urobil som test na rôznych vzorkách. Ako sa očakávalo, čím lepší kontext, tým zmysluplnejší text sa vygeneruje. Celý súbor experimentálnych generácií si môžete pozrieť na odkazoch:

Za cenu ma to stálo asi 9 000 rubľov za prenájom serverov rôznych kapacít od školenia a od prípravy po generáciu. Osobitným sklamaním bolo, že nemôžete okamžite vygenerovať všetko. Spustenie trvá veľmi dlho a text sa negeneruje tak rýchlo, ako by sme chceli, vzhľadom na cenu servera za hodinu.
Neurónová sieť YaLM 100B v praxi. 

Ako spustiť YaLM bez 200 Gb GPU RAM?

Do konfigurácie musíte pridať deepspeed zero offload. Pre tých, ktorí vedia, o čom hovoríme, to bude veľmi jednoduché. Pre ostatných to vôbec nie je triviálna úloha. Je dôležité vedieť, že zaťaženie môže byť buď v CPU RAM alebo NVMe. Na NVMe môžete momentálne zabudnúť, pretože. spracováva sa veľmi veľké množstvo dát a disk si s tým nevie poradiť. Nulové zaťaženie CPU je skutočnejšie. Pravda, na to treba mať na sklade 200+ Gb CPU RAM, čo tiež nie je lacné. A jeden text sa bude generovať asi 20-40 minút, keďže ho ešte nebolo možné paralelizovať na dvoch grafických kartách. Ako môžete vidieť na obrázku nižšie, do generovania bola zapojená iba jedna grafická karta, a to iba na štvrtinu pamäte. Zostáva zistiť, prečo sa nevyužíva všetkých 24 GB,
Neurónová sieť YaLM 100B v praxi.No a na záver poviem, že sa to dá spustiť aj na jednej RTX 3070 TI. Ale v tomto nie je žiadny zvláštny zmysel, pretože. NVMe vám nedovolí rýchlo spracovať 150 GB dát vo swape, ktoré sú v dodatku 96 GB RAM.
Neurónová sieť YaLM 100B v praxi.

Zhrnutie

Samozrejme, ešte sa pokúsim nájsť optimálne štartovacie cesty. Ale zatiaľ som dospel k záveru, že YaLM 100b je príliš drahý / príliš pomalý pre moje úlohy. Za tie isté peniaze ľudia napíšu oveľa viac a oveľa lepšie. Ale myslím, že je to dočasné, uvidíme. Ak potrebujete pomoc so spustením, nastavením yalmu alebo chcete vidieť výsledky na príkladoch kontextu, napíšte e-mail alebo telegram.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply