सराव मध्ये न्यूरल नेटवर्क YaLM 100B.

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

जूनच्या शेवटी, Yandex ने YaLM 100B नावाचे 100 अब्ज पॅरामीटर्स असलेले न्यूरल नेटवर्क सार्वजनिक केले . हे सार्वजनिक डोमेनमधील सर्वात मोठे GPT सारखे न्यूरल नेटवर्क आहे. त्यांनी कसे शिकवले, उत्तम उदाहरणे दाखवली आणि न्यूरॉन कशासाठी सक्षम आहे याबद्दल ते सांगते. पण ते व्यवहारात इतके चांगले आणि घरी लागू आहे का? लेख याबद्दल मूक आहे, शिवाय, ते चालवणे आणि तपासणे इतके सोपे नाही, कारण अंदाजे 200 जीबी जीपीयू रॅम आवश्यक आहे. हाब्रेवरील
ही टिप्पणी परिस्थिती सर्वात अचूकपणे प्रकट करते .

कथितपणे, यांडेक्समध्ये, असे सर्व स्मार्ट लोक आणि त्यांनी सामान्य कसे-करावे हे देखील पोस्ट केले नाही. मोठ्या मॉडेलसाठी एपीआय नाही, सामान्य लोकांसाठी (गुगल कोलाबमध्ये) रेडीमेड स्ट्रिप-डाउन मध्यम किंवा लहान मॉडेल नाही. मॉडेल कसे सेट करायचे, मजकूर कसा तयार करायचा याचे उदाहरण दिलेले नाही. हे फक्त इतकेच आहे की लेख अभ्यासकांसाठी काही बारकावे सूचित करतो आणि तेच. बँकेने “सी” अक्षरासह ते कसे केले ते जवळून पाहणे आणि तेच करणे पुरेसे आहे. मला असे समजले की हे मॉडेल केवळ अयशस्वी प्रयोगांपैकी एक आहे जे कचऱ्यात टाकण्याची खेद होती, म्हणून Yandex कोणते उत्कृष्ट मॉडेल तयार करते हे दर्शविण्यासाठी ते मुक्त स्त्रोतामध्ये पोस्ट केले गेले आणि शिवाय, ते मुक्त स्त्रोत आहे!

इंटरनेटवर यालम कसे चालवायचे किंवा ऑनलाइन प्रयत्न कसे करावे याबद्दल बरेच प्रश्न आहेत, परंतु याची उत्तरे नाहीत. हे प्रश्न विचारणाऱ्या वापरकर्त्यांपैकी मी होतो. आणि ते शोधण्यासाठी सेट करा. मला खरोखर आर्थिक रोबोट्ससाठी मजकूर व्युत्पन्न करण्याचा मार्ग आवश्यक होता. जेणेकरुन ते आर्थिक अहवालांच्या आधारे केवळ मूल्यांचाच अंदाज लावू शकत नाहीत, तर मजकुरात त्यावर टिप्पणी देखील करू शकतात. थोडक्यात, आर्थिक विश्लेषक जे करतात तेच होईल, केवळ कृत्रिम बुद्धिमत्तेच्या वापराने. यल्म चालवण्याचे दोन मार्ग आहेत. क्लाउडमध्ये सर्व्हर भाड्याने घ्या200+ Gb GPU RAM सह किंवा कोड सुधारित करा आणि डीपस्पीड शून्य ऑफलोडसह चालवा (जेव्हा GPU अनुक्रमे न्यूरल नेटवर्कच्या काही भागावर प्रक्रिया करते आणि उर्वरित CPU RAM किंवा NVMe मध्ये संग्रहित केले जाते). पहिला एक खूप महाग आहे, सुमारे 2500 रूबल प्रति तास किंवा 1.7 दशलक्ष प्रति महिना. दुसरा अज्ञात, कारण रेपॉजिटरीमधील कोड प्रदान केलेला नाही, फक्त रेपॉजिटरीच्या इश्यूमध्ये इशारे आहेत , जे करणे कठीण नाही. चला सोपी सुरुवात करूया.

YaLM 100B लाँच सूचना

1. आम्ही 200 GB GPU RAM भाड्याने देतो, उदाहरणार्थ येथे .

सराव मध्ये न्यूरल नेटवर्क YaLM 100B.

तुम्हाला एकूण व्हिडिओ मेमरी किमान 200 GB आवश्यक आहे. 8×40 = 320 GB. फक्त हेच बसते. 200 पेक्षा कमी अशक्य आहे, अधिक शक्य आहे. बाण CPU RAM दर्शवितो, आम्ही त्याकडे पाहत नाही. ती कोणीही असू शकते.

आम्ही सुमारे 300 GB ची डिस्क सूचित करतो, जेणेकरून अतिरिक्त आणि शक्यतो वेगवान डिस्कसह, कारण. दहापट गीगाबाइट डेटा त्यामध्ये आणि त्यातून हस्तांतरित केला जाईल.

सराव मध्ये न्यूरल नेटवर्क YaLM 100B.स्त्रोतांमध्ये तयार करताना, उबंटू एमएल (मशीन लर्निंग) निवडा. हे अनिवार्य आहे जेणेकरून व्हिडिओ कार्ड कॉन्फिगर केले जातील आणि अतिरिक्त काहीही स्थापित करण्याची आवश्यकता नाही.

सर्व्हर तयार करताना, कोटासह बारकावे आहेत, आपल्याला असे वाटू शकते की उपकरणे उपलब्ध नाहीत, परंतु प्रत्यक्षात आपल्याला सेटिंग्जमध्ये कोटा वाढवणे आवश्यक आहे. सर्व्हर सक्रिय झाल्यानंतर (यास 5-10 मिनिटे लागू शकतात), सर्व्हरला ssh द्वारे किंवा थेट सर्व्हर पृष्ठावरील वेब कन्सोलमध्ये कनेक्ट करा आणि कमांड कार्यान्वित करा.

nvidia-smi

परिणाम व्हिडिओ कार्ड, ड्राइव्हर आवृत्ती आणि cuda एक टेबल असावा. अंदाजे यासारखे.
सराव मध्ये न्यूरल नेटवर्क YaLM 100B.ड्राइव्हर आवृत्ती शीर्षलेख आणि कुठे. डाव्या बाजूला डिव्हाइस क्रमांक आहेत, मध्यभागी डिव्हाइस मेमरीचा आकार आहे. जर तुमच्याकडे ही माहिती नसेल, तर तुम्ही चुकीच्या स्त्रोतावरून सर्व्हर गोळा केला आहे. वर वर्णन केल्याप्रमाणे उबंटू एमएल (मशीन लर्नॉन्ग) आवश्यक आहे.

2. YaLM सह भांडार क्लोन करा

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

तुमच्या होम फोल्डरमध्ये क्लोन करा जेणेकरून तुम्हाला नंतर डॉकर कॉन्फिगरेशन संपादित करावे लागणार नाही. जर इतरत्र क्लोन केले असेल तर येथे जा आणि जेथे क्लोन केले असेल तेथे मार्ग जोडा.

३. चेकपॉइंट डाउनलोड करा (मूलभूत मॉडेल प्रशिक्षण माहिती)

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

यास सुमारे एक तास लागेल. व्यर्थ वेळ वाया घालवू नये म्हणून, आम्ही एक नवीन ssh कनेक्शन तयार करतो आणि समांतर आम्ही डॉकर कंटेनर तयार करण्यास सुरवात करतो.

4. एनव्हीडियाडॉकर 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

धीर धरा, जीपीटी मॉडेल तयार होईपर्यंत आणि चेकपॉईंट्सचे वजन लोड होईपर्यंत आणखी 10-15 मिनिटे प्रतीक्षा करणे बाकी आहे.
सराव मध्ये न्यूरल नेटवर्क YaLM 100B.

बिल्ड पूर्ण झाल्यावर, MegatronML तुम्हाला मजकूर व्युत्पन्न करण्यासाठी संदर्भ प्रविष्ट करण्यास सूचित करेल. टाईप करताना काळजी घ्या. विशिष्ट परिस्थितीत, एक त्रुटी उद्भवते, प्रोग्राम क्रॅश होतो आणि आपल्याला पुन्हा असेंब्ली सुरू करण्याची आवश्यकता असते. म्हणून, फाईलमधून मजकूर घेणारी उदाहरणे वापरणे चांगले.

9. कामाचे परिणाम

सराव मध्ये न्यूरल नेटवर्क YaLM 100B.
सराव मध्ये न्यूरल नेटवर्क YaLM 100B.मनोरंजक दिसते. अर्थात, ही फक्त चांगली उदाहरणे आहेत. मी वेगवेगळ्या नमुन्यांवर चाचणी केली. अपेक्षेप्रमाणे, संदर्भ जितका चांगला असेल तितका अधिक अर्थपूर्ण मजकूर तयार होईल. प्रायोगिक पिढ्यांचा संपूर्ण संच दुव्यांवर पाहिला जाऊ शकतो:

किमतीसाठी, प्रशिक्षण आणि तयारीपासून पिढीपर्यंत वेगवेगळ्या क्षमतेचे सर्व्हर भाड्याने देण्यासाठी मला सुमारे 9 हजार रूबल खर्च आला. एक विशिष्ट निराशा अशी होती की आपण सर्व काही त्वरित निर्माण करू शकत नाही. सुरू होण्यास बराच वेळ लागतो आणि सर्व्हरची प्रति तास किंमत लक्षात घेता मजकूर आम्हाला पाहिजे तितक्या लवकर तयार होत नाही.
सराव मध्ये न्यूरल नेटवर्क YaLM 100B. 

200Gb GPU RAM शिवाय YaLM कसे चालवायचे?

कॉन्फिगरेशनमध्ये तुम्हाला डीपस्पीड शून्य ऑफलोड जोडण्याची आवश्यकता आहे. आम्ही कशाबद्दल बोलत आहोत हे ज्यांना माहित आहे त्यांच्यासाठी हे करणे खूप सोपे होईल. इतरांसाठी, हे काही क्षुल्लक काम नाही. हे जाणून घेणे महत्त्वाचे आहे की ऑफलोड एकतर CPU RAM किंवा NVMe मध्ये असू शकते. तुम्ही सध्या NVMe बद्दल विसरू शकता, कारण. खूप मोठ्या प्रमाणात डेटावर प्रक्रिया केली जात आहे आणि डिस्क त्याचा सामना करू शकत नाही. शून्य ऑफलोड CPU अधिक वास्तविक आहे. खरे आहे, यासाठी तुमच्याकडे स्टॉकमध्ये 200+ Gb CPU RAM असणे आवश्यक आहे, जे स्वस्त देखील नाही. आणि एक मजकूर सुमारे 20-40 मिनिटांसाठी व्युत्पन्न केला जाईल, कारण तो अद्याप दोन व्हिडिओ कार्डवर समांतर करणे शक्य झाले नाही. जसे आपण खालील स्क्रीनशॉटमध्ये पाहू शकता, फक्त एक व्हिडिओ कार्ड पिढीमध्ये सामील होता, आणि नंतर केवळ एक चतुर्थांश मेमरीसाठी. सर्व 24 GB का वापरले जात नाहीत हे पाहणे बाकी आहे,
सराव मध्ये न्यूरल नेटवर्क YaLM 100B.बरं, शेवटी, मी म्हणेन की एका RTX 3070 TI वर देखील चालणे शक्य आहे. पण यात काही विशेष अर्थ नाही, कारण. NVMe तुम्हाला स्वॅपमध्ये 150 GB डेटा त्वरीत प्रक्रिया करण्याची परवानगी देणार नाही, जे 96 GB RAM च्या परिशिष्टात आहे.
सराव मध्ये न्यूरल नेटवर्क YaLM 100B.

सारांश

अर्थात, मी अजूनही इष्टतम लाँच मार्ग शोधण्याचा प्रयत्न करेन. पण आत्तापर्यंत मी या निष्कर्षावर पोहोचलो आहे की YaLM 100b माझ्या कामांसाठी खूप महाग आहे / खूप मंद आहे. त्याच पैशासाठी, लोक बरेच आणि बरेच चांगले लिहतील. पण मला वाटते की ते तात्पुरते आहे, आम्ही पाहू. तुम्हाला लाँच करण्यासाठी, yalm सेट अप करण्यासाठी मदत हवी असल्यास किंवा तुमच्या संदर्भ उदाहरणांवर परिणाम पाहू इच्छित असल्यास, मेल किंवा टेलिग्रामवर लिहा.

घरी yalm 100b लाँच करणे सुरू ठेवले.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply