Neuronová síť YaLM 100B v praxi.

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

Na konci června Yandex
uvolnil pro veřejnost neuronovou síť se 100 miliardami parametrů s názvem YaLM 100B . Je to největší neuronová síť podobná GPT ve veřejné doméně. Vypráví o tom, jak učili, ukazovali nejlepší příklady a čeho všeho je neuron schopen. Ale je to tak dobré v praxi a použitelné doma? Článek o tom mlčí, navíc to není tak snadné spustit a zkontrolovat, protože je potřeba přibližně 200 Gb GPU RAM. Tento komentář k Habrému
odhaluje situaci nejpřesněji
.

Údajně v Yandexu jsou všichni takoví chytří lidé a ani nezveřejnili normální návod. Neexistuje api pro velký model, neexistuje žádný hotový vysvlečený střední nebo malý model pro běžné lidi (v Google Colab). Není uveden žádný příklad, jak nastavit model, jak generovat text. Prostě článek naznačuje pár nuancí pro nerdy a je to. Stačí se blíže podívat, jak to banka udělala s písmenem „C“ a udělat totéž. Nabyl jsem dojmu, že tento model je jen jedním z nepovedených experimentů, které bylo škoda vyhodit do koše, a tak byl zveřejněn v Open Source, aby ukázal, jaké skvělé modely Yandex vytváří, a navíc je to open source!

Na internetu je spousta otázek, jak provozovat yalm nebo dokonce vyzkoušet online, ale na to neexistují žádné odpovědi. Byl jsem mezi uživateli, kteří kladli tyto otázky. A pusťte se do vymýšlení. Protože jsem opravdu potřeboval způsob, jak generovat texty pro finanční roboty. Aby mohli na základě finančních zpráv předvídat nejen hodnoty, ale také je textově komentovat. V podstatě to bude stejné jako to, co dělají finanční analytici, pouze s využitím umělé inteligence. Existují dva způsoby, jak spustit yalm.
Pronajměte si server v cloudus 200+ Gb GPU RAM nebo upravit kód a spustit s deepspeed nulovou zátěží (když GPU sekvenčně zpracovává část neuronové sítě a zbytek je uložen v CPU RAM nebo NVMe). První z nich je velmi drahý, asi 2500 rublů za hodinu nebo 1,7 milionu za měsíc. Druhá neznámá, protože kód v úložišti není poskytnut, pouze
náznaky v otázce úložiště, což není obtížné. Začněme jednoduše.

Pokyny pro spuštění YaLM 100B

1. Půjčujeme 200 GB GPU RAM například zde .

Neuronová síť YaLM 100B v praxi.

Potřebujete alespoň 200 GB celkové video paměti. 8×40 = 320 GB. Jedině tento se hodí. Méně než 200 je nemožné, více je možné. Šipka označuje CPU RAM, nedíváme se na ni. Může být kýmkoli.

Disk označujeme cca 300 GB, takže s náhradním a nejlépe rychlým diskem, protože. se do něj a z něj přenesou desítky gigabajtů dat.

Neuronová síť YaLM 100B v praxi.Při vytváření ve zdrojích vyberte Ubuntu ML (Machine Learning). To je povinné, aby byly grafické karty nakonfigurovány a nebylo třeba nic instalovat dodatečně.

Při vytváření serveru existují nuance s kvótami, můžete mít pocit, že zařízení není k dispozici, ale ve skutečnosti stačí zvýšit kvóty v nastavení. Po aktivaci serveru (může to trvat 5-10 minut) se připojte k serveru přes ssh nebo přímo ve webové konzoli na stránce serveru a spusťte příkaz.

nvidia-smi

Výsledkem by měla být tabulka s grafickými kartami, verzí ovladače a cuda. Přibližně takto.
Neuronová síť YaLM 100B v praxi.V záhlaví verze ovladače a kde. Na levé straně jsou čísla zařízení, uprostřed je velikost paměti zařízení. Pokud tyto informace nemáte, pak jste server shromáždili ze špatného zdroje. Je vyžadován Ubuntu ML (Machine Learnong), jak je popsáno výše.

2. Naklonujte úložiště pomocí YaLM

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

Naklonujte se do své domovské složky, abyste poté nemuseli upravovat konfiguraci dockeru. Pokud je klonován někde jinde,
přejděte sem a přidejte cestu k místu klonování.

3. Stáhněte si kontrolní body (informace o základním modelu školení)

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

Bude to trvat asi hodinu. Abychom zbytečně neztráceli čas, vytvoříme nové ssh připojení a paralelně začneme stavět docker kontejner.

4. Nainstalujte nvidiadocker 2

Normální docker není vhodný,
je potřeba nvidia-docker2 .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Sestavení kontejneru pro YaLM

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

Je to také asi hodina.

Životní hack. Můžete si stáhnout kontrolní body, nainstalovat docker a postavit kontejner na levném serveru s jednou grafickou kartou. Časem to bude stejné, takže můžete trochu ušetřit. Po sestavení na levný server jej smažeme a vytvoříme bojový server pomocí disku z levného serveru. Pak nebudete přeplácet čas čekání na montáž a odčerpávání kontrolních bodů.

6. Připravte obsah

6.1 Kontrolní body

Po dokončení stahování kontrolních bodů je musíte vložit do konfigurací. Existují dva způsoby, správné parametry nebo přenosové kontrolní body. Všude se očekává, že kontrolní body budou v hlavním adresáři projektu, respektive to, co bylo staženo, je nutné přenést z výše uvedené složky pro stahování. Být ve složce yalm spustit

mv ./download/yalm100b_checkpoint ./

Nebo změňte cesty k souborům v ukázkových souborech
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Grafické karty

Zkontrolujeme, zda jsou grafické karty správně nastaveny. Pokud máte osm grafických karet, není třeba nic měnit. Pokud je číslo jiné, pak tyto řádky změníme
Neuronová síť YaLM 100B v praxi.V druhém řádku čísla použitých zařízení (můžete se na ně podívat v nvidia-smi, které jste již spustili). Ve čtvrtém jejich počet.

7. Spusťte ukotvitelný kontejner

Ve složce yalm spusťte příkaz

sudo bash ./docker/run.sh

Pokud je vše v pořádku, dostanete se do kontejneru, ve kterém musíte přejít do složky yalm ve vašem domovském adresáři.

cd ~/yalm

8. Spusťte příklad z YaLM 100B

Jsme připraveni spustit jeden z příkladů. Jsou popsány
zde .

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

Buďte trpěliví, zbývá počkat dalších 10-15 minut, než se vytvoří GPT model a načtou se závaží z kontrolních bodů.
Neuronová síť YaLM 100B v praxi.

Po dokončení sestavení vás MegatronML vyzve k zadání kontextu pro vygenerování textu. Při psaní buďte opatrní. Za určitých okolností dojde k chybě, program se zhroutí a je třeba spustit sestavu znovu. Proto je lepší používat příklady, které berou text ze souboru.

9. Výsledky práce

Neuronová síť YaLM 100B v praxi.
Neuronová síť YaLM 100B v praxi.Vypadá to zajímavě. To jsou samozřejmě jen dobré příklady. Provedl jsem test na různých vzorcích. Jak se dalo očekávat, čím lepší kontext, tím smysluplnější text bude generován. Kompletní sadu experimentálních generací si můžete prohlédnout na odkazech:

Za cenu mě to stálo asi 9 tisíc rublů za pronájem serverů různých kapacit od školení a od přípravy po generaci. Zvláštním zklamáním bylo, že nemůžete okamžitě generovat vše. Spuštění trvá velmi dlouho a text se negeneruje tak rychle, jak bychom chtěli, vzhledem k ceně serveru za hodinu.
Neuronová síť YaLM 100B v praxi. 

Jak spustit YaLM bez 200Gb GPU RAM?

Do konfigurace musíte přidat deepspeed zero offload. Pro ty, kteří vědí, o čem mluvíme, bude velmi snadné to udělat. Pro ostatní to není vůbec triviální úkol. Je důležité vědět, že zátěž může být buď v CPU RAM nebo NVMe. Na NVMe můžete v tuto chvíli zapomenout, protože. zpracovává se velmi velké množství dat a disk si s tím neví rady. Nulové zatížení CPU je reálnější. Pravda, k tomu je potřeba mít na skladě 200+ Gb CPU RAM, což také není levné. A jeden text bude generován asi 20-40 minut, protože ještě nebylo možné jej paralelizovat na dvou grafických kartách. Jak můžete vidět na obrázku níže, do generace byla zapojena pouze jedna grafická karta, a to pouze na čtvrtinu paměti. Zbývá zjistit, proč není využito všech 24 GB,
Neuronová síť YaLM 100B v praxi.No a závěrem řeknu, že to jde provozovat i na jedné RTX 3070 TI. Ale v tom není žádný zvláštní smysl, protože. NVMe vám neumožní rychle zpracovat 150 GB dat ve swapu, která jsou v přídavku 96 GB RAM.
Neuronová síť YaLM 100B v praxi.

Shrnutí

Samozřejmě se ještě pokusím najít optimální startovací cesty. Ale zatím jsem dospěl k závěru, že YaLM 100b je pro mé úkoly příliš drahý / příliš pomalý. Za stejné peníze lidé napíšou mnohem více a mnohem lépe. Ale myslím, že je to dočasné, tak uvidíme. Pokud potřebujete pomoc se spuštěním, nastavením yalmu nebo chcete vidět výsledky na příkladech kontextu, napište e-mail nebo telegram.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply