YaLM 100B neyron şəbəkəsi praktikada.

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

İyunun sonunda Yandex,
YaLM 100B adlı 100 milyard parametrli neyron şəbəkəsini ictimaiyyətə təqdim etdi . Bu, ictimai sahədə ən böyük GPT kimi neyron şəbəkəsidir. Onların necə öyrətdiklərindən, ən yaxşı nümunələri göstərdiklərindən və neyronun nəyə qadir olduğundan bəhs edir. Ancaq praktikada bu qədər yaxşıdır və evdə tətbiq olunur? Məqalə bu barədə səssizdir, üstəlik, onu işə salmaq və yoxlamaq o qədər də asan deyil, çünki təxminən 200 Gb GPU RAM tələb olunur. Habré ilə bağlı
bu şərh vəziyyəti ən doğru şəkildə ortaya qoyur
.

İddialara görə, Yandex-də bütün belə ağıllı insanlar var və onlar hətta adi bir Necə Göndərmədi. Böyük model üçün api yoxdur, adi insanlar üçün hazır soyulmuş orta və ya kiçik model yoxdur (Google Colab-da). Modelin necə qurulacağına, mətnin necə yaradılacağına dair heç bir nümunə verilmir. Sadəcə olaraq, məqalə nerds üçün bir neçə nüans göstərir və bu qədərdir. Bankın “C” hərfi ilə bunu necə etdiyinə daha yaxından baxmaq və eyni şeyi etmək kifayətdir. Məndə belə bir təəssürat yarandı ki, bu model zibil qutusuna atmaq təəssüf doğuran uğursuz sınaqlardan sadəcə biridir, ona görə də Yandex-in hansı möhtəşəm modellər yaratdığını göstərmək üçün Açıq Mənbədə yerləşdirilib və üstəlik, açıq mənbədir!

İnternetdə yalm-ı necə işlətmək və ya hətta onlayn cəhd etmək barədə çoxlu suallar var, lakin buna cavab yoxdur. Bu sualları verən istifadəçilər arasında mən də var idim. Və bunu başa düşməyə başlayın. Çünki mənə həqiqətən maliyyə robotları üçün mətnlər yaratmaq üçün bir yol lazım idi. Beləliklə, onlar təkcə dəyərləri deyil, həm də maliyyə hesabatlarına əsaslanaraq mətndə şərh edə bilsinlər. Əslində, bu, maliyyə analitiklərinin etdikləri ilə eyni olacaq, yalnız süni intellektdən istifadə etməklə. Yalm çalıştırmağın iki yolu var.
Buludda bir server icarəyə götürün200+ Gb GPU RAM ilə və ya kodu dəyişdirin və dərin sürətli sıfır yükləmə ilə işləyin (GPU ardıcıl olaraq neyron şəbəkənin bir hissəsini emal etdikdə, qalan hissəsi CPU RAM və ya NVMe-də saxlandıqda). Birincisi çox bahadır, saatda təxminən 2500 rubl və ya ayda 1,7 milyon. İkinci naməlum, çünki depodakı kod təmin edilmir, yalnız
depo məsələsində göstərişlər verir, bunu etmək çətin deyil. Sadə başlayaq.

YaLM 100B Başlama Təlimatları

1. Biz 200 GB GPU RAM icarəyə götürürük, məsələn burada .

YaLM 100B neyron şəbəkəsi praktikada.

Sizə ən azı 200 GB ümumi video yaddaş lazımdır. 8×40 = 320 GB. Yalnız bu uyğun gəlir. 200-dən azı mümkün deyil, daha çoxu mümkündür. Ok CPU RAM-ı göstərir, biz ona baxmırıq. O, hər kəs ola bilər.

Təxminən 300 GB-lıq bir diski göstəririk, buna görə ehtiyat və tercihen sürətli bir disk ilə, çünki. ona və ondan onlarla gigabayt məlumat ötürüləcək.

YaLM 100B neyron şəbəkəsi praktikada. Mənbələrdə yaratarkən Ubuntu ML (Maşın Öyrənmə) seçin. Bu, video kartların konfiqurasiya edilməsi və əlavə olaraq heç bir şeyin quraşdırılmasına ehtiyac olmaması üçün məcburidir.

Server yaratarkən, kvota ilə nüanslar var, siz avadanlığın mövcud olmadığı hissini ala bilərsiniz, amma əslində sadəcə parametrlərdə kvotaları artırmaq lazımdır. Server aktivləşdirildikdən sonra (5-10 dəqiqə çəkə bilər) server səhifəsində ssh vasitəsilə və ya birbaşa veb konsolda serverə qoşulun və əmri yerinə yetirin.

nvidia-smi

Nəticə video kartları, sürücü versiyası və cuda ilə bir masa olmalıdır. Təxminən bu kimi.
YaLM 100B neyron şəbəkəsi praktikada. Sürücü versiyasının başlığında və harada. Sol tərəfdə cihaz nömrələri, mərkəzdə cihaz yaddaşının ölçüsü var. Əgər bu məlumatınız yoxdursa, o zaman serveri səhv mənbədən toplamısınız. Yuxarıda təsvir edildiyi kimi Ubuntu ML (Machine Learnong) tələb olunur.

2. YaLM ilə deponu klonlayın

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

Docker konfiqurasiyasını sonradan redaktə etmək məcburiyyətində qalmamaq üçün ev qovluğunuza klon edin. Əgər başqa yerdə klonlanıbsa,
bura gedin və klonlanan yerə yolu əlavə edin.

3. Yoxlama məntəqələrini yükləyin (əsas model təlim məlumatı)

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

Bu, təxminən bir saat çəkəcək. Boş yerə vaxt itirməmək üçün yeni ssh bağlantısı yaradırıq və paralel olaraq docker konteynerinin qurulmasına başlayırıq.

4. Nvidiadocker 2 proqramını quraşdırın

Normal docker uyğun deyil,
nvidia-docker2 lazımdır .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM üçün konteynerin qurulması

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

Həm də təxminən bir saatdır.

Life hack. Bir video kartla yoxlama nöqtələrini yükləyə, doker quraşdıra və ucuz serverdə konteyner qura bilərsiniz. Zamanla eyni olacaq, ona görə də bir az qənaət edə bilərsiniz. Ucuz serverdə yığıldıqdan sonra onu silib ucuz serverdən diskdən istifadə edərək döyüş serveri yaradırıq. Sonra montajı gözləmək və yoxlama məntəqələrini vurmaq üçün vaxtınızı çox ödəməyəcəksiniz.

6. Məzmunu hazırlayın

6.1 Yoxlama məntəqələri

Yoxlama məntəqələrinin yüklənməsi başa çatdıqdan sonra onları konfiqurasiyaya keçirməlisiniz. İki yol var, düzgün parametrlər və ya keçid məntəqələri. Hər yerdə keçid məntəqələrinin layihənin əsas kataloqunda olacağı gözlənilir, müvafiq olaraq yüklənmişlər yuxarıdakı yükləmə qovluğundan köçürülməlidir. Yalm qovluğunda olan icra

mv ./download/yalm100b_checkpoint ./

Və ya nümunə fayllardakı fayllara gedən yolları dəyişdirin
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Video kartlar

Video kartların düzgün qurulduğunu yoxlayırıq. Səkkiz video kartınız varsa, heç nəyi dəyişdirmək lazım deyil. Əgər rəqəm fərqlidirsə, onda bu sətirləri dəyişdiririk
YaLM 100B neyron şəbəkəsi praktikada. İkinci sətirdə istifadə olunan cihazların nömrələri (onlara artıq işə saldığınız nvidia-smi-də baxa bilərsiniz). Dördüncüsü, onların sayı.

7. Docker konteynerini işə salın

Yalm qovluğunda olmaqla, əmri yerinə yetirin

sudo bash ./docker/run.sh

Hər şey qaydasındadırsa, onda siz ev kataloqunuzdakı yalm qovluğuna getməli olduğunuz konteynerə aparılacaqsınız.

cd ~/yalm

8. YaLM 100B-dən nümunəni işə salın

Nümunələrdən birini işə salmağa hazırıq. Onlar
burada təsvir edilmişdir .

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

Səbirli olun, GPT modeli yaradılana və nəzarət nöqtələrindən çəkilər yüklənənə qədər daha 10-15 dəqiqə gözləmək qalır.
YaLM 100B neyron şəbəkəsi praktikada.

Quraşdırma tamamlandıqda, MegatronML mətn yaratmaq üçün kontekst daxil etməyi təklif edəcək. Yazarkən diqqətli olun. Müəyyən şərtlərdə bir səhv baş verir, proqram çökür və montajı yenidən başlatmalısınız. Buna görə də, fayldan mətn götürən nümunələrdən istifadə etmək daha yaxşıdır.

9. İşin nəticələri

YaLM 100B neyron şəbəkəsi praktikada.
YaLM 100B neyron şəbəkəsi praktikada. Maraqlı görünür. Təbii ki, bunlar yalnız yaxşı nümunələrdir. Testi müxtəlif nümunələr üzərində apardım. Gözlənildiyi kimi, kontekst nə qədər yaxşı olsa, bir o qədər mənalı mətn yaranacaq. Eksperimental nəsillərin tam dəstinə aşağıdakı linklərdə baxmaq olar:

Qiymətə görə, təlimdən və hazırlıqdan nəslə qədər müxtəlif tutumlu serverləri icarəyə götürmək mənə təxminən 9 min rubla başa gəldi. Xüsusi bir məyusluq, hər şeyi dərhal yarada bilməməyiniz idi. Başlamaq üçün çox uzun vaxt tələb olunur və serverin bir saatlıq qiymətini nəzərə alaraq mətn istədiyimiz qədər tez yaranmır.
YaLM 100B neyron şəbəkəsi praktikada.  

YaLM-ni 200Gb GPU RAM olmadan necə işə salmaq olar?

Siz konfiqurasiyaya dərin sürətli sıfır yükləmə əlavə etməlisiniz. Nə danışdığımızı bilənlər üçün bunu etmək çox asan olacaq. Digərləri üçün bu, heç də əhəmiyyətsiz bir iş deyil. Boşaltma CPU RAM və ya NVMe-də ola biləcəyini bilmək vacibdir. Bu anda NVMe-ni unuda bilərsiniz, çünki. çox böyük miqdarda məlumat emal olunur və disk bunun öhdəsindən gələ bilmir. Sıfır boşalma CPU daha realdır. Düzdür, bunun üçün anbarda 200+ Gb CPU RAM olmalıdır, bu da ucuz deyil. Bir mətn təxminən 20-40 dəqiqə ərzində yaradılacaq, çünki onu iki video kartda paralelləşdirmək hələ mümkün olmayıb. Aşağıdakı ekran görüntüsündə gördüyünüz kimi, nəsildə yalnız bir video kart iştirak etdi, sonra isə yaddaşın yalnız dörddə biri üçün. Bütün 24 GB-ın niyə istifadə edilmədiyini görmək qalır,
YaLM 100B neyron şəbəkəsi praktikada. Yaxşı, yekunda deyim ki, hətta bir RTX 3070 TI-də də işləmək mümkündür. Ancaq bunun xüsusi bir mənası yoxdur, çünki. NVMe sizə mübadilədə 96 GB RAM əlavəsində olan 150 GB məlumatı tez emal etməyə imkan verməyəcək.
YaLM 100B neyron şəbəkəsi praktikada.

Xülasə

Əlbəttə ki, hələ də optimal başlanğıc yollarını tapmağa çalışacağam. Ancaq bu günə qədər YaLM 100b-nin tapşırıqlarım üçün çox bahalı / çox yavaş olduğu qənaətinə gəldim. Eyni pula insanlar daha çox və daha yaxşı yazacaqlar. Amma məncə, bu müvəqqətidir, görəcəyik. Yalm-ın işə salınması, qurulması ilə bağlı köməyə ehtiyacınız varsa və ya kontekst nümunələrinizdə nəticələri görmək istəyirsinizsə, poçt və ya teleqrama yazın.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply