នៅចុងខែមិថុនា Yandex
បានចេញផ្សាយ បណ្តាញសរសៃប្រសាទដែលមានប៉ារ៉ាម៉ែត្រ 100 ពាន់លានដែលហៅថា YaLM 100B ដល់សាធារណៈជន ។ វាគឺជាបណ្តាញប្រសាទដូច GPT ដ៏ធំបំផុតនៅក្នុងដែនសាធារណៈ។ វាប្រាប់អំពីរបៀបដែលពួកគេបង្រៀន បង្ហាញពីគំរូដ៏ល្អបំផុត និងអ្វីដែលណឺរ៉ូនមានសមត្ថភាព។ ប៉ុន្តែវាល្អណាស់ក្នុងការអនុវត្ត និងអាចអនុវត្តបាននៅផ្ទះ? អត្ថបទនេះនៅស្ងៀមអំពីរឿងនេះ លើសពីនេះទៅទៀត វាមិនងាយស្រួលប៉ុន្មានទេក្នុងការដំណើរការ និងពិនិត្យមើលវា ព្រោះត្រូវការ RAM GPU ប្រហែល 200 Gb ។ ការអត្ថាធិប្បាយនេះ នៅលើ Habre
បង្ហាញពីស្ថានភាពយ៉ាងត្រឹមត្រូវបំផុត
។
តាមការចោទប្រកាន់នៅក្នុង Yandex មនុស្សឆ្លាតបែបនេះទាំងអស់ ហើយពួកគេមិនបានបង្ហោះរបៀបធ្វើធម្មតា។ មិនមាន api សម្រាប់ម៉ូដែលធំទេ មិនមានម៉ូដែលមធ្យម ឬតូចដែលត្រៀមរួចជាស្រេចសម្រាប់មនុស្សសាមញ្ញ (នៅក្នុង Google Colab) ។ គ្មានឧទាហរណ៍ត្រូវបានផ្តល់ឱ្យអំពីរបៀបរៀបចំគំរូ របៀបបង្កើតអត្ថបទទេ។ វាគ្រាន់តែថាអត្ថបទបង្ហាញពីការ nuances ពីរបីសម្រាប់ nerds ហើយនោះហើយជាវា។ វាគ្រប់គ្រាន់ហើយក្នុងការពិនិត្យមើលឱ្យកាន់តែច្បាស់អំពីរបៀបដែលធនាគារបានធ្វើវាដោយអក្សរ “C” ហើយធ្វើដូចគ្នា។ ខ្ញុំមានការចាប់អារម្មណ៍ថាគំរូនេះគ្រាន់តែជាការពិសោធន៍បរាជ័យមួយប៉ុណ្ណោះ ដែលគួរឱ្យអាណិតក្នុងការបោះចោលក្នុងធុងសំរាម ដូច្នេះវាត្រូវបានបង្ហោះក្នុង Open Source ដើម្បីបង្ហាញពីម៉ូដែលដ៏អស្ចារ្យដែល Yandex បង្កើត ហើយលើសពីនេះទៅទៀតវាគឺជាប្រភពបើកចំហរ!
មានសំណួរជាច្រើននៅលើអ៊ីនធឺណិតអំពីរបៀបដំណើរការយ៉ាល ឬសូម្បីតែសាកល្បងតាមអ៊ីនធឺណិត ប៉ុន្តែមិនមានចម្លើយចំពោះបញ្ហានេះទេ។ ខ្ញុំស្ថិតក្នុងចំណោមអ្នកប្រើប្រាស់ដែលបានសួរសំណួរទាំងនេះ។ ហើយកំណត់អំពីការស្វែងរកវា។ ដោយសារខ្ញុំពិតជាត្រូវការវិធីបង្កើតអត្ថបទសម្រាប់មនុស្សយន្តហិរញ្ញវត្ថុ។ ដូច្នេះពួកគេអាចទស្សន៍ទាយមិនត្រឹមតែតម្លៃប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងផ្តល់យោបល់លើវានៅក្នុងអត្ថបទដោយផ្អែកលើរបាយការណ៍ហិរញ្ញវត្ថុ។ នៅក្នុងខ្លឹមសារ វានឹងដូចគ្នានឹងអ្វីដែលអ្នកវិភាគហិរញ្ញវត្ថុធ្វើដែរ គឺមានតែការប្រើប្រាស់បញ្ញាសិប្បនិម្មិតប៉ុណ្ណោះ។ មានវិធីពីរយ៉ាងដើម្បីរត់យ៉ាម។
ជួលម៉ាស៊ីនមេនៅក្នុងពពកជាមួយនឹង RAM GPU 200+ Gb ឬកែប្រែកូដ ហើយដំណើរការជាមួយនឹងល្បឿន deepspeed zero offload (នៅពេលដែល GPU ដំណើរការជាបន្តបន្ទាប់នូវផ្នែកនៃ neural network ហើយនៅសល់ត្រូវបានរក្សាទុកក្នុង CPU RAM ឬ NVMe)។ ទីមួយមានតម្លៃថ្លៃណាស់ប្រហែល 2500 រូប្លិ៍ក្នុងមួយម៉ោងឬ 1,7 លានក្នុងមួយខែ។ ទីពីរមិនស្គាល់, ដោយសារតែ លេខកូដនៅក្នុងឃ្លាំងមិនត្រូវបានផ្តល់ឱ្យទេ មានតែ
ការណែនាំនៅក្នុងបញ្ហានៃ ឃ្លាំងប៉ុណ្ណោះ ដែលមិនពិបាកធ្វើ។ ចូរចាប់ផ្តើមសាមញ្ញ។
- សេចក្តីណែនាំអំពីការបើកដំណើរការ YaLM 100B
- 1. យើងជួល RAM GPU 200 GB ជាឧទាហរណ៍នៅទីនេះ ។
- 2. ក្លូនឃ្លាំងជាមួយ YaLM
- 3. ទាញយកប៉ុស្តិ៍ត្រួតពិនិត្យ (ព័ត៌មានបណ្តុះបណ្តាលគំរូមូលដ្ឋាន)
- 4. ដំឡើង nvidia – docker2
- 5. ការកសាងធុងសម្រាប់ YaLM
- 6. រៀបចំមាតិកា
- 6.1 ប៉ុស្តិ៍ត្រួតពិនិត្យ
- 6.2 កាតវីដេអូ
- 7. ដំណើរការកុងតឺន័រ docker
- 8. ដំណើរការឧទាហរណ៍ពី YaLM 100B
- 9. លទ្ធផលនៃការងារ
- តើធ្វើដូចម្តេចដើម្បីដំណើរការ YaLM ដោយគ្មាន RAM GPU 200Gb?
- សង្ខេប
សេចក្តីណែនាំអំពីការបើកដំណើរការ YaLM 100B
1. យើងជួល RAM GPU 200 GB ជាឧទាហរណ៍នៅទីនេះ ។
អ្នកត្រូវការយ៉ាងហោចណាស់ 200 GB នៃអង្គចងចាំវីដេអូសរុប។ 8×40 = 320 GB ។ មានតែមួយនេះសម។ តិចជាង 200 គឺមិនអាចទៅរួចទេ ច្រើនទៀតអាចធ្វើទៅបាន។ សញ្ញាព្រួញបង្ហាញពី CPU RAM យើងមិនមើលវាទេ។ នាងអាចជានរណាម្នាក់។
យើងចង្អុលបង្ហាញថាសប្រហែល 300 ជីកាបៃដូច្នេះជាមួយនឹងកន្លែងទំនេរនិងនិយមថាសលឿនព្រោះ។ ទិន្នន័យរាប់សិបជីហ្គាបៃនឹងត្រូវបានផ្ទេរទៅនិងពីវា។
នៅពេលបង្កើតប្រភព សូមជ្រើសរើស Ubuntu ML (Machine Learning)។ នេះជាការចាំបាច់ដើម្បីឱ្យកាតវីដេអូត្រូវបានកំណត់ ហើយមិនចាំបាច់ដំឡើងអ្វីបន្ថែមនោះទេ។
នៅពេលបង្កើតម៉ាស៊ីនមេ មានភាពខុសប្លែកគ្នាជាមួយនឹងកូតា អ្នកអាចមានអារម្មណ៍ថាឧបករណ៍មិនអាចប្រើបាន ប៉ុន្តែតាមពិតអ្នកគ្រាន់តែត្រូវការបង្កើនកូតានៅក្នុងការកំណត់ប៉ុណ្ណោះ។ បន្ទាប់ពីម៉ាស៊ីនមេត្រូវបានធ្វើឱ្យសកម្ម (វាអាចចំណាយពេល 5-10 នាទី) ភ្ជាប់ទៅម៉ាស៊ីនមេតាមរយៈ ssh ឬដោយផ្ទាល់នៅក្នុងកុងសូលបណ្តាញនៅលើទំព័រម៉ាស៊ីនមេ ហើយប្រតិបត្តិពាក្យបញ្ជា។
nvidia-smi
លទ្ធផលគួរតែជាតារាងដែលមានកាតវីដេអូ កំណែកម្មវិធីបញ្ជា និង cuda ។ ប្រហាក់ប្រហែល។
នៅក្នុងបឋមកថាកំណែកម្មវិធីបញ្ជានិងកន្លែងណា។ នៅផ្នែកខាងឆ្វេងគឺជាលេខឧបករណ៍ ហើយនៅចំកណ្តាលគឺជាទំហំនៃអង្គចងចាំឧបករណ៍។ ប្រសិនបើអ្នកមិនមានព័ត៌មាននេះទេ នោះអ្នកបានប្រមូលម៉ាស៊ីនមេពីប្រភពខុស។ Ubuntu ML (Machine Learnong) ត្រូវបានទាមទារ ដូចដែលបានពិពណ៌នាខាងលើ។
2. ក្លូនឃ្លាំងជាមួយ YaLM
sudo git ក្លូន https://github.com/yandex/YaLM-100B/ yalm
cd yalm
ក្លូនទៅថតផ្ទះរបស់អ្នក ដូច្នេះអ្នកមិនចាំបាច់កែសម្រួល docker config បន្ទាប់ពីនោះទេ។ ប្រសិនបើក្លូនកន្លែងណាផ្សេងទៀត សូម
ទៅទីនេះ ហើយបន្ថែមផ្លូវទៅកន្លែងដែលក្លូន។
3. ទាញយកប៉ុស្តិ៍ត្រួតពិនិត្យ (ព័ត៌មានបណ្តុះបណ្តាលគំរូមូលដ្ឋាន)
sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh
វានឹងចំណាយពេលប្រហែលមួយម៉ោង។ ដើម្បីកុំឱ្យខ្ជះខ្ជាយពេលវេលាដោយឥតប្រយោជន៍ យើងបង្កើតការតភ្ជាប់ ssh ថ្មី ហើយស្របគ្នាយើងចាប់ផ្តើមបង្កើត docker container។
4. ដំឡើង nvidia – docker 2
docker ធម្មតាមិនសមរម្យទេ
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
វាក៏ប្រហែលមួយម៉ោងដែរ។
ការ hack ជីវិត។ អ្នកអាចទាញយកប៉ុស្តិ៍ត្រួតពិនិត្យ ដំឡើង docker និងបង្កើតកុងតឺន័រនៅលើម៉ាស៊ីនមេដែលមានតំលៃថោកជាមួយនឹងកាតវីដេអូមួយ។ វានឹងដូចគ្នានៅក្នុងពេលវេលាដូច្នេះអ្នកអាចសន្សំបានតិចតួច។ បន្ទាប់ពីដំឡើងនៅលើម៉ាស៊ីនមេថោក យើងលុបវា ហើយបង្កើតម៉ាស៊ីនមេប្រយុទ្ធដោយប្រើថាសពីម៉ាស៊ីនមេថោក។ បន្ទាប់មកអ្នកនឹងមិនចំណាយលើសម៉ោងសម្រាប់ការរង់ចាំការជួបប្រជុំគ្នា និងការបូមចេញពីប៉ុស្តិ៍ត្រួតពិនិត្យនោះទេ។
6. រៀបចំមាតិកា
6.1 ប៉ុស្តិ៍ត្រួតពិនិត្យ
បន្ទាប់ពីការទាញយកចំណុចត្រួតពិនិត្យត្រូវបានបញ្ចប់ អ្នកត្រូវទម្លាក់វាទៅក្នុងការកំណត់រចនាសម្ព័ន្ធ។ មានវិធីពីរយ៉ាង ប៉ារ៉ាម៉ែត្រត្រឹមត្រូវ ឬច្រកពិនិត្យផ្ទេរ។ គ្រប់ទីកន្លែងដែលគេរំពឹងថា ប៉ុស្តិ៍ត្រួតពិនិត្យនឹងស្ថិតនៅក្នុងថតសំខាន់នៃគម្រោងរៀងៗខ្លួន អ្វីដែលត្រូវបានទាញយកត្រូវតែផ្ទេរពីថតឯកសារទាញយកខាងលើ។ កំពុងស្ថិតនៅក្នុងថត យ៉ាល ប្រតិបត្តិ
mv ./download/yalm100b_checkpoint ./
ឬផ្លាស់ប្តូរផ្លូវទៅកាន់ឯកសារក្នុងឯកសារឧទាហរណ៍
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9
6.2 កាតវីដេអូ
យើងពិនិត្យមើលថាកាតវីដេអូត្រូវបានកំណត់ត្រឹមត្រូវ។ ប្រសិនបើអ្នកមានកាតវីដេអូប្រាំបី នោះគ្មានអ្វីត្រូវផ្លាស់ប្តូរទេ។ ប្រសិនបើលេខខុសគ្នា នោះយើងប្តូរបន្ទាត់ទាំងនេះ
នៅក្នុងជួរទីពីរ លេខនៃឧបករណ៍ដែលបានប្រើ (អ្នកអាចមើលពួកវានៅក្នុង nvidia-smi ដែលអ្នកបានបើកដំណើរការរួចហើយ)។ នៅក្នុងទីបួនចំនួនរបស់ពួកគេ។
7. ដំណើរការកុងតឺន័រ docker
ដោយនៅក្នុងថត យ៉ាល ប្រតិបត្តិពាក្យបញ្ជា
sudo bash ./docker/run.sh
ប្រសិនបើអ្វីៗទាំងអស់មិនអីទេ នោះអ្នកនឹងត្រូវយកទៅធុងដែលអ្នកត្រូវចូលទៅកាន់ថតឯកសារ យ៉ាល នៅក្នុងថតផ្ទះរបស់អ្នក។
ស៊ីឌី ~/យ៉ាម
8. ដំណើរការឧទាហរណ៍ពី YaLM 100B
យើងត្រៀមខ្លួនជាស្រេចដើម្បីបើកដំណើរការឧទាហរណ៍មួយ។ ពួកគេត្រូវបានពិពណ៌នា
នៅទីនេះ ។
chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh
សូមអត់ធ្មត់ វានៅតែត្រូវរង់ចាំ 10-15 នាទីទៀតរហូតដល់គំរូ GPT ត្រូវបានបង្កើតឡើង ហើយទម្ងន់ពីប៉ុស្តិ៍ត្រួតពិនិត្យត្រូវបានផ្ទុក។
នៅពេលការស្ថាបនាបញ្ចប់ MegatronML នឹងប្រាប់អ្នកឱ្យបញ្ចូលបរិបទដើម្បីបង្កើតអត្ថបទ។ សូមប្រយ័ត្នពេលអ្នកវាយអក្សរ។ នៅក្រោមកាលៈទេសៈណាមួយ កំហុសកើតឡើង កម្មវិធីគាំង ហើយអ្នកត្រូវចាប់ផ្តើមការជួបប្រជុំគ្នាម្តងទៀត។ ដូច្នេះវាជាការប្រសើរក្នុងការប្រើឧទាហរណ៍ដែលយកអត្ថបទពីឯកសារមួយ។
9. លទ្ធផលនៃការងារ
មើលទៅគួរឱ្យចាប់អារម្មណ៍។ ជាការពិតណាស់ ទាំងនេះគ្រាន់តែជាឧទាហរណ៍ដ៏ល្អប៉ុណ្ណោះ។ ខ្ញុំបានដំណើរការការធ្វើតេស្តលើគំរូផ្សេងៗ។ ដូចដែលបានរំពឹងទុក បរិបទកាន់តែប្រសើរ អត្ថបទដែលមានអត្ថន័យកាន់តែច្រើននឹងត្រូវបានបង្កើត។ សំណុំពេញលេញនៃជំនាន់ពិសោធន៍អាចមើលបានតាមតំណ៖
សម្រាប់តម្លៃវាមានតម្លៃខ្ញុំប្រហែល 9 ពាន់រូប្លិ៍សម្រាប់ការជួលម៉ាស៊ីនមេដែលមានសមត្ថភាពខុសៗគ្នាពីការបណ្តុះបណ្តាលនិងពីការរៀបចំទៅជំនាន់មួយ។ ការខកចិត្តពិសេសមួយគឺថាអ្នកមិនអាចបង្កើតអ្វីគ្រប់យ៉ាងភ្លាមៗបានទេ។ វាត្រូវការពេលយូរណាស់ដើម្បីចាប់ផ្តើម ហើយអត្ថបទមិនបង្កើតបានលឿនតាមដែលយើងចង់បានទេ ដោយសារតម្លៃនៃម៉ាស៊ីនមេក្នុងមួយម៉ោង។
តើធ្វើដូចម្តេចដើម្បីដំណើរការ YaLM ដោយគ្មាន RAM GPU 200Gb?
អ្នកត្រូវបន្ថែម Deepspeed zero offload ទៅក្នុង config។ សម្រាប់អ្នកដែលដឹងពីអ្វីដែលយើងកំពុងនិយាយអំពីវានឹងមានភាពងាយស្រួលក្នុងការធ្វើវា។ សម្រាប់អ្នកផ្សេងទៀត នេះមិនមែនជាកិច្ចការតូចតាចទាល់តែសោះ។ វាជាការសំខាន់ណាស់ដែលត្រូវដឹងថា offload អាចស្ថិតនៅក្នុង CPU RAM ឬ NVMe ។ អ្នកអាចភ្លេចអំពី NVMe នៅពេលនេះ ពីព្រោះ។ ចំនួនទិន្នន័យដ៏ច្រើនកំពុងត្រូវបានដំណើរការ ហើយថាសមិនអាចដោះស្រាយជាមួយវាបានទេ។ Zero offload CPU គឺពិតប្រាកដជាង។ ពិតសម្រាប់នេះអ្នកត្រូវមាន RAM CPU 200+ Gb នៅក្នុងស្តុក ដែលវាមិនថោកទេ។ ហើយអត្ថបទមួយនឹងត្រូវបានបង្កើតប្រហែល 20-40 នាទី ដោយសារវាមិនទាន់អាចធ្វើស្របគ្នានៅលើកាតវីដេអូពីរ។ ដូចដែលអ្នកអាចមើលឃើញនៅក្នុងរូបថតអេក្រង់ខាងក្រោមមានតែកាតវីដេអូមួយប៉ុណ្ណោះដែលត្រូវបានចូលរួមនៅក្នុងជំនាន់ហើយបន្ទាប់មកសម្រាប់តែមួយភាគបួននៃអង្គចងចាំប៉ុណ្ណោះ។ វានៅតែត្រូវបានគេមើលឃើញថាហេតុអ្វីបានជា 24 GB មិនត្រូវបានប្រើ,
ជាការប្រសើរណាស់, នៅក្នុងការសន្និដ្ឋាន, ខ្ញុំនឹងនិយាយថាវាគឺអាចធ្វើទៅបានដើម្បីដំណើរការសូម្បីតែនៅលើ RTX 3070 TI មួយ។ ប៉ុន្តែមិនមានអត្ថន័យពិសេសនៅក្នុងរឿងនេះទេពីព្រោះ NVMe នឹងមិនអនុញ្ញាតឱ្យអ្នកដំណើរការទិន្នន័យ 150 ជីកាបៃយ៉ាងឆាប់រហ័សនៅក្នុងការផ្លាស់ប្តូរដែលមាននៅក្នុងផ្នែកបន្ថែមនៃ RAM ទំហំ 96 GB នោះទេ។
សង្ខេប
ជាការពិត ខ្ញុំនឹងនៅតែព្យាយាមស្វែងរកផ្លូវបើកដំណើរការដ៏ល្អប្រសើរ។ ប៉ុន្តែរហូតមកដល់ពេលនេះខ្ញុំបានសន្និដ្ឋានថា YaLM 100b ថ្លៃពេក / យឺតពេកសម្រាប់ភារកិច្ចរបស់ខ្ញុំ។ សម្រាប់លុយដូចគ្នា មនុស្សនឹងសរសេរច្រើន និងល្អជាង។ ប៉ុន្តែខ្ញុំគិតថាវាជាបណ្ដោះអាសន្ន យើងនឹងឃើញ។ ប្រសិនបើអ្នកត្រូវការជំនួយក្នុងការបើកដំណើរការ រៀបចំ yalm ឬចង់ឃើញលទ្ធផលនៅលើឧទាហរណ៍បរិបទរបស់អ្នក សូមសរសេរទៅកាន់សំបុត្រ ឬតេឡេក្រាម។
Статья на Мега актуальную тему! Спасибо.
Крутая статья! Спасибо автору!
СПАСИБО !!!
три дня эту информацию искал
нет подобного о RuGPT3 и Порфириче?