વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.

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

જૂનના અંતમાં, યાન્ડેક્સે
100 બિલિયન પેરામીટર્સ સાથેનું એક ન્યુરલ નેટવર્ક જાહેર કર્યું જેને YaLM 100B કહેવાય છે . તે પબ્લિક ડોમેનમાં સૌથી મોટું GPT જેવું ન્યુરલ નેટવર્ક છે. તે જણાવે છે કે તેઓએ કેવી રીતે શીખવ્યું, શ્રેષ્ઠ ઉદાહરણો બતાવ્યા અને ન્યુરોન શું સક્ષમ છે. પરંતુ શું તે વ્યવહારમાં એટલું સારું અને ઘરે લાગુ છે? લેખ આ વિશે મૌન છે, વધુમાં, તેને ચલાવવું અને તપાસવું એટલું સરળ નથી, કારણ કે આશરે 200 જીબી જીપીયુ રેમ જરૂરી છે. હેબ્રે પરની
આ ટિપ્પણી પરિસ્થિતિને સૌથી સચોટ રીતે દર્શાવે છે
.

કથિત રીતે, યાન્ડેક્સમાં, આવા બધા સ્માર્ટ લોકો, અને તેઓએ સામાન્ય કેવી રીતે કરવું તે પણ પોસ્ટ કર્યું નથી. મોટા મૉડલ માટે કોઈ api નથી, સામાન્ય લોકો (Google Colabમાં) માટે કોઈ રેડીમેઇડ સ્ટ્રીપ્ડ-ડાઉન મિડિયમ કે નાનું મૉડલ નથી. મોડેલ કેવી રીતે સેટ કરવું, ટેક્સ્ટ કેવી રીતે જનરેટ કરવું તે અંગે કોઈ ઉદાહરણ આપવામાં આવ્યું નથી. તે માત્ર એટલું જ છે કે લેખ અભ્યાસુઓ માટે કેટલીક ઘોંઘાટ સૂચવે છે અને બસ. બેંકે “C” અક્ષર સાથે કેવી રીતે કર્યું અને તે જ કરવું તે નજીકથી જોવા માટે પૂરતું છે. મને એવી છાપ મળી કે આ મોડેલ નિષ્ફળ પ્રયોગોમાંનું એક છે જે કચરાપેટીમાં ફેંકી દેવાની દયા હતી, તેથી યાન્ડેક્સ કેવા મહાન મોડેલો બનાવે છે તે બતાવવા માટે તેને ઓપન સોર્સમાં પોસ્ટ કરવામાં આવ્યું હતું, અને વધુમાં, તે ઓપન સોર્સ છે!

ઈન્ટરનેટ પર ઘણા બધા પ્રશ્નો છે કે યાલમ કેવી રીતે ચલાવવી અથવા તો ઓનલાઈન પ્રયાસ પણ કરવો, પરંતુ આના કોઈ જવાબો નથી. આ પ્રશ્નો પૂછનારા વપરાશકર્તાઓમાં હું હતો. અને તે બહાર figuring વિશે સુયોજિત કરો. કારણ કે મને ખરેખર નાણાકીય રોબોટ્સ માટે પાઠો જનરેટ કરવાની રીતની જરૂર હતી. જેથી તેઓ નાણાકીય અહેવાલોના આધારે માત્ર મૂલ્યો જ નહીં, પણ ટેક્સ્ટમાં તેના પર ટિપ્પણી પણ કરી શકે. સારમાં, આર્ટિફિશિયલ ઇન્ટેલિજન્સનો ઉપયોગ કરીને નાણાકીય વિશ્લેષકો જે કરે છે તે જ હશે. યાલમ ચલાવવાની બે રીત છે.
ક્લાઉડમાં સર્વર ભાડે લો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.સ્ત્રોતોમાં બનાવતી વખતે, Ubuntu ML (મશીન લર્નિંગ) પસંદ કરો. આ ફરજિયાત છે જેથી વિડિયો કાર્ડ્સ ગોઠવવામાં આવે અને વધારામાં કંઈપણ ઇન્સ્ટોલ કરવાની જરૂર નથી.

સર્વર બનાવતી વખતે, ક્વોટા સાથે ઘોંઘાટ હોય છે, તમને અનુભૂતિ થઈ શકે છે કે સાધન ઉપલબ્ધ નથી, પરંતુ હકીકતમાં તમારે ફક્ત સેટિંગ્સમાં ક્વોટા વધારવાની જરૂર છે. સર્વર સક્રિય થયા પછી (તેમાં 5-10 મિનિટ લાગી શકે છે), સર્વર સાથે ssh દ્વારા અથવા સીધા જ સર્વર પૃષ્ઠ પર વેબ કન્સોલમાં કનેક્ટ થાઓ અને આદેશનો અમલ કરો.

nvidia-smi

પરિણામ વિડિઓ કાર્ડ્સ, ડ્રાઇવર સંસ્કરણ અને ક્યુડા સાથેનું ટેબલ હોવું જોઈએ. લગભગ આના જેવું.
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.ડ્રાઇવર સંસ્કરણ હેડરમાં અને ક્યાં. ડાબી બાજુએ ઉપકરણ નંબરો છે, મધ્યમાં ઉપકરણ મેમરીનું કદ છે. જો તમારી પાસે આ માહિતી નથી, તો તમે ખોટા સ્ત્રોતમાંથી સર્વર એકત્રિત કર્યું છે. ઉપર વર્ણવ્યા મુજબ, ઉબુન્ટુ ML (મશીન લર્નંગ) જરૂરી છે.

2. YaLM સાથે રીપોઝીટરીને ક્લોન કરો

સુડો ગિટ ક્લોન https://github.com/yandex/YaLM-100B/ યાલમ
સીડી યાલમ

તમારા હોમ ફોલ્ડરમાં ક્લોન કરો જેથી તમારે પછીથી ડોકર રૂપરેખામાં ફેરફાર કરવાની જરૂર ન પડે. જો બીજે ક્યાંક ક્લોન કરેલ હોય, તો
અહીં જાઓ અને જ્યાં ક્લોન કરેલ હોય ત્યાંનો રસ્તો ઉમેરો.

3. ચેકપોઇન્ટ ડાઉનલોડ કરો (મૂળભૂત મોડેલ તાલીમ માહિતી)

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 યાલમ
સુડો chmod +x ./docker/*
sudo bash ./docker/build.sh

તે પણ લગભગ એક કલાક છે.

જીવન હેક. તમે ચેકપોઇન્ટ ડાઉનલોડ કરી શકો છો, ડોકર ઇન્સ્ટોલ કરી શકો છો અને એક વિડિયો કાર્ડ વડે સસ્તા સર્વર પર કન્ટેનર બનાવી શકો છો. તે સમયસર સમાન હશે, જેથી તમે થોડી બચત કરી શકો. સસ્તા સર્વર પર એસેમ્બલી કર્યા પછી, અમે તેને કાઢી નાખીએ છીએ, અને સસ્તા સર્વરમાંથી ડિસ્કનો ઉપયોગ કરીને લડાઇ સર્વર બનાવીએ છીએ. પછી તમે એસેમ્બલીની રાહ જોવા અને ચેકપોઇન્ટ્સ બહાર કાઢવા માટે વધુ સમય ચૂકવશો નહીં.

6. સામગ્રી તૈયાર કરો

6.1 ચેકપોઇન્ટ્સ

ચેકપોઇન્ટ્સનું ડાઉનલોડ સમાપ્ત થયા પછી, તમારે તેમને રૂપરેખાઓમાં સરકી જવાની જરૂર છે. ત્યાં બે માર્ગો છે, યોગ્ય પરિમાણો અથવા ટ્રાન્સફર ચેકપોઇન્ટ. દરેક જગ્યાએ એવી અપેક્ષા રાખવામાં આવે છે કે ચેકપોઇન્ટ્સ અનુક્રમે પ્રોજેક્ટની મુખ્ય ડિરેક્ટરીમાં હશે, જે ડાઉનલોડ કરવામાં આવ્યું છે તે ઉપરના ડાઉનલોડ ફોલ્ડરમાંથી ટ્રાન્સફર કરવું આવશ્યક છે. યાલમ ફોલ્ડરમાં હોવાથી એક્ઝિક્યુટ કરો

mv ./download/yalm100b_checkpoint ./

અથવા ઉદાહરણ ફાઇલોમાં ફાઇલોના પાથ બદલો
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 વિડિઓ કાર્ડ્સ

અમે તપાસીએ છીએ કે વિડિઓ કાર્ડ્સ યોગ્ય રીતે સેટ છે. જો તમારી પાસે આઠ વિડીયો કાર્ડ છે, તો કંઈપણ બદલવાની જરૂર નથી. જો સંખ્યા અલગ હોય, તો અમે આ રેખાઓ બદલીએ છીએ
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.બીજી લાઇનમાં, ઉપયોગમાં લેવાતા ઉપકરણોની સંખ્યા (તમે તેને nvidia-smi માં જોઈ શકો છો, જે તમે પહેલેથી જ લૉન્ચ કર્યું છે). ચોથામાં, તેમની સંખ્યા.

7. ડોકર કન્ટેનર ચલાવો

યાલમ ફોલ્ડરમાં હોવાથી, આદેશ ચલાવો

sudo bash ./docker/run.sh

જો બધું બરાબર છે, તો પછી તમને એક કન્ટેનર પર લઈ જવામાં આવશે જેમાં તમારે તમારી હોમ ડિરેક્ટરીમાં યાલમ ફોલ્ડરમાં જવાની જરૂર છે.

cd ~/yalm

8. YaLM 100B માંથી ઉદાહરણ ચલાવો

અમે ઉદાહરણોમાંથી એક લોન્ચ કરવા માટે તૈયાર છીએ. તેઓ અહીં વર્ણવેલ
છે .

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

ધીરજ રાખો, જ્યાં સુધી GPT મોડલ ન બને અને ચેકપોઇન્ટમાંથી વજન લોડ ન થાય ત્યાં સુધી બીજી 10-15 મિનિટ રાહ જોવાની બાકી છે.
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.

જ્યારે બિલ્ડ સમાપ્ત થાય છે, ત્યારે મેગાટ્રોનએમએલ તમને ટેક્સ્ટ જનરેટ કરવા સંદર્ભ દાખલ કરવા માટે સંકેત આપશે. જ્યારે તમે ટાઇપ કરો ત્યારે સાવચેત રહો. ચોક્કસ સંજોગોમાં, એક ભૂલ થાય છે, પ્રોગ્રામ ક્રેશ થાય છે અને તમારે ફરીથી એસેમ્બલી શરૂ કરવાની જરૂર છે. તેથી, ફાઇલમાંથી ટેક્સ્ટ લેતા ઉદાહરણોનો ઉપયોગ કરવો વધુ સારું છે.

9. કાર્યના પરિણામો

વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.રસપ્રદ લાગે છે. અલબત્ત, આ માત્ર સારા ઉદાહરણો છે. મેં જુદા જુદા નમૂનાઓ પર પરીક્ષણ કર્યું. અપેક્ષા મુજબ, સંદર્ભ જેટલો સારો હશે, તેટલો વધુ અર્થપૂર્ણ ટેક્સ્ટ જનરેટ થશે. પ્રાયોગિક પેઢીઓનો સંપૂર્ણ સેટ લિંક્સ પર જોઈ શકાય છે:

કિંમત માટે, તાલીમ અને તૈયારીથી પેઢી સુધી વિવિધ ક્ષમતાઓના સર્વરો ભાડે આપવા માટે મને લગભગ 9 હજાર રુબેલ્સનો ખર્ચ થયો. એક ખાસ નિરાશા એ હતી કે તમે તરત જ બધું જનરેટ કરી શકતા નથી. તે શરૂ થવામાં ઘણો લાંબો સમય લે છે અને સર્વર પ્રતિ કલાકના ખર્ચને જોતાં ટેક્સ્ટ અમે ઈચ્છીએ તેટલી ઝડપથી જનરેટ થતું નથી.
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B. 

200Gb GPU રેમ વિના YaLM કેવી રીતે ચલાવવું?

તમારે રૂપરેખામાં ડીપસ્પીડ ઝીરો ઓફલોડ ઉમેરવાની જરૂર છે. જેઓ જાણે છે કે અમે શું વાત કરી રહ્યા છીએ, તેમના માટે તે કરવું ખૂબ જ સરળ હશે. અન્ય લોકો માટે, આ બિલકુલ મામૂલી કાર્ય નથી. તે જાણવું અગત્યનું છે કે ઑફલોડ ક્યાં તો CPU RAM અથવા NVMe માં હોઈ શકે છે. તમે અત્યારે NVMe વિશે ભૂલી શકો છો, કારણ કે. ડેટાની ખૂબ મોટી માત્રા પર પ્રક્રિયા કરવામાં આવી રહી છે અને ડિસ્ક તેની સાથે સામનો કરી શકતી નથી. શૂન્ય ઑફલોડ CPU વધુ વાસ્તવિક છે. સાચું, આ માટે તમારી પાસે સ્ટોકમાં 200+ Gb CPU RAM હોવી જરૂરી છે, જે સસ્તી પણ નથી. અને એક ટેક્સ્ટ લગભગ 20-40 મિનિટ માટે જનરેટ કરવામાં આવશે, કારણ કે તેને બે વિડિયો કાર્ડ્સ પર સમાંતર બનાવવું હજી શક્ય બન્યું નથી. જેમ તમે નીચેના સ્ક્રીનશૉટમાં જોઈ શકો છો, માત્ર એક વિડિઓ કાર્ડ જનરેશનમાં સામેલ હતું, અને પછી માત્ર મેમરીના એક ક્વાર્ટર માટે. તે જોવાનું બાકી છે કે શા માટે બધા 24 જીબીનો ઉપયોગ થતો નથી,
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.સારું, નિષ્કર્ષમાં, હું કહીશ કે એક RTX 3070 TI પર પણ ચલાવવું શક્ય છે. પરંતુ આમાં કોઈ ખાસ અર્થ નથી, કારણ કે. NVMe તમને સ્વેપમાં 150 GB ડેટાની ઝડપથી પ્રક્રિયા કરવાની મંજૂરી આપશે નહીં, જે 96 GB RAM ના જોડાણમાં છે.
વ્યવહારમાં ન્યુરલ નેટવર્ક YaLM 100B.

સારાંશ

અલબત્ત, હું હજુ પણ શ્રેષ્ઠ લોન્ચ પાથ શોધવાનો પ્રયત્ન કરીશ. પરંતુ અત્યાર સુધી હું એવા નિષ્કર્ષ પર આવ્યો છું કે YaLM 100b મારા કાર્યો માટે ખૂબ ખર્ચાળ/ખૂબ ધીમું છે. સમાન પૈસા માટે, લોકો વધુ અને વધુ સારું લખશે. પરંતુ મને લાગે છે કે તે કામચલાઉ છે, અમે જોઈશું. જો તમને યાલમ શરૂ કરવા, સેટઅપ કરવા માટે મદદની જરૂર હોય અથવા તમારા સંદર્ભ ઉદાહરણો પર પરિણામો જોવા માંગતા હોય, તો મેઇલ અથવા ટેલિગ્રામ પર લખો.

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply