YaLM 100B мэдрэлийн сүлжээ практикт.

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

6-р сарын сүүлээр Yandex
нь YaLM 100B нэртэй 100 тэрбум параметр бүхий мэдрэлийн сүлжээг олон нийтэд хүргэсэн . Энэ нь олон нийтийн домэйн дэх хамгийн том GPT шиг мэдрэлийн сүлжээ юм. Энэ нь тэд хэрхэн зааж, хамгийн сайн жишээг харуулсан, нейрон ямар чадвартай болохыг өгүүлдэг. Гэхдээ энэ нь практикт маш сайн бөгөөд гэртээ хэрэглэх боломжтой юу? Нийтлэл нь энэ талаар чимээгүй байгаа бөгөөд үүнээс гадна үүнийг ажиллуулах, шалгах нь тийм ч хялбар биш юм, учир нь ойролцоогоор 200 Гб GPU RAM шаардлагатай. Хабрегийн тухай
энэхүү тайлбар нь нөхцөл байдлыг хамгийн үнэн зөвөөр харуулж байна
.

Yandex-д ийм ухаалаг хүмүүс бүгд байдаг бөгөөд тэд ердийн Хэрхэн хийх талаар нийтлээгүй гэж таамаглаж байна. Том загварт зориулсан api байхгүй, энгийн хүмүүст зориулсан бэлэн хуулсан дунд болон жижиг загвар байхгүй (Google Colab дээр). Загварыг хэрхэн тохируулах, текстийг хэрхэн үүсгэх талаар жишээ өгөөгүй. Зүгээр л энэ нийтлэл нь тэнэг хүмүүст зориулсан хэд хэдэн нюансыг зааж өгсөн бөгөөд ингээд л болоо. Банк үүнийг “С” үсгээр хэрхэн хийснийг сайтар нягталж үзэхэд хангалттай. Энэ загвар нь хогийн саванд хаяхад харамсалтай байсан бүтэлгүй туршилтуудын нэг л гэсэн сэтгэгдэл надад төрсөн тул Yandex ямар гайхалтай загваруудыг бүтээдэгийг харуулахын тулд Нээлттэй эх сурвалжид байрлуулсан бөгөөд үүнээс гадна энэ нь нээлттэй эх сурвалж юм!

Интернет дээр yalm-г хэрхэн ажиллуулах эсвэл онлайнаар оролдож үзэх талаар маш олон асуулт байдаг боловч үүнд хариулт алга. Эдгээр асуултыг асуусан хэрэглэгчдийн дунд би байсан. Тэгээд үүнийг олж мэдэхийг хичээ. Санхүүгийн роботуудад текст үүсгэх арга надад үнэхээр хэрэгтэй байсан. Ингэснээр тэд зөвхөн үнэ цэнийг урьдчилан таамаглахаас гадна санхүүгийн тайланд үндэслэн текст хэлбэрээр тайлбар хийх боломжтой болно. Нэг ёсондоо санхүүгийн шинжээчдийн хийдэгтэй адилхан, зөвхөн хиймэл оюун ухаан ашиглахад л ийм байх болно. Ялмыг ажиллуулах хоёр арга бий.
Клоуд дээр сервер түрээслэх200+ Gb GPU RAM-тай эсвэл кодыг өөрчилж, гүн хурдгүй ачаалалгүйгээр ажиллуулна (GPU нь мэдрэлийн сүлжээний нэг хэсгийг дараалан боловсруулж, үлдсэн хэсэг нь CPU RAM эсвэл NVMe-д хадгалагдах үед). Эхнийх нь маш үнэтэй, цагт 2500 рубль буюу сард 1.7 сая. Хоёр дахь нь үл мэдэгдэх, учир нь репозитор дахь кодыг өгөөгүй, зөвхөн
репозиторын асуудалд зөвлөгөө өгдөг бөгөөд үүнийг хийхэд хэцүү биш юм. Энгийнээр эхэлцгээе.

YaLM 100B эхлүүлэх заавар

1. Бид 200 GB 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. Repository-г 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 ~/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 ГБ RAM-ийн хавсралтад байгаа своп дахь 150 ГБ өгөгдлийг хурдан боловсруулахыг зөвшөөрөхгүй.
YaLM 100B мэдрэлийн сүлжээ практикт.

Дүгнэх

Мэдээжийн хэрэг, би хөөргөх оновчтой замыг олохыг хичээх болно. Гэхдээ одоог хүртэл би YaLM 100b нь миний даалгаварт хэтэрхий үнэтэй / хэтэрхий удаан байна гэсэн дүгнэлтэд хүрсэн. Үүнтэй ижил мөнгөөр ​​хүмүүс илүү их, илүү сайн бичих болно. Гэхдээ энэ нь түр зуурынх гэж бодож байна, бид харах болно. Хэрэв танд yalm-г эхлүүлэх, тохируулах талаар тусламж хэрэгтэй бол эсвэл контекст жишээн дээрээ үр дүнг харахыг хүсвэл шуудан эсвэл телеграм руу бичнэ үү.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply