YaLM 100B neyron tarmog’i amalda.

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

Iyun oyining oxirida Yandex
YaLM 100B deb nomlangan 100 milliard parametrli neyron tarmog’ini ommaga taqdim etdi . Bu ommaviy domendagi eng katta GPT-ga o’xshash neyron tarmoq. Unda ular qanday o’rgatganlari, eng yaxshi misollarni ko’rsatganlari va neyron nimaga qodirligi haqida hikoya qilinadi. Ammo bu amalda juda yaxshi va uyda qo’llanilishi mumkinmi? Maqola bu haqda jim, bundan tashqari, uni ishga tushirish va tekshirish unchalik oson emas, chunki taxminan 200 Gb GPU operativ xotirasi talab qilinadi. Habré haqidagi
bu sharh vaziyatni eng aniq ochib beradi
.

Aytilishicha, Yandex-da bunday aqlli odamlarning barchasi bor va ular oddiy qanday qilib ko’rsatishni ham e’lon qilmaganlar. Katta model uchun api yo’q, oddiy odamlar uchun tayyor tozalangan o’rta yoki kichik model yo’q (Google Colab-da). Modelni qanday o’rnatish, matnni qanday yaratish haqida hech qanday misol keltirilmagan. Maqolada nerds uchun bir nechta nuanslar ko’rsatilgan va tamom. Bank buni “C” harfi bilan qanday qilganini batafsil ko’rib chiqish va xuddi shunday qilish kifoya. Menda taassurot paydo bo’ldiki, bu model faqat muvaffaqiyatsiz tajribalardan biri bo’lib, uni axlatga tashlash juda achinarli edi, shuning uchun u Yandex qanday ajoyib modellarni yaratishini ko’rsatish uchun Open Source-ga joylashtirilgan va bundan tashqari, u ochiq manba!

Internetda yalmni qanday ishlatish yoki hatto onlayn tarzda sinab ko’rish haqida juda ko’p savollar mavjud, ammo bunga javob yo’q. Bu savollarni bergan foydalanuvchilar orasida men ham bor edim. Va buni aniqlashga kirishing. Men haqiqatan ham moliyaviy robotlar uchun matn yaratish usuliga muhtoj edim. Shunday qilib, ular nafaqat qiymatlarni bashorat qilishlari, balki moliyaviy hisobotlarga asoslanib, matnda sharhlashlari mumkin. Aslini olganda, bu moliyaviy tahlilchilar nima qilsa, xuddi sun’iy intellektdan foydalangan holda bo’ladi. Yalmni ishga tushirishning ikki yo’li mavjud.
Bulutda serverni ijaraga oling200+ Gb GPU RAM bilan yoki kodni o’zgartiring va chuqur tezlikda nol bo’shatish bilan ishga tushiring (GPU ketma-ket neyron tarmoqning bir qismini qayta ishlaganda, qolganlari esa CPU RAM yoki NVMe-da saqlanadi). Birinchisi juda qimmat, soatiga taxminan 2500 rubl yoki oyiga 1,7 mln. Ikkinchi noma’lum, chunki ombordagi kod taqdim etilmagan, faqat
ombor masalasida maslahatlar beradi, buni qilish qiyin emas. Oddiydan boshlaylik.

YaLM 100B ishga tushirish bo’yicha ko’rsatmalar

1. Biz 200 GB GPU operativ xotirani ijaraga olamiz, masalan, bu yerda .

YaLM 100B neyron tarmog'i amalda.

Sizga kamida 200 GB umumiy video xotira kerak. 8×40 = 320 GB. Faqat bu mos keladi. 200 dan kam bo’lishi mumkin emas, ko’proq bo’lishi mumkin. Ok CPU operativ xotirasini ko’rsatadi, biz unga qaramaymiz. U har kim bo’lishi mumkin.

Biz taxminan 300 Gb diskni ko’rsatamiz, shuning uchun zaxira va afzal tez disk bilan, chunki. unga va undan o’nlab gigabaytlik ma’lumotlar uzatiladi.

YaLM 100B neyron tarmog'i amalda.Manbalarda yaratishda Ubuntu ML (Machine Learning) ni tanlang. Bu majburiydir, shuning uchun video kartalar konfiguratsiya qilinadi va qo’shimcha ravishda hech narsa o’rnatilishi shart emas.

Serverni yaratishda kvotalar bilan nuanslar mavjud, siz uskunaning mavjud emasligini his qilishingiz mumkin, lekin aslida siz sozlamalardagi kvotani oshirishingiz kerak. Server faollashtirilgandan so’ng (bu 5-10 daqiqa vaqt olishi mumkin), serverga ssh orqali yoki to’g’ridan-to’g’ri server sahifasidagi veb-konsolda ulaning va buyruqni bajaring.

nvidia-smi

Natijada video kartalar, haydovchi versiyasi va cuda bilan stol bo’lishi kerak. Taxminan shunday.
YaLM 100B neyron tarmog'i amalda.Drayv versiyasi sarlavhasida va qaerda. Chap tomonda qurilma raqamlari, markazda qurilma xotirasi hajmi. Agar sizda bu ma’lumot bo’lmasa, siz serverni noto’g’ri manbadan to’plagansiz. Yuqorida aytib o’tilganidek, Ubuntu ML (Machine Learnong) talab qilinadi.

2. YaLM bilan omborni klonlash

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

Docker konfiguratsiyasini keyin tahrirlash shart emasligi uchun uy papkangizga klonlang. Agar boshqa joyga klonlangan bo’lsa,
bu erga o’ting va klonlangan joyga yo’lni qo’shing.

3. Tekshirish punktlarini yuklab oling (modelning asosiy ma’lumotlari)

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

Bu taxminan bir soat davom etadi. Vaqtni behuda sarflamaslik uchun biz yangi ssh ulanishini yaratamiz va parallel ravishda docker konteynerini qurishni boshlaymiz.

4. Nvidiadocker 2 ni o’rnating

Oddiy docker mos emas,
nvidia-docker2 kerak .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM uchun konteyner qurish

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

Bundan tashqari, taxminan bir soat.

Life-hack. Siz nazorat punktlarini yuklab olishingiz, dokerni o’rnatishingiz va bitta video karta bilan arzon serverda konteyner qurishingiz mumkin. Vaqt o’tishi bilan xuddi shunday bo’ladi, shuning uchun siz ozgina tejashingiz mumkin. Arzon serverda yig’ilgandan so’ng, biz uni o’chirib tashlaymiz va arzon serverdan disk yordamida jangovar server yaratamiz. Shunda siz yig’ilishni kutish va nazorat punktlarini haydash uchun vaqtni ortiqcha to’lamaysiz.

6. Tarkibni tayyorlang

6.1 Tekshirish punktlari

Tekshirish punktlarini yuklab olish tugagach, ularni konfiguratsiyaga o’tkazishingiz kerak. Ikkita yo’l bor, to’g’ri parametrlar yoki o’tkazish punktlari. Hamma joyda nazorat punktlari loyihaning asosiy katalogida bo’lishi kutilmoqda, mos ravishda yuklab olingan narsalar yuqoridagi yuklab olish papkasidan o’tkazilishi kerak. Yalm papkasida bo’lish

mv ./download/yalm100b_checkpoint ./

Yoki misol fayllaridagi fayllarga yo’llarni o’zgartiring
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Video kartalar

Video kartalar to’g’ri o’rnatilganligini tekshiramiz. Agar sizda sakkizta video kartangiz bo’lsa, unda hech narsani o’zgartirish kerak emas. Agar raqam boshqacha bo’lsa, unda biz ushbu satrlarni o’zgartiramiz
YaLM 100B neyron tarmog'i amalda.Ikkinchi qatorda ishlatiladigan qurilmalarning raqamlari (siz ularni allaqachon ishga tushirgan nvidia-smi-da ko’rishingiz mumkin). To’rtinchidan, ularning soni.

7. Docker konteynerini ishga tushiring

Yalm papkasida bo’lish, buyruqni bajaring

sudo bash ./docker/run.sh

Agar hamma narsa yaxshi bo’lsa, siz uy katalogingizdagi yalm jildiga o’tishingiz kerak bo’lgan konteynerga o’tasiz.

cd ~/yalm

8. Misolni YaLM 100B dan ishga tushiring

Biz misollardan birini ishga tushirishga tayyormiz. Ular
bu erda tasvirlangan .

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

Sabr qiling, GPT modeli yaratilguncha va nazorat punktlaridan og’irliklar yuklanmaguncha yana 10-15 daqiqa kutish kerak.
YaLM 100B neyron tarmog'i amalda.

Qurilish tugagach, MegatronML matn yaratish uchun kontekstni kiritishingizni taklif qiladi. Yozayotganda ehtiyot bo’ling. Muayyan sharoitlarda xatolik yuz beradi, dastur ishdan chiqadi va siz yig’ishni qayta boshlashingiz kerak. Shuning uchun fayldan matn oladigan misollardan foydalanish yaxshidir.

9. Ish natijalari

YaLM 100B neyron tarmog'i amalda.
YaLM 100B neyron tarmog'i amalda.Qiziqarli ko’rinadi. Albatta, bu faqat yaxshi misollar. Sinovni turli xil namunalarda o’tkazdim. Kutilganidek, kontekst qanchalik yaxshi bo’lsa, shunchalik mazmunli matn yaratiladi. Eksperimental avlodlarning to’liq to’plamini quyidagi havolalarda ko’rish mumkin:

Narxiga qarab, o’qitishdan tortib to ishlab chiqarishgacha bo’lgan turli xil sig’imdagi serverlarni ijaraga olish menga taxminan 9 ming rublni tashkil etdi. Ajablanarlisi shundaki, siz darhol hamma narsani yarata olmaysiz. Boshlash uchun juda uzoq vaqt ketadi va serverning soatiga narxini hisobga olgan holda matn biz xohlagancha tez yaratilmaydi.
YaLM 100B neyron tarmog'i amalda. 

YaLMni 200 Gb GPU operativ xotirasiz qanday ishlatish mumkin?

Konfiguratsiyaga chuqur tezlikda nol tushirishni qo’shishingiz kerak. Nima haqida gapirayotganimizni biladiganlar uchun buni qilish juda oson bo’ladi. Boshqalar uchun bu umuman ahamiyatsiz ish emas. Bo’shatish protsessor RAM yoki NVMe-da bo’lishi mumkinligini bilish muhimdir. Siz hozirda NVMe haqida unutishingiz mumkin, chunki. juda katta hajmdagi ma’lumotlar qayta ishlanmoqda va disk u bilan bardosh bera olmaydi. Nol bo’shatish protsessorlari haqiqiyroq. To’g’ri, buning uchun sizda stokda 200+ Gb CPU RAM bo’lishi kerak, bu ham arzon emas. Va bitta matn taxminan 20-40 daqiqa davomida yaratiladi, chunki uni ikkita video kartada parallellashtirish hali imkoni bo’lmagan. Quyidagi skrinshotda ko’rib turganingizdek, avlodda faqat bitta video karta ishtirok etgan, keyin esa faqat xotiraning to’rtdan bir qismi uchun. Nima uchun barcha 24 GB ishlatilmayotganini ko’rish kerak,
YaLM 100B neyron tarmog'i amalda.Xulosa qilib aytamanki, hatto bitta RTX 3070 TIda ham ishlash mumkin. Ammo buning alohida ma’nosi yo’q, chunki. NVMe sizga almashtirishda 96 GB operativ xotira ilovasida joylashgan 150 Gb ma’lumotlarni tezda qayta ishlashga ruxsat bermaydi.
YaLM 100B neyron tarmog'i amalda.

Xulosa qilish

Albatta, men hali ham optimal ishga tushirish yo’llarini topishga harakat qilaman. Ammo hozirgacha men YaLM 100b mening vazifalarim uchun juda qimmat / juda sekin degan xulosaga keldim. Xuddi shu pul uchun odamlar ko’proq va yaxshiroq yozadilar. Lekin menimcha, bu vaqtinchalik, ko’ramiz. Agar sizga yalmni ishga tushirish, sozlash bo’yicha yordam kerak bo’lsa yoki natijalarni kontekst misollarida ko’rishni istasangiz, pochta yoki telegrammaga yozing.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply