Tora Neural YaLM 100B di pratîkê de.

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

Di dawiya hezîranê de, Yandex
tora neuralî ya bi 100 mîlyar parametreyên bi navê YaLM 100B ji raya giştî re derxist . Ew di qada gelemperî de tora neuralî ya mîna GPT-ya herî mezin e. Ew vedibêje ka wan çawa hîn kiriye, nimûneyên çêtirîn nîşan daye û neuron çi jê re heye. Lê gelo ew di pratîkê de ew qas baş e û li malê tê sepandin? Gotar li ser vê yekê bêdeng e, ji bilî vê, ew qas ne hêsan e ku meriv wê bixebite û kontrol bike, ji ber ku bi qasî 200 Gb GPU RAM hewce ye. Ev şîroveya Habré
rewşê herî rast eşkere dike
.

Tê îdiakirin, di Yandex de, hemî mirovên wusa jîr, û wan jî How-to-ya normal neşandin. Ji bo modelek mezin api tune, ji bo mirovên asayî (di Google Colab) de modelek navîn an piçûk a amadekirî tune. Li ser çawaniya sazkirina modelê, çawaniya hilberandina nivîsê mînakek nayê dayîn. Tenê ev gotar ji bo nêrgizan çend nuwazeyan destnîşan dike û ew e. Bes e ku meriv ji nêz ve binihêre ka bank bi tîpa “C” çawa kiriye û heman tiştî bike. Min pê hesiya ku ev model tenê yek ji ceribandinên têkçûyî ye ku dilşewat bû ku were avêtin çopê, ji ber vê yekê ew di Çavkaniya Vekirî de hate şandin da ku nîşan bide ka çi modelên mezin Yandex diafirîne, û ji bilî vê, ew çavkaniya vekirî ye!

Li ser Înternetê gelek pirs hene ka meriv çawa yalm dimeşîne an jî serhêl biceribîne, lê bersivên vê yekê tune. Ez di nav bikarhênerên ku van pirsan pirsîn de bûm. Û dest li ser fêhmkirina wê kir. Ji ber ku ez bi rastî hewceyê rêyek ji bo afirandina nivîsan ji bo robotên darayî bûm. Da ku ew ne tenê nirxan pêşbînî bikin, lê di nivîsê de jî şîrove bikin, li ser bingeha raporên darayî. Di eslê xwe de, ew ê heman tiştê ku analîstên darayî dikin, tenê bi karanîna îstîxbarata çêkirî be. Du rê hene ji bo birêvebirina yalm.
Di ewr de serverek kirê bikinbi 200+ Gb GPU RAM-ê re an kodê biguhezînin û bi leza kûr a barkirina sifirê bixebitin (gava ku GPU bi rêzdarî beşek ji tora neuralî pêvajo dike, û ya mayî di CPU RAM an NVMe de tê hilanîn). Yekem pir biha ye, bi qasî 2500 rubles serê saetê an 1,7 mîlyon mehê. Ya duyemîn nenas, ji ber koda di depoyê de nayê peyda kirin, tenê
di mijara depoyê de destnîşan dike, ku kirin ne dijwar e. Ka em sade dest pê bikin.

Talîmatên Destpêkê YaLM 100B

1. Em kirê 200 GB GPU RAM, bo nimûne li vir .

Tora Neural YaLM 100B di pratîkê de.

Hûn bi kêmî ve 200 GB bîranîna tevahî vîdyoyê hewce ne. 8×40 = 320 GB. Tenê ev yek tê. Kêmtir ji 200 ne mimkûn e, bêtir gengaz e. Tîrê RAM-a CPU nîşan dide, em lê nanihêrin. Ew dikare her kes be.

Em dîskek bi qasî 300 GB destnîşan dikin, ji ber vê yekê bi dîskê yedek û bijare bi lez, ji ber. dê bi dehan gigabayt dane ber û jê were veguheztin.

Tora Neural YaLM 100B di pratîkê de.Dema ku di çavkaniyan de çêbikin, Ubuntu ML (Fêrbûna Makîneyê) hilbijêrin. Ev mecbûrî ye da ku kartên vîdyoyê werin mîheng kirin û hewce ne ku tiştek zêde were saz kirin.

Dema ku serverek diafirîne, bi kotayan re nuwaze hene, dibe ku hûn hest bikin ku amûr ne berdest in, lê di rastiyê de hûn tenê hewce ne ku kotayan di mîhengan de zêde bikin. Piştî ku server were çalak kirin (dibe ku 5-10 hûrdeman bigire), bi ssh an rasterast di konsoleya malperê ya li ser rûpela serverê de bi serverê ve girêdin û fermanê bi cih bînin.

nvidia-smi

Divê encam bibe tabloyek bi kartên vîdyoyê, guhertoya ajokar û cuda. Bi qasî vê yekê.
Tora Neural YaLM 100B di pratîkê de.Di sernivîsa guhertoya ajokerê de û li ku derê. Li milê çepê hejmarên cîhazê, li navendê mezinahiya bîranîna cîhazê hene. Heke we ev agahdarî tune, wê hingê we server ji çavkaniyek xelet berhev kiriye. Ubuntu ML (Machine Learnong) pêdivî ye, wekî ku li jor hatî destnîşan kirin.

2. Bi YaLM re depoyê klon bikin

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

Peldanka mala xwe klon bikin da ku hûn ne hewce ne ku dûv re konfigurasyona docker biguherînin. Ger li cîhek din klon kirin, wê hingê
biçin vir û rê li cihê ku klon kirin lê zêde bikin.

3. Xalên kontrolê dakêşin (agahdariya perwerdehiya modela bingehîn)

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

Ev dê nêzîkî saetekê bigire. Ji bo ku dem vala winda nekin, em pêwendiyek nû ya ssh diafirînin û di heman demê de em dest bi avakirina konteynerek dokerê dikin.

4. Nvidiadocker 2 saz bikin

Dokera normal ne guncaw e,
nvidia-docker2 hewce ye .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Avakirina konteynir ji bo YaLM

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

Ew jî bi qasî saetekê ye.

Life hack. Hûn dikarin nuqteyên kontrolê dakêşin, docker saz bikin û bi yek qerta vîdyoyê li ser serverek erzan konteynirek ava bikin. Ew ê di demê de heman be, ji ber vê yekê hûn dikarin piçek xilas bikin. Piştî kombûnê li ser serverek erzan, em wê jêbirin, û serverek şerker bi karanîna dîskek ji serverek erzan ava dikin. Wê hingê hûn ê wextê li benda meclîsê û derxistina nuqteyên kontrolê zêde nedin.

6. Naverok amade bikin

6.1 Xalên kontrolê

Piştî ku dakêşana nuqteyên kontrolê qediya, hûn hewce ne ku wan bixin nav mîhengan. Du rê hene, parametreyên rast an jî nuqteyên kontrolê yên veguheztinê. Li her deverê tê çaverê kirin ku nuqteyên kontrolê dê di pelrêça sereke ya projeyê de bin, bi rêzdarî, tiştê ku hatî dakêşandin divê ji peldanka dakêşanê ya jorîn were veguheztin. Di peldanka yalm de darve kirin

mv ./download/yalm100b_checkpoint ./

An jî rêyên pelên di pelên nimûneyê de biguherînin
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 Kartên vîdyoyê

Em kontrol dikin ku kartên vîdyoyê rast hatine danîn. Ger heşt kartên we yên vîdyoyê hene, wê hingê tiştek hewce ne ku were guheztin. Ger hejmar cûda be, wê hingê em van rêzan diguhezînin
Tora Neural YaLM 100B di pratîkê de.Di rêza duyemîn de, hejmarên cîhazên ku têne bikar anîn (hûn dikarin li nvidia-smi, ku we berê dest pê kiriye, li wan binêrin). Di çaremîn de, hejmara wan.

7. Konteynera dokerê bimeşînin

Di peldanka yalmê de bin, fermanê bicîh bînin

sudo bash ./docker/run.sh

Ger her tişt baş be, wê hingê hûn ê bibin konteynirek ku tê de hûn hewce ne ku herin peldanka yalm a peldanka mala xwe.

cd ~/yalm

8. Mînak ji YaLM 100B bimeşînin

Em amade ne ku yek ji mînakan bidin destpêkirin. Ew li vir têne şirove
kirin .

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

Bi sebir bin, ew dimîne ku 10-15 hûrdemên din li bendê bimînin heya ku modela GPT were afirandin û giraniyên ji nuqteyên kontrolê werin barkirin.
Tora Neural YaLM 100B di pratîkê de.

Dema ku avakirin qediya, MegatronML dê ji we bipirse ku hûn têkevin çarçoveyek ku nivîsê çêbikin. Dema ku hûn dinivîsin baldar bin. Di bin hin mercan de, xeletiyek çêdibe, bername têk diçe û divê hûn ji nû ve dest bi civînê bikin. Ji ber vê yekê, çêtir e ku meriv nimûneyên ku ji pelê nivîsê digirin bikar bînin.

9. Encamên xebatê

Tora Neural YaLM 100B di pratîkê de.
Tora Neural YaLM 100B di pratîkê de.Balkêş xuya dike. Bê guman, ev tenê mînakên baş in. Min testê li ser nimûneyên cûda kir. Wekî ku tê hêvî kirin, şert û mercên baştir, dê metnek watedartir çêbibe. Tevahiya nifşên ceribandinê dikarin li ser lînkan werin dîtin:

Ji bo bihayê, ew ji bo kirêkirina serverên bi kapasîteyên cihêreng ji perwerdehiyê û ji amadekariyê heya nifşê bi qasî 9 hezar rubleyê min lêçû. Xemgîniyek taybetî ev bû ku hûn nekarin tavilê her tiştî biafirînin. Ji bo destpêkirinê demek pir dirêj digire û nivîs bi qasî ku em dixwazin zû çênabe, ji ber lêçûna serverê ya saetekê.
Tora Neural YaLM 100B di pratîkê de. 

Meriv çawa bêyî 200 GB GPU RAM YaLM dimeşîne?

Hûn hewce ne ku barkirina zero ya kûr li ser mîhengê zêde bikin. Ji bo kesên ku dizanin em li ser çi dipeyivin, ew ê pir hêsan be ku wê bikin. Ji bo yên din, ev ne karekî hindik e. Girîng e ku hûn zanibin ku barkirin dikare di CPU RAM an jî NVMe de be. Hûn dikarin vê gavê NVMe ji bîr bikin, ji ber. jimarek pir mezin a daneyan têne hilberandin û dîsk nikare pê re mijûl bibe. Zero offload CPU rasttir e. Rast e, ji bo vê yekê hûn hewce ne ku di stokê de 200+ Gb CPU RAM hebe, ku ew jî ne erzan e. Û yek nivîs dê bi qasî 20-40 hûrdeman were hilberandin, ji ber ku hîn ne gengaz e ku ew li ser du kartên vîdyoyê paralel bikin. Wekî ku hûn di dîmendera jêrîn de dibînin, tenê yek qerta vîdyoyê di nifşê de beşdar bû, û dûv re jî tenê ji bo çaryek bîranînê. Dê were dîtin ka çima hemî 24 GB nayên bikar anîn,
Tora Neural YaLM 100B di pratîkê de.Welê, di encamê de, ez ê bibêjim ku gengaz e ku meriv li ser yek RTX 3070 TI jî bixebite. Lê ti wateya taybetî di vê de tune, ji ber. NVMe dê nehêle ku hûn di guheztinê de, ku di pêveka 96 GB RAM-ê de ne, zû 150 GB daneyan pêvajoyê bikin.
Tora Neural YaLM 100B di pratîkê de.

Bi kurtasî

Bê guman, ez ê dîsa jî hewl bidim ku rêyên destpêkirina çêtirîn bibînim. Lê heya nuha ez gihîştim wê encamê ku YaLM 100b ji bo karên min pir biha / pir hêdî ye. Bi heman pereyan mirov wê pir zêde û hê çêtir binivîsin. Lê ez difikirim ku ew demkî ye, em ê bibînin. Ger ji bo destpêkirinê, sazkirina yalmê hewcedariya we bi arîkariyê heye, an jî hûn dixwazin encaman li ser mînakên çarçoweya xwe bibînin, ji nameyê an telegramê re binivîsin.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply