Neural Netzwierk YaLM 100B an der Praxis.

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

Enn Juni huet Yandex
en neuralt Netzwierk mat 100 Milliarde Parameteren genannt YaLM 100B fir de Public verëffentlecht . Et ass dee gréisste GPT-ähnlechen neurale Netzwierk am ëffentlechen Domain. Et erzielt iwwer wéi se geléiert hunn, déi bescht Beispiller gewisen hunn a wat den Neuron fäeg ass. Awer ass et an der Praxis sou gutt an applicabel doheem? Den Artikel ass roueg iwwer dëst, ausserdeem ass et net sou einfach ze lafen an ze kontrolléieren, well ongeféier 200 Gb GPU RAM erfuerderlech ass. Dëse Kommentar zum Habré
verréit d’Situatioun am meeschte genee
.

Angeblech, am Yandex, all sou intelligent Leit, a si hunn net emol en normale How-to gepost. Et gëtt keen API fir e grousse Modell, et gëtt kee fäerdege ofgeschniddene mëttel- oder klenge Modell fir gewéinlech Leit (am Google Colab). Kee Beispill gëtt uginn wéi een de Modell opstellt, wéi een Text generéiert. Et ass just datt den Artikel e puer Nuancen fir Nerd weist an dat ass et. Et ass genuch méi no ze kucken wéi d’Bank et mam Bréif “C” gemaach huet an datselwecht ze maachen. Ech hunn den Androck datt dëse Modell just ee vun de gescheitert Experimenter ass, déi schued war an den Dreck ze geheien, sou datt et an der Open Source gepost gouf fir ze weisen wat fir eng super Modeller Yandex erstellt, an doriwwer eraus ass et Open Source!

Et gi vill Froen um Internet wéi Dir Yalm leeft oder souguer online probéiert, awer et gi keng Äntwerten op dës. Ech war ënnert de Benotzer déi dës Froen gestallt hunn. A setzt sech fir erauszefannen. Well ech wierklech e Wee brauch fir Texter fir Finanzroboter ze generéieren. Fir datt se net nëmmen d’Wäerter viraussoen, mee och am Text kommentéieren, baséiert op finanzielle Berichter. Am Wesentlechen wäert et d’selwecht sinn wéi wat finanziell Analysten maachen, nëmme mat der Benotzung vu kënschtlecher Intelligenz. Et ginn zwou Weeër fir Yalm ze lafen.
Loyer engem Server an der Wollekmat 200+ Gb GPU RAM oder de Code änneren a mat Deepspeed Null Offload lafen (wann d’GPU sequenziell en Deel vum neurale Netzwierk veraarbecht, an de Rescht gëtt am CPU RAM oder NVMe gespäichert). Déi éischt ass ganz deier, ongeféier 2500 Rubelen pro Stonn oder 1,7 Millioune pro Mount. Déi zweet onbekannt, well de Code am Repository gëtt net geliwwert, nëmmen
Hiweiser an der Ausgab vum Repository, wat net schwéier ass ze maachen. Loosst eis einfach ufänken.

YaLM 100B Launch Instruktioune

1. Mir Loyer 200 GB GPU RAM, zum Beispill hei .

Neural Netzwierk YaLM 100B an der Praxis.

Dir braucht op d’mannst 200 GB vum Gesamtvideospeicher. 8×40 = 320 GB. Nëmmen dës passt. Manner wéi 200 ass onméiglech, méi ass méiglech. De Pfeil weist den CPU RAM un, mir kucken et net. Si kann jiddereen ginn.

Mir weisen eng Scheif vun ongeféier 300 GB un, sou datt mat engem Ersatz an am léifsten e schnelle Scheif, well. Zénger vu Gigabyte vun Daten ginn op a vun et transferéiert.

Neural Netzwierk YaLM 100B an der Praxis.Wann Dir a Quellen erstellt, wielt Ubuntu ML (Machine Learning). Dëst ass obligatoresch sou datt d’Videokaarte konfiguréiert sinn an näischt zousätzlech installéiert muss ginn.

Wann Dir e Server erstellt, ginn et Nuancen mat Quoten, Dir kënnt d’Gefill kréien datt d’Ausrüstung net verfügbar ass, awer tatsächlech musst Dir just d’Quoten an den Astellungen erhéijen. Nodeems de Server aktivéiert ass (et kann 5-10 Minutten daueren), verbënnt mat dem Server iwwer ssh oder direkt an der Webkonsole op der Server Säit an fuert de Kommando aus.

nvidia-smi

D’Resultat soll en Dësch mat Video Kaarte ginn, Chauffer Versioun an cuda. Ongeféier esou.
Neural Netzwierk YaLM 100B an der Praxis.Am Chauffer Versioun Header a wou. Op der lénker Säit sinn d’Apparatnummeren, am Zentrum ass d’Gréisst vum Apparat Erënnerung. Wann Dir dës Informatioun net hutt, hutt Dir de Server vun der falscher Quell gesammelt. Ubuntu ML (Machine Learnong) ass erfuerderlech, wéi uewen beschriwwen.

2. Klon de Repository mat YaLM

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

Klon an Ärem Heemdossier sou datt Dir d’Docker Config duerno net z’änneren musst. Wann Dir iergendwou anzwousch anescht gekloont sidd, da
gitt hei a füügt de Wee un wou gekloont gëtt.

3. Download Checkpoints (Basismodell Trainingsinformatioun)

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

Dëst wäert ongeféier eng Stonn huelen. Fir net ëmsoss Zäit ze verschwenden, kreéiere mir eng nei ssh Verbindung an parallel fänken mir un engem Docker Container ze bauen.

4. Installéiert nvidiadocker 2

Normale Docker ass net gëeegent,
nvidia-docker2 ass néideg .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Bauen engem Container fir YaLM

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

Et ass och ongeféier eng Stonn.

Liewen Hack. Dir kënnt Checkpoints eroflueden, Docker installéieren an e Container op engem bëllege Server mat enger Videokaart bauen. Et wäert d’selwecht sinn an der Zäit, sou datt Dir e bëssen spuere kënnt. No Assemblée op engem bëlleg Server, mir läschen et, a schafen engem Kampf Server engem Scheif aus engem bëlleg Server benotzt. Da wäert Dir d’Zäit net iwwerbezuelen fir op d’Versammlung ze waarden an d’Kontrollpunkten auszepompelen.

6. Preparéieren Inhalt

6.1 Kontrollpunkten

Nodeems den Download vu Checkpoints eriwwer ass, musst Dir se an d’Konfiguratioun rutschen. Et ginn zwou Méiglechkeeten, korrekt Parameteren oder Transfert Kontrollpunkte. Iwwerall gëtt erwaart datt d’Kontrollpunkten am Haaptverzeechnes vum Projet sinn, respektiv, wat erofgeluede gouf, muss aus dem Download-Ordner uewen transferéiert ginn. Sinn am Yalm Dossier ausféieren

mv ./download/yalm100b_checkpoint ./

Oder änneren d’Weeër fir d’Dateien an de Beispilldateien
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Video Kaarte

Mir kontrolléieren ob d’Videokaarten richteg agestallt sinn. Wann Dir aacht Videokaarten hutt, da muss näischt geännert ginn. Wann d’Zuel anescht ass, da ännere mir dës Zeilen
Neural Netzwierk YaLM 100B an der Praxis.An der zweeter Zeil, d’Zuelen vun den benotzten Apparater (Dir kënnt se an nvidia-smi kucken, déi Dir scho lancéiert hutt). Am véierten, hir Zuel.

7. Run den Docker Container

Sidd am Yalm Dossier, fuert de Kommando aus

sudo bash ./docker/run.sh

Wann alles OK ass, da gitt Dir an e Container geholl, an deem Dir an de Yalm Dossier an Ärem Heemverzeichnis gitt.

cd ~/jam

8. Run d’Beispill vun YaLM 100B

Mir si prett ee vun de Beispiller ze lancéieren. Si sinn
hei beschriwwen .

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

Sidd Gedold, et bleift nach 10-15 Minutten ze waarden bis de GPT Modell erstallt gëtt an d’Gewichte vun de Kontrollpunkte gelueden ginn.
Neural Netzwierk YaLM 100B an der Praxis.

Wann de Bau fäerdeg ass, freet MegatronML Iech e Kontext anzeginn fir Text ze generéieren. Sidd virsiichteg wann Dir tippt. Ënner bestëmmten Ëmstänn geschitt e Feeler, de Programm crasht an Dir musst d’Versammlung erëm ufänken. Dofir ass et besser Beispiller ze benotzen déi Text aus enger Datei huelen.

9. Resultater vun der Aarbecht

Neural Netzwierk YaLM 100B an der Praxis.
Neural Netzwierk YaLM 100B an der Praxis.Gesäit interessant aus. Natierlech sinn dat nëmme gutt Beispiller. Ech hunn den Test op verschiddene Proben ausgefouert. Wéi erwaart, wat besser de Kontext ass, dest méi sënnvoll Text gëtt generéiert. De komplette Set vun experimentellen Generatiounen kann op de Linken gekuckt ginn:

Fir de Präis kascht et mech ongeféier 9 dausend Rubel fir Serveren vu verschiddene Kapazitéiten aus Training a vu Virbereedung bis Generatioun ze lounen. Eng besonnesch Enttäuschung war datt Dir net direkt alles generéiere kënnt. Et dauert eng ganz laang Zäit fir unzefänken an den Text generéiert net sou séier wéi mir gären hätten, mat de Käschte vum Server pro Stonn.
Neural Netzwierk YaLM 100B an der Praxis. 

Wéi lafen YaLM ouni 200Gb GPU RAM?

Dir musst Deepspeed Zero Offload un d’Konfiguratioun addéieren. Fir déi, déi wësse vu wat mir schwätzen, wäert et ganz einfach sinn et ze maachen. Fir anerer ass dëst guer keng trivial Aufgab. Et ass wichteg ze wëssen datt Offload entweder am CPU RAM oder NVMe ka sinn. Dir kënnt iwwer NVMe am Moment vergiessen, well. eng ganz grouss Quantitéit un Daten gëtt veraarbecht an d’Disk kann et net eens ginn. Null Offload CPU ass méi real. Richteg, dofir musst Dir 200+ Gb CPU RAM op Lager hunn, wat och net bëlleg ass. An een Text gëtt fir ongeféier 20-40 Minutten generéiert, well et nach net méiglech war, et op zwou Videokaarten ze paralleliséieren. Wéi Dir am Screenshot hei ënnen gesitt, war nëmmen eng Videokaart an der Generatioun involvéiert, an dann nëmme fir e Véierel vun der Erënnerung. Et bleift ze gesinn firwat all 24 GB net benotzt ginn,
Neural Netzwierk YaLM 100B an der Praxis.Gutt, zum Schluss wäert ech soen datt et méiglech ass souguer op engem RTX 3070 TI ze lafen. Mä et gëtt kee besonnesche Sënn an dësem, well. NVMe erlaabt Iech net séier 150 GB vun Daten am Swap ze veraarbechten, déi am Appendage vun 96 GB vum RAM sinn.
Neural Netzwierk YaLM 100B an der Praxis.

Zesummefaassung

Natierlech wäert ech nach ëmmer probéieren déi optimal Startweeër ze fannen. Awer bis elo sinn ech zur Conclusioun komm datt de YaLM 100b ze deier / ze lues ass fir meng Aufgaben. Fir déi selwecht Sue wäerten d’Leit vill méi a vill besser schreiwen. Awer ech mengen et ass temporär, mir wäerte gesinn. Wann Dir Hëllef braucht mam Start, Yalm opzestellen, oder d’Resultater op Äre Kontextbeispiller wëllt gesinn, schreift op d’Mail oder Telegramm.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply