Jaringan syaraf YaLM 100B ing praktik.

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

Ing pungkasan wulan Juni, Yandex
ngrilis jaringan saraf kanthi 100 milyar paramèter sing diarani YaLM 100B kanggo umum . Iki minangka jaringan saraf kaya GPT paling gedhe ing domain umum. Nyritakake babagan carane mulang, nuduhake conto sing paling apik lan apa sing bisa ditindakake dening neuron. Nanging apa iku apik banget ing laku lan ditrapake ing omah? Artikel iki ora bisu, apamaneh, ora gampang kanggo mbukak lan mriksa, amarga kira-kira 200 Gb GPU RAM dibutuhake. Komentar babagan Habré
iki nuduhake kahanan sing paling akurat
.

Diduga, ing Yandex, kabeh wong sing pinter, lan dheweke ora ngirim cara sing normal. Ora ana api kanggo model gedhe, ora ana model medium utawa model cilik sing siap digawe kanggo wong biasa (ing Google Colab). Ora ana conto babagan carane nyiyapake model, carane nggawe teks. Mung artikel kasebut nuduhake sawetara nuansa kanggo kutu buku lan mung. Cukup kanggo ndeleng kanthi luwih rinci babagan carane bank nindakake kanthi huruf “C” lan nindakake perkara sing padha. Aku entuk kesan sing model iki mung salah siji saka nyobi gagal sing ana tega kanggo uncalan ing Trash, supaya iki dikirim ing Open Source kanggo nuduhake apa model gedhe Yandex nggawe, lan liyane, iku open source!

Ana akeh pitakonan ing Internet carane mbukak yalm utawa malah nyoba online, nanging ora ana jawaban kanggo iki. Aku ana ing antarane pangguna sing takon pitakonan iki. Lan nyetel babagan ngerteni. Awit aku pancene butuh cara kanggo ngasilake teks kanggo robot finansial. Supaya padha bisa prédhiksi ora mung nilai, nanging uga komentar ing teks, adhedhasar laporan financial. Intine, bakal padha karo apa sing ditindakake para analis finansial, mung kanthi nggunakake intelijen buatan. Ana rong cara kanggo mbukak yalm.
Nyewa server ing mégakaro 200 + Gb GPU RAM utawa ngowahi kode lan mbukak karo deepspeed nul offload (nalika GPU sequentially proses bagean saka jaringan syaraf, lan liyane disimpen ing CPU RAM utawa NVMe). Sing pisanan larang banget, kira-kira 2500 rubel saben jam utawa 1,7 yuta saben wulan. Kapindho dingerteni, amarga kode ing gudang ora kasedhiya, mung
diwenehi ing Jeksa Agung bisa ngetokake saka gudang, kang ora angel kanggo nindakake. Ayo dadi miwiti prasaja.

YaLM 100B Pandhuan Bukak

1. We nyewa 200 GB GPU RAM, contone, kene .

Jaringan syaraf YaLM 100B ing praktik.

Sampeyan mbutuhake paling sethithik 200 GB saka total memori video. 8×40 = 320 GB. Mung siji iki cocok. Kurang saka 200 ora mungkin, luwih akeh bisa. Panah nuduhake RAM CPU, kita ora katon ing. Dheweke bisa dadi sapa wae.

We nunjukaké disk saka bab 300 GB, supaya karo nyisakke lan luwih disk cepet, amarga. puluhan gigabyte data bakal ditransfer menyang lan saka iku.

Jaringan syaraf YaLM 100B ing praktik.Nalika nggawe sumber, pilih Ubuntu ML (Machine Learning). Iki wajib supaya kertu video dikonfigurasi lan ora ana sing kudu diinstal tambahan.

Nalika nggawe server, ana nuansa karo kuota, sampeyan bisa njaluk koyo sing peralatan ora kasedhiya, nanging nyatane sampeyan mung kudu nambah kuota ing setelan. Sawise server diaktifake (bisa njupuk 5-10 menit), nyambung menyang server liwat ssh utawa langsung ing console web ing kaca server lan nglakokaké printah.

nvidia-smi

Asil kudu dadi tabel karo kertu video, versi driver lan cuda. Kira-kira kaya iki.
Jaringan syaraf YaLM 100B ing praktik.Ing header versi driver lan ngendi. Ing sisih kiwa ana nomer piranti, ing tengah ana ukuran memori piranti. Yen sampeyan ora duwe informasi iki, sampeyan wis ngumpulake server saka sumber salah. Ubuntu ML (Machine Learnong) dibutuhake, kaya sing kasebut ing ndhuwur.

2. Kloning repositori karo YaLM

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

Klone menyang folder ngarep supaya sampeyan ora kudu ngowahi konfigurasi docker sakwise. Yen dikloning ing papan liya, banjur
pindhah menyang kene lan tambahake path menyang papan sing dikloning.

3. Unduh checkpoints (informasi pelatihan model dasar)

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

Iki bakal njupuk watara jam. Supaya ora mbuwang wektu kanthi sia-sia, kita nggawe sambungan ssh anyar lan kanthi podo karo kita miwiti mbangun wadhah docker.

4. Instal nvidiadocker 2

Docker normal ora cocok,
nvidia-docker2 dibutuhake .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. Mbangun wadhah kanggo YaLM

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

Iku uga watara jam.

urip hack. Sampeyan bisa ndownload checkpoints, nginstal docker lan mbangun wadhah ing server murah kanthi kertu video siji. Iku bakal padha ing wektu, supaya sampeyan bisa nyimpen sethitik. Sawise perakitan ing server mirah, kita mbusak, lan nggawe server pertempuran nggunakake disk saka server mirah. Banjur sampeyan ora bakal overpay wektu kanggo nunggu perakitan lan pumping checkpoints.

6. Siapke isi

6.1 Checkpoints

Sawise download checkpoints rampung, sampeyan kudu mlebu menyang konfigurasi. Ana rong cara, paramèter sing bener utawa transfer checkpoints. Nang endi wae, checkpoints bakal ana ing direktori utama proyek kasebut, masing-masing, sing wis diunduh kudu ditransfer saka folder download ing ndhuwur. Dadi ing folder yalm execute

mv ./download/yalm100b_checkpoint ./

Utawa ngganti path menyang file ing conto file
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 kertu video

Kita priksa manawa kertu video wis disetel kanthi bener. Yen sampeyan duwe wolung kertu video, mula ora ana sing kudu diganti. Yen nomer kasebut beda-beda, banjur ganti baris kasebut
Jaringan syaraf YaLM 100B ing praktik.Ing baris kapindho, nomer piranti sing digunakake (sampeyan bisa ndeleng ing nvidia-smi, sing wis diluncurake). Ing papat, nomer sing.

7. Mbukak wadhah docker

Kang ing folder yalm, nglakokaké printah

sudo bash ./docker/run.sh

Yen kabeh OK, sampeyan bakal digawa menyang wadhah sing sampeyan kudu pindhah menyang folder yalm ing direktori ngarep.

cd ~/yalm

8. Jalanake conto saka YaLM 100B

Kita siyap miwiti salah sawijining conto. Padha diterangake ing
kene .

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

Sabar, tetep ngenteni 10-15 menit liyane nganti model GPT digawe lan bobot saka checkpoints dimuat.
Jaringan syaraf YaLM 100B ing praktik.

Nalika mbangun rampung, MegatronML bakal njaluk sampeyan ngetik konteks kanggo ngasilake teks. Ati-ati nalika sampeyan ngetik. Ing kahanan tartamtu, ana kesalahan, program tubrukan lan sampeyan kudu miwiti perakitan maneh. Mulane, luwih becik nggunakake conto sing njupuk teks saka file.

9. Asil karya

Jaringan syaraf YaLM 100B ing praktik.
Jaringan syaraf YaLM 100B ing praktik.Katon menarik. Mesthi, iki mung conto sing apik. Aku mlayu test ing conto beda. Kaya sing dikarepake, konteks sing luwih apik, teks sing luwih migunani bakal diasilake. Generasi eksperimental lengkap bisa dideleng ing tautan:

Kanggo rega, regane kira-kira 9 ewu rubel kanggo nyewa server kanthi kapasitas sing beda-beda saka latihan lan saka persiapan nganti generasi. Kuciwo tartamtu yaiku sampeyan ora bisa langsung ngasilake kabeh. Butuh wektu sing dawa banget kanggo miwiti lan teks ora ngasilake kanthi cepet kaya sing dikarepake, amarga biaya server saben jam.
Jaringan syaraf YaLM 100B ing praktik. 

Kepiye cara mbukak YaLM tanpa RAM GPU 200Gb?

Sampeyan kudu nambah deepspeed nul offload kanggo config. Kanggo sing ngerti apa kita ngomong bab, iku bakal gampang banget kanggo nindakaken. Kanggo wong liya, iki dudu tugas sing sepele. Iku penting kanggo ngerti sing offload bisa uga ing CPU RAM utawa NVMe. Sampeyan bisa lali babagan NVMe saiki, amarga. jumlah data sing akeh banget diproses lan disk ora bisa ngatasi. Zero offload CPU luwih nyata. Bener, sampeyan kudu duwe 200+ Gb CPU RAM ing saham, sing uga ora murah. Lan siji teks bakal diasilake kira-kira 20-40 menit, amarga durung bisa parallelize ing rong kertu video. Nalika sampeyan bisa ndeleng ing gambar ing ngisor iki, mung siji kertu video melu ing generasi, lan banjur mung kanggo seprapat saka memori. Iku tetep kanggo katon apa kabeh 24 GB ora digunakake,
Jaringan syaraf YaLM 100B ing praktik.Inggih, ing kesimpulan, aku bakal ngomong sing bisa kanggo mbukak malah siji RTX 3070 TI. Nanging ora ana pangertèn tartamtu ing iki, amarga. NVMe ora ngidini sampeyan ngolah 150 GB data kanthi cepet ing swap, sing ana ing tambahan 96 GB RAM.
Jaringan syaraf YaLM 100B ing praktik.

Summing up

Mesthi wae, aku isih bakal nyoba golek jalur peluncuran sing optimal. Nanging nganti saiki aku wis nggawe kesimpulan yen YaLM 100b larang banget / alon banget kanggo tugasku. Kanggo dhuwit sing padha, wong bakal nulis luwih akeh lan luwih apik. Nanging aku mikir iki sementara, kita bakal weruh. Yen sampeyan butuh bantuan kanggo miwiti, nyetel yalm, utawa pengin ndeleng asil ing conto konteks, nulis menyang mail utawa telegram.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply