Шабакаи нейронии YaLM 100B дар амал.

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

Дар охири моҳи июн, Яндекс
як шабакаи нейронии дорои 100 миллиард параметр бо номи YaLM 100B -ро ба мардум баровард . Ин бузургтарин шабакаи нейронӣ ба GPT дар домени ҷамъиятӣ мебошад. Он дар бораи он нақл мекунад, ки онҳо чӣ гуна таълим медоданд, намунаҳои беҳтаринро нишон доданд ва нейрон ба чӣ қодир аст. Аммо оё он дар амал ин қадар хуб аст ва дар хона истифода мешавад? Мақола дар ин бора хомӯш аст, илова бар ин, иҷро кардан ва тафтиш кардани он чандон осон нест, зеро тақрибан 200 Гб хотираи GPU лозим аст. Ин шарҳи Ҳабре
вазъро дақиқтар нишон медиҳад
.

Гумон меравад, ки дар Яндекс ҳама чунин одамони оқил ҳастанд ва онҳо ҳатто як тарзи муқаррариро нашр накардаанд. Ягон api барои модели калон вуҷуд надорад, барои одамони оддӣ модели миёна ё хурди тайёр нест (дар Google Colab). Дар бораи чӣ гуна ба танзим даровардани модел, чӣ гуна эҷод кардани матн ягон мисол оварда нашудааст. Ин танҳо он аст, ки мақола якчанд нозукиҳоро барои нердҳо нишон медиҳад ва тамом. Кифоя аст, ки бодиққат назар кунед, ки бонк чӣ гуна ин корро бо ҳарфи «С» анҷом додааст ва ҳамин тавр кунед. Ман таассурот пайдо кардам, ки ин модел танҳо яке аз таҷрибаҳои ноком аст, ки афсӯс ба партов партофтан буд, бинобар ин он дар Сарчашмаи Кушода ҷойгир карда шудааст, то нишон диҳад, ки Яндекс чӣ гуна моделҳои олиро эҷод мекунад ва илова бар ин, он манбаи кушода аст!

Дар Интернет саволҳои зиёде мавҷуданд, ки чӣ гуна yalm-ро иҷро кардан ё ҳатто онлайн кӯшиш кардан мумкин аст, аммо ба ин ҷавоб нест. Ман дар байни корбароне будам, ки ин саволҳоро медоданд. Ва ба фаҳмидани он шурӯъ кунед. Азбаски ба ман воқеан роҳи тавлиди матнҳо барои роботҳои молиявӣ лозим буд. Барои он ки онҳо тавонанд на танҳо арзишҳоро пешгӯӣ кунанд, балки дар асоси ҳисоботи молиявӣ онро дар матн шарҳ диҳанд. Аслан, он ҳамон чизест, ки таҳлилгарони молиявӣ танҳо бо истифодаи зеҳни сунъӣ мекунанд. Ду роҳи иҷро кардани yalm вуҷуд дорад.
Серверро дар абр иҷора гиредбо 200+ Гб GPU RAM ё кодро тағир диҳед ва бо боркунии амиқи сифр кор кунед (вақте ки GPU як қисми шабакаи нейронро пайдарпай коркард мекунад ва боқимонда дар CPU RAM ё NVMe нигоҳ дошта мешавад). Якумаш хеле гарон аст, тақрибан 2500 рубл дар як соат ё 1,7 миллион дар як моҳ. Дуюм номаълум, зеро Рамз дар анбор дода нашудааст, танҳо
дар масъалаи репозиторий ишора мекунад, ки иҷрои он душвор нест. Биёед оддӣ оғоз кунем.

Дастурҳои оғози YaLM 100B

1. Мо иҷора 200 GB GPU RAM, барои мисол, дар ин ҷо .

Шабакаи нейронии YaLM 100B дар амал.

Ба шумо ҳадди аққал 200 ГБ хотираи умумии видео лозим аст. 8х40 = 320 ГБ. Танҳо ин мувофиқ аст. Камтар аз 200 имконнопазир аст, бештар имконпазир аст. Тир RAM CPU-ро нишон медиҳад, мо ба он нигоҳ намекунем. Вай метавонад ҳар кас бошад.

Мо нишон диски тақрибан 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. nvidiadocker 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 ~/ялм

8. Намунаро аз YaLM 100B иҷро кунед

Мо омодаем, ки яке аз мисолҳоро оғоз кунем. Онҳо дар ин ҷо тавсиф
шудаанд .

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

Сабр кунед, то 10-15 дақиқаи дигар интизор шавед, то модели GPT сохта шавад ва вазнҳо аз нуқтаҳои назоратӣ бор карда шаванд.
Шабакаи нейронии YaLM 100B дар амал.

Вақте ки сохтмон ба итмом мерасад, MegatronML аз шумо хоҳиш мекунад, ки барои тавлиди матн контекст ворид кунед. Ҳангоми навиштан эҳтиёт бошед. Дар ҳолатҳои муайян, хатогӣ рух медиҳад, барнома вайрон мешавад ва шумо бояд васлро дубора оғоз кунед. Аз ин рӯ, беҳтар аст, ки мисолҳоеро истифода баред, ки матнро аз файл мегиранд.

9. Натичахои кор

Шабакаи нейронии YaLM 100B дар амал.
Шабакаи нейронии YaLM 100B дар амал. Ҷолиб ба назар мерасад. Албатта, ин танҳо мисолҳои хуб аст. Ман санҷишро дар намунаҳои гуногун иҷро кардам. Тавре ки интизор мерафт, контекст ҳар қадар беҳтар бошад, ҳамон қадар матни пурмазмунтар тавлид мешавад. Маҷмӯи пурраи наслҳои таҷрибавӣ дар истиноди зерин дидан мумкин аст:

Барои нарх, он ба ман тақрибан 9 ҳазор рубл барои иҷораи серверҳои иқтидори гуногун аз омӯзиш ва аз омодагӣ то насл арзиш дошт. Як ноумедии махсус ин буд, ки шумо наметавонед ҳама чизро фавран тавлид кунед. Барои оғоз кардани он вақти хеле тӯлонӣ лозим аст ва матн бо назардошти арзиши сервер дар як соат он қадар зуд тавлид намешавад.
Шабакаи нейронии YaLM 100B дар амал.  

Чӣ тавр YaLM-ро бе 200 Гб GPU RAM кор кардан мумкин аст?

Шумо бояд ба конфигуратсия боркунии амиқи сифрро илова кунед. Барои онҳое, ки медонанд, ки мо дар бораи чӣ гап мезанем, ин кор хеле осон хоҳад буд. Барои дигарон, ин кори оддӣ нест. Донистани он муҳим аст, ки борфарорӣ метавонад дар CPU RAM ё NVMe бошад. Шумо метавонед дар бораи NVMe дар айни замон фаромӯш, зеро. миқдори хеле зиёди маълумот коркард карда мешавад ва диск аз ӯҳдаи он баромада наметавонад. CPU сифр борфарорӣ воқеӣ бештар аст. Дуруст аст, ки барои ин шумо бояд 200+ Гб CPU RAM дошта бошед, ки ин ҳам арзон нест. Ва як матн тақрибан 20-40 дақиқа тавлид мешавад, зеро он дар ду корти видео параллелизатсия кардан ҳанӯз имконнопазир аст. Тавре ки шумо метавонед дар скриншот дар зер мебинед, танҳо як корти видео дар насл ҷалб карда шуд, ва он гоҳ танҳо барои чоряки хотираи. Бояд дида шавад, ки чаро ҳама 24 ГБ истифода намешаванд,
Шабакаи нейронии YaLM 100B дар амал. Хуб, дар хотима, ман мегӯям, ки ҳатто дар як RTX 3070 TI кор кардан мумкин аст. Аммо дар ин ягон маънои махсус вуҷуд надорад, зеро. NVMe ба шумо имкон намедиҳад, ки 150 ГБ маълумотро дар своп, ки дар замимаи 96 ГБ хотираи оперативӣ ҷойгиранд, зуд коркард кунед.
Шабакаи нейронии YaLM 100B дар амал.

Ҷамъбаст кардан

Албатта, ман то ҳол кӯшиш мекунам, ки роҳҳои оптималии оғозёбиро пайдо кунам. Аммо то ҳол ман ба хулосае омадам, ки YaLM 100b барои вазифаҳои ман хеле гарон / хеле суст аст. Бо ҳамон пул одамон хеле бештар ва хеле беҳтар менависанд. Аммо ман фикр мекунам, ки ин муваққатӣ аст, мебинем. Агар ба шумо дар оғоз кардан, насб кардани yalm кӯмак лозим бошад ё хоҳед, ки натиҷаҳоро дар мисолҳои контексти худ бубинед, ба почта ё телеграмма нависед.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply