Нейрондук тармак YaLM 100B практикада.

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

Яндекс июнь айынын аягында
YaLM 100B деп аталган 100 миллиард параметрлери бар нейрон тармагын элге чыгарды . Бул коомдук домендеги эң чоң GPT сымал нейрон тармагы. Анда алардын кантип окутканы, мыкты үлгүлөрдү көрсөткөнү жана нейрондун эмнеге жөндөмдүү экени айтылат. Бирок бул иш жүзүндө ушунчалык жакшы жана үйдө колдонсо болобу? Макала бул жөнүндө унчукпай турат, анын үстүнө, аны иштетүү жана текшерүү оңой эмес, анткени болжол менен 200 Гб GPU RAM талап кылынат. Хабреге
бул комментарий кырдаалды эң туура ачып берет
.

Болжолдуу түрдө, Яндексте ушундай акылдуу адамдардын баары бар, алар кадимки Кантип да жарыялашкан эмес. Чоң моделдин api жок, карапайым адамдар үчүн (Google Colab-та) даяр ажыратылган орто же кичине модель жок. Модельди орнотуу, текстти кантип түзүү боюнча эч кандай мисал келтирилген эмес. Бул жөн гана макала нерддер үчүн бир нече нюанстарды көрсөтүп турат жана ушуну менен бүттү. Банк муну “С” тамгасы менен кантип жасаганын жакшылап карап чыгып, ошону кылсаңыз жетиштүү. Мен бул модель таштандыга ыргытуу өкүнүчтүү болгон ишке ашпай калган эксперименттердин бири деген ойдо калдым, андыктан Яндекс кандай сонун моделдерди жаратаарын көрсөтүү үчүн Open Source сайтында жайгаштырылган жана анын үстүнө бул ачык булак!

Интернетте yalmды кантип иштетүү керек же ал тургай онлайн аракет кылуу боюнча көптөгөн суроолор бар, бирок буга эч кандай жооп жок. Ушул суроолорду берген колдонуучулардын арасында мен да болдум. Жана аны аныктоого киришти. Мага финансылык роботтор үчүн тексттерди түзүүнүн жолу керек болчу. Алар бир гана баалуулуктарды алдын ала эмес, ошондой эле каржылык отчеттордун негизинде текст боюнча комментарий бере алат. Чындыгында, бул каржы аналитиктери жасаган нерседей болот, жасалма интеллектти колдонуу менен гана. Ялмды иштетүүнүн эки жолу бар.
Булуттан серверди ижарага алыңыз200+ Гб GPU RAM менен же кодду өзгөртүп, терең ылдамдыкта нөл түшүрүү менен иштетиңиз (GPU ырааттуу түрдө нейрон тармагынын бир бөлүгүн иштеткенде, ал эми калганы CPU RAM же NVMeде сакталганда). Биринчиси абдан кымбат, саатына 2500 рубль же айына 1,7 млн. Экинчи белгисиз, анткени репозиторийдеги код берилген эмес,
репозиторийдин маселесинде кыйытмалар гана бар , муну жасоо кыйын эмес. Жөнөкөй баштайлы.

YaLM 100B ишке киргизүү нускамалары

1. Биз бул жерде, мисалы , 200 ГБ GPU RAM ижарага .

Нейрондук тармак YaLM 100B практикада.

Сизге кеминде 200 ГБ жалпы видео эстутум керек. 8×40 = 320 ГБ. Ушул гана туура келет. 200дөн азы мүмкүн эмес, көбүрөөк болушу мүмкүн. Жебе CPU RAMды көрсөтөт, биз аны карабайбыз. Ал каалаган адам болушу мүмкүн.

Биз болжол менен 300 ГБ дискти көрсөтөбүз, андыктан запастык жана тез диск менен, анткени. ага жана андан ондогон гигабайт маалыматтар берилет.

Нейрондук тармак YaLM 100B практикада.Булактарды түзүүдө Ubuntu ML (Machine Learning) тандаңыз. Бул видео карталарын конфигурациялоо үчүн милдеттүү жана кошумча эч нерсе орнотуунун кереги жок.

Серверди түзүүдө квоталар менен нюанстар бар, сизде жабдуулар жок деген сезим пайда болушу мүмкүн, бирок чындыгында жөндөөлөрдөгү квоталарды көбөйтүү керек. Сервер активдештирилгенден кийин (бул 5-10 мүнөткө созулушу мүмкүн), серверге ssh аркылуу же түз сервер бетиндеги веб консолуна туташып, буйрукту аткарыңыз.

nvidia-smi

Натыйжада видео карталары, драйвер версиясы жана cuda менен үстөл болушу керек. Болжол менен ушундай.
Нейрондук тармак YaLM 100B практикада.Драйвер версиясынын аталышында жана кайда. Сол жагында аппараттын номерлери, ортосунда аппараттын эстутумунун көлөмү. Эгер сизде бул маалымат жок болсо, анда сиз серверди туура эмес булактан чогултуп алгансыз. Ubuntu ML (Machine Learnong) жогоруда айтылгандай талап кылынат.

2. YaLM менен репозиторийди клондоңуз

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

Кийинчерээк докер конфигурациясын түзөтүүнүн кереги жок болуп, үй папкаңызды клондоңуз. Эгер башка жерде клондолсо, анда
бул жерге барып , клондолгон жерге жолду кошуңуз.

3. Өткөрмө пункттарын жүктөө (модельди окутуунун негизги маалыматы)

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

Бул бир саатка жакын убакытты алат. Убакытты текке кетирбөө үчүн, биз жаңы ssh байланышын түзүп, параллелдүү докер контейнерин кура баштайбыз.

4. nvidiaдокер 2 орнотуу

Кадимки докер ылайыктуу эмес,
nvidia-docker2 керек .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM үчүн контейнер куруу

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

Бул дагы бир саатка жакын.

Лайфхак. Бир видеокарта менен арзан серверде текшерүү пункттарын жүктөп алып, докерди орнотуп, контейнер кура аласыз. Убакыттын өтүшү менен ушундай болот, ошондуктан бир аз үнөмдөөгө болот. Арзан серверге чогулткандан кийин, биз аны жок кылып, арзан сервердин дискин колдонуп, согуштук серверди түзөбүз. Ошондо сиз чогулушту күтүү жана өткөрмө пункттарын сордурууга убакытты ашыкча төлөбөйсүз.

6. Мазмун даярдаңыз

6.1 Өткөрүү пункттары

Өткөрүү пункттарын жүктөө аяктагандан кийин, аларды конфигурацияга киргизишиңиз керек. Эки жол бар, туура параметрлер же өткөрүү пункттары. Бардык жерде көзөмөл-өткөрүү пункттары долбоордун негизги каталогунда болушу күтүлөт, тиешелүүлүгүнө жараша жүктөлүп алынган нерсе жогорудагы жүктөө папкасынан өткөрүлүп берилиши керек. Yalm папкасында болуу аткаруу

mv ./download/yalm100b_checkpoint ./

Же мисал файлдарындагы файлдардын жолдорун өзгөртүңүз
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Видеокарталар

Биз видеокарталардын туура орнотулганын текшеребиз. Эгер сизде сегиз видеокарта болсо, анда эч нерсени өзгөртүүнүн кереги жок. Эгерде сан башка болсо, анда биз бул саптарды өзгөртөбүз
Нейрондук тармак YaLM 100B практикада.Экинчи сапта колдонулган түзмөктөрдүн номерлери (сиз аларды буга чейин ишке киргизген nvidia-smiде карасаңыз болот). Төртүнчүдөн, алардын саны.

7. Докер контейнерин иштетиңиз

Yalm папкасында болуу, буйрукту аткарыңыз

sudo bash ./docker/run.sh

Эгер баары жакшы болсо, анда сиз үй каталогуңуздагы yalm папкасына өтүшүңүз керек болгон контейнерге барасыз.

cd ~/yalm

8. YaLM 100B үлгүсүн иштетиңиз

Биз мисалдардын бирин ишке киргизүүгө даярбыз. Алар бул
жерде сүрөттөлгөн .

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

Сабырдуу болуңуз, GPT модели түзүлгөнгө чейин жана өткөрүү пункттарынан салмактар ​​жүктөлгөнгө чейин дагы 10-15 мүнөт күтө туруңуз.
Нейрондук тармак YaLM 100B практикада.

Куруу аяктаганда, MegatronML сизге текстти түзүү үчүн контекстти киргизүүнү сунуштайт. Терип жатканда этият болуңуз. Белгилүү бир шарттарда, ката пайда болуп, программа бузулуп, кайра чогулушту баштоо керек. Ошондуктан, файлдан текст алган мисалдарды колдонуу жакшы.

9. Иштин жыйынтыгы

Нейрондук тармак YaLM 100B практикада.
Нейрондук тармак YaLM 100B практикада.Көрүнөт кызыктуу. Албетте, бул жакшы мисалдар гана. Мен ар кандай үлгүлөр боюнча тестти өткөрдүм. Күтүлгөндөй, контекст канчалык жакшы болсо, ошончолук мазмундуу текст түзүлөт. Эксперименталдык муундардын толук топтомун төмөнкү шилтемелерден көрүүгө болот:

Баасы үчүн, ар кандай кубаттуулуктагы серверлерди окутуудан жана даярдоодон муунга чейин ижарага алуу мага болжол менен 9 миң рублга туура келди. Өзгөчө көңүл калтырган нерсе, сиз дароо баарын түзө албайсыз. Баштоо өтө көп убакытты талап кылат жана сервердин саатына баасын эске алганда, текст биз каалагандай тез түзүлбөйт.
Нейрондук тармак YaLM 100B практикада. 

200Gb GPU RAM жок YaLMди кантип иштетүү керек?

Конфигурацияга терең ылдамдыктагы нөл түшүрүүнү кошуу керек. Эмне жөнүндө сөз болуп жатканын билгендер үчүн муну жасоо абдан оңой болот. Башкалар үчүн бул анча деле маанилүү иш эмес. Жүктөө CPU RAM же NVMeде болушу мүмкүн экенин билүү маанилүү. Сиз учурда NVMe жөнүндө унутуп калышы мүмкүн, анткени. абдан чоң көлөмдөгү маалымат иштетилип жатат жана диск аны көтөрө албайт. Нөл түшүрүү CPU реалдуураак. Ырас, бул үчүн кампада 200+ Гб CPU RAM болушу керек, бул да арзан эмес. Ал эми бир текст болжол менен 20-40 мүнөттө түзүлөт, анткени аны эки видеокартада параллелдөө мүмкүн эмес. Төмөндөгү скриншоттон көрүнүп тургандай, муунга бир гана видеокарта тартылган, андан кийин гана эс тутумдун төрттөн бир бөлүгү. Эмне үчүн бардык 24 ГБ колдонулбай жатканын көрүш керек,
Нейрондук тармак YaLM 100B практикада.Жыйынтыктап айтканда, мен бир RTX 3070 TIде иштөөгө болот деп айтам. Бирок мунун өзгөчө мааниси жок, анткени. NVMe сизге 96 ГБ оперативдүү эс тутумдун тиркемесинде турган свопта 150 ГБ маалыматты тез иштетүүгө жол бербейт.
Нейрондук тармак YaLM 100B практикада.

Жыйынтыктоо

Албетте, мен дагы эле оптималдуу ишке киргизүү жолдорун табууга аракет кылам. Бирок азырынча мен YaLM 100b менин милдеттерим үчүн өтө кымбат / өтө жай деген жыйынтыкка келдим. Ошол эле акча үчүн, адамдар көп жана алда канча жакшы жазат. Бирок бул убактылуу деп ойлойм, көрө жатарбыз. Эгерде сизге yalmды ишке киргизүү, орнотуу боюнча жардам керек болсо же контексттик мисалдарыңыздан натыйжаларды көргүңүз келсе, почтага же телеграммага жазыңыз.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply