Mtandao wa Neural YaLM 100B katika mazoezi.

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

Mwishoni mwa Juni, Yandex
ilitoa mtandao wa neva wenye vigezo bilioni 100 vinavyoitwa YaLM 100B kwa umma . Ni mtandao mkubwa zaidi wa neva unaofanana na GPT katika kikoa cha umma. Inasimulia jinsi walivyofundisha, walionyesha mifano bora na kile neuroni ina uwezo wa kufanya. Lakini ni nzuri sana katika mazoezi na inatumika nyumbani? Nakala hiyo iko kimya juu ya hili, zaidi ya hayo, si rahisi sana kuiendesha na kuiangalia, kwani takriban 200 Gb ya RAM ya GPU inahitajika. Maoni haya kuhusu Habre
yanaonyesha hali hiyo kwa usahihi zaidi
.

Inadaiwa, katika Yandex, watu wote wenye akili kama hao, na hawakuchapisha jinsi ya kawaida. Hakuna api kwa mfano mkubwa, hakuna mfano wa kati au mdogo uliotengenezwa tayari kwa watu wa kawaida (katika Google Colab). Hakuna mfano unaotolewa juu ya jinsi ya kuanzisha mfano, jinsi ya kuzalisha maandishi. Ni kwamba kifungu kinaonyesha nuances kadhaa kwa wajinga na ndivyo hivyo. Inatosha kuangalia kwa karibu jinsi benki ilivyofanya kwa barua “C” na kufanya hivyo. Nilipata maoni kwamba mfano huu ni moja tu ya majaribio yaliyoshindwa ambayo yalikuwa na huruma kutupa kwenye takataka, kwa hivyo iliwekwa kwenye Chanzo cha Open ili kuonyesha ni mifano gani kuu ya Yandex inaunda, na zaidi ya hayo, ni chanzo wazi!

Kuna maswali mengi kwenye mtandao jinsi ya kuendesha yalm au hata kujaribu mtandaoni, lakini hakuna majibu kwa hili. Nilikuwa miongoni mwa watumiaji waliouliza maswali haya. Na kuanza kufikiria. Kwa kuwa nilihitaji sana njia ya kutengeneza maandishi kwa roboti za kifedha. Ili waweze kutabiri sio tu maadili, lakini pia maoni juu yake kwa maandishi, kulingana na ripoti za kifedha. Kwa asili, itakuwa sawa na kile wachambuzi wa kifedha hufanya, tu kwa matumizi ya akili ya bandia. Kuna njia mbili za kukimbia yalm.
Kodisha seva kwenye winguna RAM ya GPU ya 200+ Gb au urekebishe msimbo na uendeshe upakiaji wa sifuri kwa kasi zaidi (wakati GPU huchakata kwa mpangilio sehemu ya mtandao wa neva, na nyinginezo huhifadhiwa kwenye RAM ya CPU au NVMe). Ya kwanza ni ghali sana, kuhusu rubles 2500 kwa saa au milioni 1.7 kwa mwezi. Ya pili haijulikani, kwa sababu kanuni katika hazina haijatolewa,
vidokezo tu katika suala la hifadhi, ambayo si vigumu kufanya. Hebu tuanze rahisi.

Maagizo ya Uzinduzi wa YaLM 100B

1. Tunakodisha RAM ya GPU ya GB 200, kwa mfano hapa .

Mtandao wa Neural YaLM 100B katika mazoezi.

Unahitaji angalau GB 200 ya jumla ya kumbukumbu ya video. 8×40 = GB 320. Hii tu inafaa. Chini ya 200 haiwezekani, zaidi inawezekana. Mshale unaonyesha RAM ya CPU, hatuangalii. Anaweza kuwa mtu yeyote.

Tunaonyesha diski ya karibu 300 GB, ili kwa vipuri na ikiwezekana diski ya haraka, kwa sababu. makumi ya gigabytes ya data itahamishiwa na kutoka kwake.

Mtandao wa Neural YaLM 100B katika mazoezi.Wakati wa kuunda katika vyanzo, chagua Ubuntu ML (Kujifunza kwa Mashine). Hii ni lazima ili kadi za video zisanidiwe na hakuna kitu kinachohitaji kusakinishwa kwa kuongeza.

Wakati wa kuunda seva, kuna nuances na upendeleo, unaweza kupata hisia kwamba vifaa hazipatikani, lakini kwa kweli unahitaji tu kuongeza upendeleo katika mipangilio. Baada ya seva kuamilishwa (inaweza kuchukua dakika 5-10), unganisha kwa seva kupitia ssh au moja kwa moja kwenye koni ya wavuti kwenye ukurasa wa seva na utekeleze amri.

nvidia-smi

Matokeo yake yanapaswa kuwa meza na kadi za video, toleo la dereva na cuda. Takriban kama hii.
Mtandao wa Neural YaLM 100B katika mazoezi.Katika kichwa cha toleo la dereva na wapi. Upande wa kushoto kuna nambari za kifaa, katikati ni saizi ya kumbukumbu ya kifaa. Ikiwa huna habari hii, basi umekusanya seva kutoka kwa chanzo kisicho sahihi. Ubuntu ML (Mashine Learnong) inahitajika, kama ilivyoelezwa hapo juu.

2. Funga hazina na YaLM

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

Funga folda yako ya nyumbani ili sio lazima uhariri usanidi wa kizimbani baadaye. Ikiwa imeundwa mahali pengine, basi
nenda hapa na uongeze njia ya mahali ilipoundwa.

3. Pakua vituo vya ukaguzi (maelezo ya msingi ya mafunzo)

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

Hii itachukua muda wa saa moja. Ili tusipoteze muda bure, tunaunda muunganisho mpya wa ssh na kwa sambamba tunaanza kujenga chombo cha docker.

4. Weka nvidiadocker 2

Docker ya kawaida haifai,
nvidia-docker2 inahitajika .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Kujenga chombo kwa ajili ya YaLM

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

Pia ni kama saa moja.

Hack ya maisha. Unaweza kupakua vituo vya ukaguzi, kufunga docker na kujenga chombo kwenye seva ya bei nafuu na kadi moja ya video. Itakuwa sawa kwa wakati, hivyo unaweza kuokoa kidogo. Baada ya kusanyiko kwenye seva ya bei nafuu, tunaifuta, na kuunda seva ya kupambana kwa kutumia diski kutoka kwa seva ya bei nafuu. Basi hautalipia wakati wa kungojea kusanyiko na kusukuma vituo vya ukaguzi.

6. Tayarisha maudhui

6.1 Vituo vya ukaguzi

Baada ya upakuaji wa vituo vya ukaguzi kumalizika, unahitaji kuviingiza kwenye usanidi. Kuna njia mbili, vigezo sahihi au vituo vya ukaguzi vya uhamisho. Kila mahali inatarajiwa kwamba vituo vya ukaguzi vitakuwa kwenye saraka kuu ya mradi, kwa mtiririko huo, kile kilichopakuliwa lazima kihamishwe kutoka kwenye folda ya kupakua hapo juu. Ukiwa kwenye folda ya yalm tekeleza

mv ./download/yalm100b_checkpoint ./

Au ubadilishe njia za faili katika faili za mfano
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Kadi za video

Tunaangalia kuwa kadi za video zimewekwa kwa usahihi. Ikiwa una kadi nane za video, basi hakuna kitu kinachohitaji kubadilishwa. Ikiwa nambari ni tofauti, basi tunabadilisha mistari hii
Mtandao wa Neural YaLM 100B katika mazoezi.Katika mstari wa pili, nambari za vifaa vinavyotumiwa (unaweza kuziangalia katika nvidia-smi, ambayo tayari umezindua). Katika nne, idadi yao.

7. Endesha chombo cha docker

Ukiwa kwenye folda ya yalm, tekeleza amri

sudo bash ./docker/run.sh

Ikiwa kila kitu ni sawa, basi utachukuliwa kwenye chombo ambacho unahitaji kwenda kwenye folda ya yalm kwenye saraka yako ya nyumbani.

cd ~/yalm

8. Endesha mfano kutoka kwa YaLM 100B

Tuko tayari kuzindua moja ya mifano. Zinaelezwa
hapa .

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

Kuwa na subira, inabakia kusubiri dakika nyingine 10-15 hadi mfano wa GPT utengenezwe na uzani kutoka kwa vituo vya ukaguzi hupakiwa.
Mtandao wa Neural YaLM 100B katika mazoezi.

Muundo utakapokamilika, MegatronML itakuomba uweke muktadha ili kutoa maandishi. Kuwa mwangalifu unapoandika. Chini ya hali fulani, hitilafu hutokea, programu inaanguka na unahitaji kuanza mkusanyiko tena. Kwa hivyo, ni bora kutumia mifano ambayo inachukua maandishi kutoka kwa faili.

9. Matokeo ya kazi

Mtandao wa Neural YaLM 100B katika mazoezi.
Mtandao wa Neural YaLM 100B katika mazoezi.Inaonekana kuvutia. Bila shaka, hii ni mifano mizuri tu. Niliendesha mtihani kwenye sampuli tofauti. Kama inavyotarajiwa, kadiri muktadha ulivyo bora, ndivyo maandishi yenye maana zaidi yatakavyotolewa. Seti kamili ya vizazi vya majaribio inaweza kutazamwa kwenye viungo:

Kwa bei, ilinigharimu takriban rubles elfu 9 kwa kukodisha seva za uwezo tofauti kutoka kwa mafunzo na kutoka kwa maandalizi hadi kizazi. Tamaa fulani ilikuwa kwamba huwezi kutoa kila kitu mara moja. Inachukua muda mrefu sana kuanza na maandishi hayatoi haraka kama tungependa, kutokana na gharama ya seva kwa saa.
Mtandao wa Neural YaLM 100B katika mazoezi. 

Jinsi ya kuendesha YaLM bila 200Gb GPU RAM?

Unahitaji kuongeza upakiaji wa kasi ya sifuri kwenye usanidi. Kwa wale wanaojua tunachozungumza, itakuwa rahisi sana kuifanya. Kwa wengine, hii sio kazi ndogo hata kidogo. Ni muhimu kujua kwamba upakiaji unaweza kuwa katika RAM ya CPU au NVMe. Unaweza kusahau kuhusu NVMe kwa sasa, kwa sababu. kiasi kikubwa sana cha data kinashughulikiwa na diski haiwezi kukabiliana nayo. CPU ya upakiaji sifuri ni halisi zaidi. Kweli, kwa hili unahitaji kuwa na 200+ Gb CPU RAM katika hisa, ambayo pia sio nafuu. Na maandishi moja yatatolewa kwa muda wa dakika 20-40, kwani bado haijawezekana kuifanya sambamba kwenye kadi mbili za video. Kama unaweza kuona kwenye skrini hapa chini, kadi moja tu ya video ilihusika katika kizazi, na kisha kwa robo tu ya kumbukumbu. Inabakia kuonekana kwa nini GB 24 zote hazitumiki,
Mtandao wa Neural YaLM 100B katika mazoezi.Naam, kwa kumalizia, nitasema kwamba inawezekana kukimbia hata kwenye RTX 3070 TI moja. Lakini hakuna maana maalum katika hili, kwa sababu. NVMe haitakuruhusu kusindika haraka 150 GB ya data katika ubadilishaji, ambayo iko kwenye kiambatisho cha 96 GB ya RAM.
Mtandao wa Neural YaLM 100B katika mazoezi.

Kwa muhtasari

Kwa kweli, bado nitajaribu kupata njia bora za uzinduzi. Lakini hadi sasa nimefikia hitimisho kwamba YaLM 100b ni ghali sana / polepole sana kwa kazi zangu. Kwa pesa sawa, watu wataandika zaidi na bora zaidi. Lakini nadhani ni ya muda, tutaona. Ikiwa unahitaji usaidizi wa kuzindua, kusanidi yalm, au unataka kuona matokeo kwenye mifano yako ya muktadha, andika kwa barua au telegramu.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply