Rrjeti nervor YaLM 100B në praktikë.

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

Në fund të qershorit, Yandex
lëshoi ​​për publikun një rrjet nervor me 100 miliardë parametra të quajtur YaLM 100B . Është rrjeti nervor më i madh i ngjashëm me GPT në domenin publik. Ai tregon se si ata mësuan, treguan shembujt më të mirë dhe çfarë është i aftë neuroni. Por a është kaq e mirë në praktikë dhe e zbatueshme në shtëpi? Artikulli hesht për këtë, për më tepër, nuk është aq e lehtë ta ekzekutosh dhe ta kontrollosh, pasi kërkohet afërsisht 200 Gb RAM GPU. Ky koment për Habré
e zbulon situatën më saktë
.

Me sa duket, në Yandex, të gjithë njerëz të tillë të zgjuar, dhe ata nuk kanë postuar as një udhëzim normal. Nuk ka api për një model të madh, nuk ka asnjë model të gatshëm të zhveshur të mesëm ose të vogël për njerëzit e zakonshëm (në Google Colab). Nuk jepet asnjë shembull se si të konfiguroni modelin, si të gjeneroni tekst. Thjesht artikulli tregon nja dy nuanca për nerdët dhe kaq. Mjafton të hedhim një vështrim më të afërt se si e bëri banka me shkronjën “C” dhe të bëni të njëjtën gjë. Kam krijuar përshtypjen se ky model është vetëm një nga eksperimentet e dështuara që ishte për të ardhur keq për t’u hedhur në kosh, kështu që u postua në Open Source për të treguar se çfarë modele të shkëlqyera krijon Yandex, dhe për më tepër, është me burim të hapur!

Ka shumë pyetje në internet se si të ekzekutoni yalm apo edhe të provoni në internet, por nuk ka përgjigje për këtë. Unë isha ndër përdoruesit që i bënë këto pyetje. Dhe u nis për ta kuptuar atë. Meqenëse më duhej vërtet një mënyrë për të gjeneruar tekste për robotët financiarë. Në mënyrë që ata të mund të parashikojnë jo vetëm vlerat, por edhe ta komentojnë atë në tekst, bazuar në raportet financiare. Në thelb, do të jetë e njëjtë me atë që bëjnë analistët financiarë, vetëm me përdorimin e inteligjencës artificiale. Ka dy mënyra për të drejtuar jalmin.
Merr me qira një server në cloudme 200+ Gb RAM GPU ose modifikoni kodin dhe ekzekutoni me shpejtësi të thellë zero (kur GPU-ja përpunon në mënyrë sekuenciale një pjesë të rrjetit nervor dhe pjesa tjetër ruhet në CPU RAM ose NVMe). E para është shumë e shtrenjtë, rreth 2500 rubla në orë ose 1.7 milion në muaj. E dyta e panjohur, sepse kodi në depo nuk është dhënë, vetëm
sugjerime në çështjen e depove, gjë që nuk është e vështirë për t’u bërë. Le të fillojmë thjesht.

Udhëzimet e nisjes së YaLM 100B

1. Ne marrim me qira 200 GB RAM GPU, për shembull këtu .

Rrjeti nervor YaLM 100B në praktikë.

Ju duhet të paktën 200 GB memorie totale video. 8×40 = 320 GB. Vetëm kjo përshtatet. Më pak se 200 është e pamundur, më shumë është e mundur. Shigjeta tregon RAM-in e CPU, ne nuk e shikojmë atë. Ajo mund të jetë kushdo.

Tregojmë një disk prej rreth 300 GB, në mënyrë që me një disk rezervë dhe mundësisht të shpejtë, sepse. dhjetëra gigabajt të dhëna do të transferohen në dhe nga ai.

Rrjeti nervor YaLM 100B në praktikë. Kur krijoni në burime, zgjidhni Ubuntu ML (Mësimi i Makinerisë). Kjo është e detyrueshme në mënyrë që kartat video të konfigurohen dhe asgjë nuk duhet të instalohet shtesë.

Kur krijoni një server, ka nuanca me kuotat, mund të keni ndjenjën se pajisjet nuk janë të disponueshme, por në fakt ju vetëm duhet të rritni kuotat në cilësimet. Pasi të aktivizohet serveri (mund të duhen 5-10 minuta), lidheni me serverin përmes ssh ose direkt në tastierën e internetit në faqen e serverit dhe ekzekutoni komandën.

nvidia-smi

Rezultati duhet të jetë një tabelë me karta video, versionin e shoferit dhe cuda. Përafërsisht si kjo.
Rrjeti nervor YaLM 100B në praktikë. Në kokën e versionit të shoferit dhe ku. Në anën e majtë janë numrat e pajisjes, në qendër është madhësia e kujtesës së pajisjes. Nëse nuk e keni këtë informacion, atëherë e keni mbledhur serverin nga burimi i gabuar. Ubuntu ML (Machine Learnong) kërkohet, siç përshkruhet më sipër.

2. Klononi depon me YaLM

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

Klononi në dosjen tuaj kryesore në mënyrë që të mos keni nevojë të redaktoni konfigurimin e docker më pas. Nëse klonohet diku tjetër, atëherë
shkoni këtu dhe shtoni shtegun atje ku është klonuar.

3. Shkarkoni pikat e kontrollit (informacionet bazë të trajnimit të modelit)

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

Kjo do të zgjasë rreth një orë. Për të mos humbur kohë kot, krijojmë një lidhje të re ssh dhe paralelisht fillojmë të ndërtojmë një kontejner docker.

4. Instaloni nvidiadocker 2

Dokeri normal nuk është i përshtatshëm,
nevojitet nvidia-docker2 .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Ndërtimi i një kontejneri për YaLM

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

Është gjithashtu rreth një orë.

Hack jetës. Mund të shkarkoni pika kontrolli, të instaloni docker dhe të ndërtoni një kontejner në një server të lirë me një kartë video. Me kalimin e kohës do të jetë e njëjtë, kështu që mund të kurseni pak. Pas montimit në një server të lirë, ne e fshijmë atë dhe krijojmë një server luftarak duke përdorur një disk nga një server i lirë. Atëherë nuk do ta paguani shumë kohën për të pritur montimin dhe pompimin e pikave të kontrollit.

6. Përgatitni përmbajtjen

6.1 Pikat e kontrollit

Pasi të përfundojë shkarkimi i pikave të kontrollit, duhet t’i futni ato në konfigurime. Ka dy mënyra, parametrat e saktë ose pikat e kontrollit të transferimit. Kudo pritet që pikat e kontrollit të jenë në direktorinë kryesore të projektit, përkatësisht, ajo që është shkarkuar duhet të transferohet nga dosja e shkarkimit më sipër. Duke qenë në dosjen yalm ekzekutoni

mv ./download/yalm100b_checkpoint ./

Ose ndryshoni shtigjet te skedarët në skedarët e shembullit
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 Kartat video

Ne kontrollojmë që kartat video të jenë vendosur saktë. Nëse keni tetë karta video, atëherë asgjë nuk duhet të ndryshohet. Nëse numri është i ndryshëm, atëherë ne i ndryshojmë këto rreshta
Rrjeti nervor YaLM 100B në praktikë. Në rreshtin e dytë, numrat e pajisjeve të përdorura (mund t’i shikoni ato në nvidia-smi, të cilën e keni nisur tashmë). Në të katërtin, numri i tyre.

7. Drejtoni kontejnerin docker

Duke qenë në dosjen yalm, ekzekutoni komandën

sudo bash ./docker/run.sh

Nëse gjithçka është në rregull, atëherë do të çoheni në një enë në të cilën duhet të shkoni te dosja yalm në direktorinë tuaj kryesore.

cd ~/alm

8. Ekzekutoni shembullin nga YaLM 100B

Ne jemi gati të lançojmë një nga shembujt. Ato janë përshkruar
këtu .

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

Jini të durueshëm, mbetet të prisni edhe 10-15 minuta derisa të krijohet modeli GPT dhe të ngarkohen peshat nga pikat e kontrollit.
Rrjeti nervor YaLM 100B në praktikë.

Kur të përfundojë ndërtimi, MegatronML do t’ju kërkojë të futni një kontekst për të gjeneruar tekst. Kini kujdes kur shkruani. Në rrethana të caktuara, ndodh një gabim, programi rrëzohet dhe ju duhet të filloni përsëri montimin. Prandaj, është më mirë të përdorni shembuj që marrin tekst nga një skedar.

9. Rezultatet e punës

Rrjeti nervor YaLM 100B në praktikë.
Rrjeti nervor YaLM 100B në praktikë. Duket interesante. Sigurisht, këta janë vetëm shembuj të mirë. Kam kryer testin në mostra të ndryshme. Siç pritej, sa më i mirë të jetë konteksti, aq më kuptimplotë do të gjenerohet teksti. Setin e plotë të gjeneratave eksperimentale mund ta shikoni në lidhjet:

Për çmimin, më kushtoi rreth 9 mijë rubla për marrjen me qira të serverëve me kapacitete të ndryshme nga trajnimi dhe nga përgatitja në brez. Një zhgënjim i veçantë ishte se nuk mund të gjenerosh menjëherë gjithçka. Duhet një kohë shumë e gjatë për të filluar dhe teksti nuk gjenerohet aq shpejt sa do të dëshironim, duke pasur parasysh koston e serverit për orë.
Rrjeti nervor YaLM 100B në praktikë.  

Si të ekzekutoni YaLM pa RAM GPU 200 Gb?

Duhet të shtoni shkarkimin zero të shpejtësisë së thellë në konfigurim. Për ata që e dinë se për çfarë po flasim, do të jetë shumë e lehtë për ta bërë atë. Për të tjerët, kjo nuk është aspak një detyrë e parëndësishme. Është e rëndësishme të dini se shkarkimi mund të jetë ose në CPU RAM ose NVMe. Ju mund të harroni për NVMe për momentin, sepse. një sasi shumë e madhe e të dhënave është duke u përpunuar dhe disku nuk mund ta përballojë atë. CPU me shkarkim zero është më real. Vërtetë, për këtë ju duhet të keni 200+ Gb CPU RAM në magazinë, e cila gjithashtu nuk është e lirë. Dhe një tekst do të gjenerohet për rreth 20-40 minuta, pasi nuk ka qenë ende e mundur të paralelizohet në dy karta video. Siç mund ta shihni në pamjen e mëposhtme të ekranit, vetëm një kartë video u përfshi në gjenerim, dhe më pas vetëm për një të katërtën e memories. Mbetet për t’u parë pse nuk përdoren të gjitha 24 GB,
Rrjeti nervor YaLM 100B në praktikë. Epo, si përfundim, do të them që është e mundur të ekzekutohet edhe në një RTX 3070 TI. Por nuk ka kuptim të veçantë në këtë, sepse. NVMe nuk do t’ju lejojë të përpunoni shpejt 150 GB të dhëna në shkëmbim, të cilat janë në shtojcën e 96 GB RAM.
Rrjeti nervor YaLM 100B në praktikë.

Duke përmbledhur

Sigurisht, unë do të përpiqem të gjej shtigjet optimale të nisjes. Por deri më tani kam arritur në përfundimin se YaLM 100b është shumë i shtrenjtë / shumë i ngadalshëm për detyrat e mia. Për të njëjtat para, njerëzit do të shkruajnë shumë më tepër dhe shumë më mirë. Por unë mendoj se është e përkohshme, do të shohim. Nëse keni nevojë për ndihmë me nisjen, konfigurimin e yalm ose dëshironi të shihni rezultatet në shembujt e kontekstit tuaj, shkruani në postë ose telegram.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply