አጭር መልስ፡- በመጀመሪያ ነጂው እና ጂፒዩ በ nvidia-smi ፣ ከዚያም ተኳሃኝ የሆነ ማዕቀፍ/CUDA ቁልል በመጫን እና ትንሽ “ሞዴል + ባች በ cuda” ሙከራ ያሂዱ። ከማስታወሻ ውጪ ከሆኑ የባች መጠንን ይቀንሱ እና አጠቃቀምን፣ ማህደረ ትውስታን እና የሙቀት መጠኖችን እየተከታተሉ የተደባለቀ ትክክለኛነትን ይጠቀሙ።
ቁልፍ ነጥቦች፡
መሰረታዊ ፍተሻዎች nvidia-smi ይጀምሩ ፤ ማዕቀፎችን ከመጫንዎ በፊት የአሽከርካሪ ታይነትን ያስተካክሉ።
የቁልል ተኳሃኝነት ፡- ብልሽቶችን እና የተበላሹ ጭነቶችን ለመከላከል የአሽከርካሪ፣ የCUDA የአሂድ ጊዜ እና የፍሬምዌር ስሪቶችን አቀናጅ።
ጥቃቅን ስኬት ፡ ሙከራዎችን ከማሳደግዎ በፊት በCUDA ላይ አንድ ጊዜ ወደፊት ማለፍዎን ያረጋግጡ።
የVRAM ዲሲፕሊን ፡- ትላልቅ ሞዴሎችን ለመገጣጠም በተደባለቀ ትክክለኛነት፣ በቅልመት ክምችት እና በቼክአውት ላይ ይመረኮዙ።
የክትትል ልማድ ፡- የአጠቃቀም፣ የማስታወስ ንድፎችን፣ የኃይል እና የሙቀት መጠንን ይከታተሉ፣ በዚህም ምክንያት ችግሮችን ቀደም ብለው ያስተውሉ።

ከዚህ ጽሑፍ በኋላ ሊያነቧቸው የሚችሏቸው ጽሑፎች፡
🔗 የ AI ወኪል እንዴት መገንባት እንደሚቻል
የወኪልዎን የስራ ፍሰት፣ መሳሪያዎች፣ ማህደረ ትውስታ እና የደህንነት ጠባቂዎች ይንደፉ።.
🔗 የ AI ሞዴሎችን እንዴት ማሰማራት እንደሚቻል
አካባቢዎችን ያዘጋጁ፣ የጥቅል ሞዴሎችን ያዘጋጁ እና በአስተማማኝ ሁኔታ ወደ ምርት ይላኩ።.
🔗 የ AI አፈፃፀምን እንዴት እንደሚለካ
መለኪያዎችን ይምረጡ፣ ግምገማዎችን ያሂዱ እና ከጊዜ በኋላ አፈጻጸምን ይከታተሉ።.
🔗 በ AI አማካኝነት ተግባራትን በራስ-ሰር እንዴት ማድረግ እንደሚቻል
ተደጋጋሚ ስራን በጥያቄዎች፣ የስራ ፍሰቶች እና ውህደቶች በራስ-ሰር ያድርጉ።.
1) ትልቁ ምስል - "ጂፒዩ ሲለማመዱ" የሚያደርጉት ነገር 🧠⚡
የAI ሞዴሎችን ሲያሠለጥኑ፣ በአብዛኛው የማትሪክስ ሒሳብ ተራራ እየሰሩ ነው። ጂፒዩዎች ለዚያ አይነት ትይዩ ስራ የተገነቡ ናቸው፣ ስለዚህ እንደ PyTorch፣ TensorFlow እና JAX ያሉ ማዕቀፎች ከባድ ማንሻውን ወደ ጂፒዩ ማውረድ ይችላሉ። ( PyTorch CUDA ሰነዶች ፣ TensorFlow install (pip) ፣ JAX Quickstart )
በተግባር፣ “የ NVIDIA ጂፒዩዎችን ለስልጠና መጠቀም” ብዙውን ጊዜ ማለት፡
-
የሞዴል መለኪያዎችዎ (በአብዛኛው) በጂፒዩ ቪአርኤም ውስጥ ይኖራሉ
-
የእርስዎ ቡድኖች በእያንዳንዱ ደረጃ ከ RAM ወደ VRAM ይዛወራሉ
-
የፊት ማለፊያዎ እና የኋላ ፕሮፕዎ በCUDA ከርነሎች ላይ ይሰራሉ ( የCUDA ፕሮግራሚንግ መመሪያ )
-
የእርስዎ የማመቻቻ ዝማኔዎች በጂፒዩ (በሐሳብ ደረጃ) ላይ ይከሰታሉ
-
የሙቀት መጠንን፣ የማስታወስ ችሎታን እና አጠቃቀምን ይከታተላሉ ስለዚህ ምንም ነገር አያበስሉም 🔥 ( የ NVIDIA nvidia-smi docs )
ያ ብዙ የሚመስል ከሆነ፣ አይጨነቁ። በአብዛኛው የማረጋገጫ ዝርዝር እና በጊዜ ሂደት የምትገነቧቸው ጥቂት ልማዶች ናቸው።.
2) የ NVIDIA GPU AI ስልጠና ማዋቀር ጥሩ ስሪት የሚያደርገው ምንድን ነው 🤌
ይህ "በጄሊ ላይ ቤት አትገንቡ" ክፍል ነው። ለኤንአይ ስልጠና የNVIDIA ጂፒዩዎችን እንዴት መጠቀም እንደሚቻል ዝቅተኛ ድራማ ያለው ነው። ዝቅተኛ ድራማ የተረጋጋ ነው። የተረጋጋ ፈጣን ነው። ፈጣን ነው… ደህና፣ ፈጣን ነው 😄
ጠንካራ የሥልጠና ቅንብር ብዙውን ጊዜ የሚከተሉትን ያካትታል:
-
ለባች መጠንዎ + ሞዴልዎ + አመቻች ሁኔታዎችዎ በቂ VRAM
-
ቪአርኤም (VRAM) እንደ ሻንጣ ቦታ ነው። በብልሃት ማሸግ ይችላሉ፣ ነገር ግን ማለቂያ የሌለውን ማሸግ አይችሉም።.
-
-
የተጣጣመ የሶፍትዌር ቁልል (ድራይቨር + CUDA runtime + framework compatibility) ( PyTorch Get Starter (CUDA selector) ፣ TensorFlow install (pip) )
-
ፈጣን ማከማቻ (NVMe ለትላልቅ የውሂብ ስብስቦች በጣም ይረዳል)
-
ጥሩ ሲፒዩ + ራም ስላለው የውሂብ ጭነት ጂፒዩን አያረካውም ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
-
የማቀዝቀዣ እና የኃይል ጭንቅላት ክፍል (እስካሁን ድረስ ዝቅተኛ ደረጃ የተሰጠው 😬)
-
ሊባዛ የሚችል አካባቢ (ቬንቪ/ኮንዳ ወይም ኮንቴይነሮች) ስለዚህ ማሻሻያዎች ትርምስ እንዳይሆኑ ( የNVIDIA ኮንቴይነር Toolkit አጠቃላይ እይታ )
እና ሰዎች የሚዘለሉት አንድ ተጨማሪ ነገር፦
-
የክትትል ልማድ - በሚነዱበት ጊዜ መስተዋቶችን እንደሚፈትሹ ሁሉ የጂፒዩ ማህደረ ትውስታን እና አጠቃቀምን ይፈትሹ። ( የ NVIDIA nvidia-smi docs )
3) የንፅፅር ሰንጠረዥ - ከ NVIDIA GPUs ጋር ለማሰልጠን ታዋቂ መንገዶች (ከችግር ጋር) 📊
ከታች “የትኛውን ይስማማል?” የሚል አጭር የማጭበርበሪያ ወረቀት አለ። ዋጋዎች አስቸጋሪ ናቸው (ምክንያቱም እውነታው ስለሚለያይ)፣ እና አዎ፣ ከእነዚህ ሴሎች ውስጥ አንዱ ትንሽ ሆን ተብሎ የተንዛዛ ነው።.
| መሳሪያ / አቀራረብ | ለ ምርጥ | ዋጋ | ለምን እንደሚሰራ (በአብዛኛው) |
|---|---|---|---|
| ፓይቶርክ (ቫኒላ) ፓይቶርክ | አብዛኛዎቹ ሰዎች፣ አብዛኛዎቹ ፕሮጀክቶች | ፍርይ | ተለዋዋጭ፣ ግዙፍ ሥነ-ምህዳር፣ ቀላል ማረም - እንዲሁም ሁሉም ሰው አስተያየት አለው |
| የፓይቶርክ መብረቅ የመብረቅ ሰነዶች | ቡድኖች፣ የተዋቀረ ስልጠና | ፍርይ | የቦይለርፕሌት መጠንን ይቀንሳል፣ ዑደቶችን ያጸዳል፤ አንዳንድ ጊዜ “አስማት” እስኪመስል ድረስ |
| የፊት ትራንስፎርመሮች ማቀፍ + የአሰልጣኝ አሰልጣኝ ሰነዶች | የNLP + LLM ማስተካከያ | ፍርይ | ባትሪዎች የተካተቱበት ስልጠና፣ ምርጥ ነባሪዎች፣ ፈጣን ድሎች 👍 |
| የተፋጠነ ሰነዶችን ማፋጠን | ህመም የሌለበት ባለብዙ-ጂፒዩ | ፍርይ | DDPን ያነሰ የሚያበሳጭ ያደርገዋል፣ ሁሉንም ነገር እንደገና ሳይጽፉ ለማሳደግ ጥሩ ነው |
| የዲፕስፒድ ዜሮ ሰነዶች | ትላልቅ ሞዴሎች፣ የማስታወስ ዘዴዎች | ፍርይ | ዜሮ፣ ጭነት ማውረድ፣ ልኬት ማስተካከል - ጠቅ ሲያደርጉት አሰልቺ ነገር ግን አርኪ ሊሆን ይችላል። |
| የቴንሶርፍሎው + የኬራስ ቲኤፍ ጭነት | የምርት ቧንቧዎች | ፍርይ | ጠንካራ የመሳሪያ መሳሪያ፣ ጥሩ የማሰማሪያ ታሪክ፤ አንዳንድ ሰዎች ይወዱታል፣ አንዳንዶቹ በጸጥታ አይወዱትም |
| JAX + Flax JAX ፈጣን ጅምር / Flax ሰነዶች | ምርምር + የፍጥነት ነርዶች | ፍርይ | የXLA ማጠናቀር እጅግ በጣም ፈጣን ሊሆን ይችላል፣ ነገር ግን ማረም ሊመስል ይችላል… ማጠቃለያ |
| የNVIDIA NeMo NeMo አጠቃላይ እይታ | የንግግር + የኤልኤልኤም የስራ ፍሰቶች | ፍርይ | በNVIDIA የተመቻቸ ቁልል፣ ጥሩ የምግብ አዘገጃጀት መመሪያዎች - በሚያምር ምድጃ ማብሰል ይመስላል 🍳 |
| የዶከር + የNVIDIA ኮንቴይነር Toolkit Toolkit አጠቃላይ እይታ | ሊባዙ የሚችሉ አካባቢዎች | ፍርይ | "በማሽኔ ላይ ይሰራል" የሚለው ቃል "በማሽኖቻችን ላይ ይሰራል" (በአብዛኛው እንደገና) |
4) ደረጃ አንድ - ጂፒዩዎ በትክክል መታየቱን ያረጋግጡ 🕵️♂️
አስራ ሁለት ነገሮችን ከመጫንዎ በፊት መሰረታዊ ነገሮችን ያረጋግጡ።.
እውነት መሆን የምትፈልጋቸው ነገሮች፡-
-
ማሽኑ የጂፒዩ (ጂፒዩ) ያያል
-
የ NVIDIA ሾፌር በትክክል ተጭኗል
-
ጂፒዩ ሌላ ነገር እያደረገ አይደለም
-
በአስተማማኝ ሁኔታ መጠየቅ ይችላሉ
ክላሲክ ቼክ የሚከተለው ነው፡
-
nvidia-smi( NVIDIA nvidia-smi docs )
የምትፈልጉት ነገር፦
-
የጂፒዩ ስም (ለምሳሌ፣ RTX፣ A-series፣ ወዘተ)
-
የአሽከርካሪ ስሪት
-
የማህደረ ትውስታ አጠቃቀም
-
የሩጫ ሂደቶች ( NVIDIA nvidia-smi docs )
የnvidia-smi ካለ ፣ እዚያው ያቁሙ። ማዕቀፎችን ገና አይጫኑ። ምድጃዎ ሳይሰካ ዳቦ ለመጋገር እንደመሞከር ነው። ( NVIDIA የስርዓት አስተዳደር በይነገጽ (NVSMI) )
ትንሽ የሰው ልጅ ማስታወሻ፡ አንዳንድ ጊዜ nvidia-smi ይሰራል ነገር ግን ስልጠናዎ አሁንም ይከሽፋል ምክንያቱም በማዕቀፍዎ የሚጠቀመው የCUDA የስራ ጊዜ ከአሽከርካሪዎች ግምት ጋር አይጣጣምም። ያ እርስዎ ሞኝ አይደሉም። ያ ነው… ልክ እንደዚህ ነው 😭 ( PyTorch Get Starter (CUDA selector) ፣ TensorFlow install (pip) )
5) የሶፍትዌር ቁልልን ይገንቡ - ሾፌሮች፣ CUDA፣ cuDNN እና “ተኳሃኝነት ዳንስ” 💃
ሰዎች ሰዓታትን የሚያጡበት ቦታ ይህ ነው። ብልሃቱ ፡ መንገድ ይምረጡ እና በእሱ ላይ ይጣሉት ።
አማራጭ ሀ፡ በፍሬምፎርም የተጠቀለለ CUDA (ብዙውን ጊዜ በጣም ቀላሉ)
ብዙ የ PyTorch ግንባታዎች የራሳቸውን የ CUDA የስራ ጊዜ በመጠቀም ይላካሉ፣ ይህ ማለት በስርዓቱ በሙሉ የተጫነ ሙሉ የ CUDA የመሳሪያ ስብስብ አያስፈልግዎትም ማለት ነው። በአብዛኛው የሚያስፈልግዎ ተኳሃኝ የሆነ የ NVIDIA ነጂ ብቻ ነው። ( PyTorch Get Starter (CUDA selector) ፣ ቀዳሚዎቹ የ PyTorch ስሪቶች (CUDA ጎማዎች) )
ጥቅሞች፡
-
ያነሱ የሚንቀሳቀሱ ክፍሎች
-
ቀላል ጭነቶች
-
በአካባቢ ላይ የበለጠ ሊባዛ የሚችል
ጉዳቶች፡
-
አካባቢን በተራ ነገር ካቀላቀሉት፣ ግራ ሊጋቡ ይችላሉ
አማራጭ ለ፡ የስርዓት CUDA የመሳሪያ ስብስብ (ተጨማሪ ቁጥጥር)
የCUDA ኪትልን በስርዓቱ ላይ ትጭናለህ እና ሁሉንም ነገር ከእሱ ጋር ታስተካክላለህ። ( የCUDA Toolkit ሰነዶች )
ጥቅሞች፡
-
ለብጁ ግንባታዎች ተጨማሪ ቁጥጥር፣ አንዳንድ ልዩ መሳሪያዎች
-
የተወሰኑ ኦፕስቶችን ለማጠናቀር ምቹ
ጉዳቶች፡
-
ስሪቶችን ለማዛመድ እና በጸጥታ ለማልቀስ ተጨማሪ መንገዶች
cuDNN እና NCCL፣ በሰው ልጅ አነጋገር
-
cuDNN ጥልቅ የመማሪያ የመጀመሪያ ደረጃዎችን (ኮንቮሉሽንስ፣ RNN ቢትስ፣ ወዘተ) ያፋጥናል ( NVIDIA cuDNN ሰነዶች )
-
NCCL ለብዙ-ጂፒዩ ስልጠና ፈጣን "ከጂፒዩ-ወደ-ጂፒዩ ግንኙነት" ቤተ-መጽሐፍት ነው ( የNCCL አጠቃላይ እይታ )
ባለብዙ ጂፒዩ ስልጠና የሚወስዱ ከሆነ፣ NCCL የቅርብ ጓደኛዎ ነው - እና አንዳንድ ጊዜ ደግሞ ቁጡ የክፍል ጓደኛዎ ነው። ( የNCCL አጠቃላይ እይታ )
6) የመጀመሪያው የጂፒዩ ስልጠናዎ (የፒቶርች ምሳሌ አስተሳሰብ) ✅🔥
የNVIDIA ጂፒዩዎችን ለAI ስልጠና እንዴት መጠቀም እንደሚቻል ለመከታተል ፣ መጀመሪያ ትልቅ ፕሮጀክት አያስፈልግዎትም። ትንሽ ስኬት ያስፈልግዎታል።
ዋና ሀሳቦች፡-
-
መሣሪያን ፈልግ
-
ሞዴሉን ወደ ጂፒዩ ያስተላልፉ
-
ቴንሰሮችን ወደ ጂፒዩ ውሰድ
-
የወደፊት ማለፊያ ሂደቶቹን እዚያ ያረጋግጡ ( PyTorch CUDA ሰነዶች )
ሁልጊዜም ጤንነቴን ቀደም ብዬ የማጣራባቸው ነገሮች፡-
-
torch.cuda.is_available()ትሩይመልሳል ( torch.cuda.is_available ) -
next(model.parameters()).devicecudaያሳያል ( PyTorch Forum: check model on CUDA ) -
አንድ የባች ወደፊት ማለፊያ ስህተት አይሠራም
-
ስልጠና ሲጀምሩ የጂፒዩ ማህደረ ትውስታ ይጨምራል (ጥሩ ምልክት!) ( NVIDIA nvidia-smi docs )
የተለመደ "ለምን ቀርፋፋ ነው?"
-
የውሂብ ጫኚዎ በጣም ቀርፋፋ ነው (ጂፒዩ ስራ ፈትቶ እየጠበቀ ነው) ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
-
ውሂብን ወደ ጂፒዩ (ኡፕስ) ማዛወር ረስተዋል
-
የባች መጠን ትንሽ ነው (ጂፒዩ ብዙም ጥቅም ላይ አልዋለም)
-
በስልጠና ደረጃ ላይ ከባድ የሲፒዩ ቅድመ-ሂደት እያደረጉ ነው
እንዲሁም፣ አዎ፣ የጂፒዩዎ ችግር መረጃ ከሆነ ብዙውን ጊዜ "ብዙ ስራ የማይበዛበት" ይመስላል። ልክ እንደ የእሽቅድምድም መኪና አሽከርካሪ መቅጠር እና በእያንዳንዱ ዙር ነዳጅ እንዲጠብቁ ማድረግ ነው።.
7) የVRAM ጨዋታ - የባች መጠን፣ የተደባለቀ ትክክለኛነት እና የማይፈነዳ 💥🧳
አብዛኛዎቹ ተግባራዊ የስልጠና ችግሮች የሚጀምሩት ከማስታወስ ጋር ነው። አንድ ክህሎት ከተማሩ፣ የVRAM አስተዳደርን ይማሩ።.
የማህደረ ትውስታ አጠቃቀምን ለመቀነስ ፈጣን መንገዶች
-
የተቀላቀለ ትክክለኛነት (FP16/BF16)
-
ብዙውን ጊዜ ከፍተኛ የፍጥነት ጭማሪም እንዲሁ። ማሸነፍ-ማሸነፍ-ኢሽ 😌 ( የ PyTorch AMP ሰነዶች ፣ TensorFlow የተቀላቀለ ትክክለኛ መመሪያ )
-
-
የግራዲየንት ክምችት
-
በበርካታ ደረጃዎች ላይ ግሬዲየሞችን በማከማቸት ትልቅ የባች መጠንን አስመስሉ ( የትራንስፎርመሮች ስልጠና ሰነዶች (የግራዲየንት ክምችት፣ fp16) )
-
-
አነስተኛ የቅደም ተከተል ርዝመት / የመከርከም መጠን
-
ጨካኝ ግን ውጤታማ
-
-
የማግበር የፍተሻ ፍተሻ
-
ለማህደረ ትውስታ (በኋላ በኩል በሚደረጉ ማግበሪያዎች ላይ እንደገና ማስላት) ( torch.utils.checkpoint )
-
-
ቀለል ያለ አመቻች ይጠቀሙ
-
አንዳንድ አመቻቾች VRAM የሚያኝኩ ተጨማሪ ሁኔታዎችን ያከማቻሉ
-
"እኔ ካቆምኩ በኋላ ለምን VRAM አሁንም ይሞላል?" የሚለው ቅጽበት
ፍሬምወርኮች ብዙውን ጊዜ ማህደረ ትውስታን ይሸከማሉ ። ይህ የተለመደ ነው። አስፈሪ ይመስላል ግን ሁልጊዜ መፍሰስ አይደለም። ቅጦችን ማንበብ ይማራሉ። ( PyTorch CUDA ትርጉሞች፡ caching allocator )
ተግባራዊ ልማድ፦
-
የተመደበው ሰዓት እና የተያዘ ማህደረ ትውስታ (በማዕቀፍ ላይ የተመሰረተ) ( PyTorch CUDA ትርጉሞች፡ መሸጎጫ አሎካተር )
-
በመጀመሪያው አስፈሪ ቁጥር አትደናገጡ 😅
8) ጂፒዩ በትክክል እንዲሰራ ያድርጉ - ጊዜዎን የሚጠቅም የአፈጻጸም ማስተካከያ 🏎️
በፍጥነት ማግኘት ሁለተኛው እርምጃ ነው።
ከፍተኛ ተጽዕኖ ማሳደጊያዎች
-
የቡድኑን መጠን ይጨምሩ (እስኪጎዳ ድረስ፣ ከዚያም በትንሹ ወደኋላ ይመለሱ)
-
የተጣበቀ ማህደረ ትውስታን ይጠቀሙ (ፈጣን የአስተናጋጅ-ወደ-መሳሪያ ቅጂዎች) ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ ፣ የ PyTorch pin_memory/non_blocking አጋዥ ስልጠና )
-
የውሂብ ጫኚ ሠራተኞችን ጨምር (ጥንቃቄ ያድርጉ፣ በጣም ብዙ ሰዎች ወደ ኋላ ሊመለሱ ይችላሉ) ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
-
ጂፒዩ ስራ እንዳይፈታ ባችዎችን አስቀድመው
-
ሲገኝ የተዋሃዱ ኦፕስ / የተሻሻሉ ከርነሎችን ይጠቀሙ
-
የተደባለቀ ትክክለኛነትን ይጠቀሙ (እንደገና፣ በጣም ጥሩ ነው) ( የ PyTorch AMP ሰነዶች )
በጣም ችላ የተባለ ችግር
የማከማቻዎ እና የቅድመ-ሂደት መስመርዎ። የውሂብ ስብስብዎ ትልቅ እና በዝግታ ዲስክ ላይ የሚከማች ከሆነ፣ ጂፒዩዎ ውድ የሆነ የቦታ ማሞቂያ ይሆናል። በጣም የላቀ፣ በጣም የሚያብረቀርቅ የቦታ ማሞቂያ።.
እንዲሁም፣ ትንሽ ኑዛዜ፡- ለአንድ ሰዓት ያህል ሞዴልን "አመቻችቼዋለሁ" ግን እንጨት መቆፈር ችግር እንደሆነ ተገነዘብኩ። ከመጠን በላይ ማተም ስልጠናውን ሊያዘገይ ይችላል። አዎ፣ ይችላል።.
9) ባለብዙ-ጂፒዩ ስልጠና - DDP፣ NCCL እና ያለ ትርምስ ልኬት 🧩🤝
ተጨማሪ ፍጥነት ወይም ትላልቅ ሞዴሎችን አንዴ ከፈለጉ፣ ባለብዙ-ጂፒዩ (multi-GPU) ይሆናሉ። ነገሮች ቅመም የሚፈጥሩበት ቦታ ይህ ነው።.
የተለመዱ አቀራረቦች
-
የውሂብ ትይዩ (DDP)
-
ቡድኖችን በጂፒዩዎች መካከል ይከፋፍሉ፣ ቅልመቶችን ያመሳስሉ
-
ብዙውን ጊዜ ነባሪው “ጥሩ” አማራጭ ( PyTorch DDP ሰነዶች )
-
-
ሞዴል ትይዩ/ቴንሰር ትይዩ
-
ሞዴሉን በጂፒዩዎች (በጣም ትላልቅ ለሆኑ ሞዴሎች) ይከፋፍሉት
-
-
የቧንቧ መስመር ትይዩ
-
የሞዴል ንብርብሮችን ወደ ደረጃዎች ይክፈሉ (እንደ የመገጣጠሚያ መስመር፣ ግን ለቴንሰርስ)
-
ለመጀመር እየሞከሩ ከሆነ፣ የዲዲፒ አይነት ስልጠና ምርጡ ቦታ ነው። ( የፒቶርች ዲዲፒ አጋዥ ስልጠና )
ተግባራዊ ባለብዙ ጂፒዩ ምክሮች
-
ጂፒዩዎች ተመሳሳይ ችሎታ እንዳላቸው ያረጋግጡ (የመቀላቀል ጣሳዎች ማደባለቅ)
-
የክትትል ሰዓት፡ NVLink ከ PCIe ጋር ሲመሳሰል ከባድ የሥራ ጫናዎችን በተመለከተ አስፈላጊ ነው ( የNVIDIA NVLink አጠቃላይ እይታ ፣ የNVIDIA NVLink ሰነዶች )
-
የእያንዳንዱ-ጂፒዩ ባች መጠኖችን ሚዛናዊ ያድርጉት
-
ሲፒዩንና ማከማቻን ችላ አትበሉ - ባለብዙ-ጂፒዩ የውሂብ ማነቆዎችን ሊያጎላ ይችላል
አዎ፣ የNCCL ስህተቶች “ለምን አሁን” በሚለው ምስጢር ውስጥ እንደተጠቀለለ እንቆቅልሽ ሊሰማቸው ይችላል። የተረገሙ አይደላችሁም። ምናልባት። ( የNCCL አጠቃላይ እይታ )
10) ክትትል እና መገለጫ - ሰዓታትን የሚቆጥቡዎት ማራኪ ያልሆኑ ነገሮች 📈🧯
ለመጀመር ምርጥ ዳሽቦርዶች አያስፈልጉዎትም። የሆነ ነገር ሲበላሽ ማስተዋል ያስፈልግዎታል።.
ለመመልከት ቁልፍ ምልክቶች
-
የጂፒዩ አጠቃቀም ፡ በተከታታይ ከፍተኛ ነው ወይስ ሾጣጣ ነው?
-
የማህደረ ትውስታ አጠቃቀም ፡ የተረጋጋ፣ የሚወጣ ወይም እንግዳ?
-
የኃይል መሳብ ፡- ባልተለመደ ሁኔታ ዝቅተኛ አጠቃቀም ማለት በቂ ያልሆነ አጠቃቀም ማለት ሊሆን ይችላል
-
የሙቀት መጠን ፡- ዘላቂ የሆነ ከፍተኛ የሙቀት መጠን አፈፃፀምን ሊያዘገይ ይችላል
-
የሲፒዩ አጠቃቀም ፡ የውሂብ ቧንቧ ችግሮች እዚህ ይታያሉ ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
የአስተሳሰብ መገለጫ (ቀላል ስሪት)
-
ጂፒዩ ዝቅተኛ አጠቃቀም ከሆነ - የውሂብ ወይም የሲፒዩ ክፍተት
-
ጂፒዩ ከፍተኛ ግን ቀርፋፋ ከሆነ - የከርነል ብቃት ማነስ፣ ትክክለኛነት ወይም የሞዴል አርክቴክቸር
-
የስልጠና ፍጥነት በዘፈቀደ ከቀነሰ - የሙቀት መዘጋት፣ የጀርባ ሂደቶች፣ የግብዓት/የመቀየሪያ ችግሮች
አውቃለሁ፣ ክትትል አስደሳች አይመስልም። ግን ልክ እንደ ፍሎር ማድረቅ ነው። ያበሳጫል፣ ከዚያ በድንገት ሕይወትዎ ይሻሻላል።.
11) መላ መፈለግ - የተለመዱ ተጠርጣሪዎች (እና ብዙም ያልተለመዱ) 🧰😵💫
ይህ ክፍል በመሠረቱ፡- “ተመሳሳይ አምስት ጉዳዮች፣ ለዘላለም።”
ችግር፡ CUDA ከማህደረ ትውስታ ውጪ ነው
ጥገናዎች፡
-
የቡድን መጠንን ይቀንሱ
-
የተደባለቀ ትክክለኛነትን ይጠቀሙ ( የ PyTorch AMP ሰነዶች ፣ የ TensorFlow የተደባለቀ ትክክለኛነት መመሪያ )
-
የግራዲየንት ክምችት ( የትራንስፎርመሮች ስልጠና ሰነዶች (የግራዲየንት ክምችት፣ fp16) )
-
የፍተሻ መቆጣጠሪያ ማግበር ( torch.utils.checkpoint )
-
ሌሎች የጂፒዩ ሂደቶችን ዝጋ
ችግር፡ ስልጠናው በሲፒዩ ላይ በድንገት ይሰራል
ጥገናዎች፡
-
ሞዴሉ ወደ
ኩዳ -
ኩዳመዛወራቸውን ያረጋግጡ -
የፍሬምወርክ መሳሪያ ውቅርን ይፈትሹ ( PyTorch CUDA ሰነዶች )
ችግር፡ ያልተለመዱ ብልሽቶች ወይም ህገወጥ የማህደረ ትውስታ መዳረሻ
ጥገናዎች፡
-
የአሽከርካሪውን እና የሩጫ ጊዜ ተኳሃኝነትን ያረጋግጡ ( PyTorch Get Starter (CUDA selector) ፣ TensorFlow install (pip) )
-
ንፁህ ኢንቪ ይሞክሩ
-
ብጁ ኦፕሽንን ይቀንሱ
-
እንደገና ለማባዛት ከተወሰነ-ኢሽ ቅንብሮች ጋር እንደገና ያሂዱ
ችግር፡ ከሚጠበቀው በላይ ቀርፋፋ
ጥገናዎች፡
-
የውሂብ ጫኚውን የመተላለፊያ ይዘት ይፈትሹ ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
-
የቡድን መጠን ጨምር
-
የምዝግብ ማስታወሻን ይቀንሱ
-
የተቀላቀለ ትክክለኛነትን አንቃ ( PyTorch AMP ሰነዶች )
-
የመገለጫ ደረጃ ጊዜ ትንተና
ችግር፡ ባለብዙ-ጂፒዩ ተንጠልጥሏል
ጥገናዎች፡
-
ትክክለኛውን የኋላ ክፍል ቅንብሮችን ያረጋግጡ ( የ PyTorch የተከፋፈሉ ሰነዶች )
-
የNCCL አካባቢ ውቅሮችን ያረጋግጡ (ጥንቃቄ ያድርጉ) ( የNCCL አጠቃላይ እይታ )
-
መጀመሪያ ነጠላ ጂፒዩን ይሞክሩ
-
አውታረ መረብ/ግንኙነት ጤናማ መሆኑን ያረጋግጡ
ትንሽ የኋላ ክትትል ማስታወሻ፡ አንዳንድ ጊዜ ጥገናው ቃል በቃል እንደገና እየተጀመረ ነው። ሞኝነት ይሰማዋል። ይሰራል። ኮምፒውተሮች እንደዚያ ናቸው።.
12) ወጪ እና ተግባራዊነት - ከመጠን በላይ ሳያስቡ ትክክለኛውን የ NVIDIA GPU እና ማዋቀር መምረጥ 💸🧠
በቂ ጂፒዩ ያስፈልግዎታል
መካከለኛ ሞዴሎችን በትክክል እያስተካከሉ ከሆነ
-
ለVRAM እና ለመረጋጋት ቅድሚያ ይስጡ
-
የተደባለቀ ትክክለኛነት ብዙ ይረዳል ( PyTorch AMP ሰነዶች ፣ TensorFlow የተደባለቀ ትክክለኛነት መመሪያ )
-
ብዙውን ጊዜ አንድ ጠንካራ ጂፒዩ በመጠቀም ማምለጥ ይችላሉ።
ከባዶ ትላልቅ ሞዴሎችን እያሠለጠኑ ከሆነ
-
ብዙ ጂፒዩዎች ወይም በጣም ትልቅ VRAM ይፈልጋሉ
-
የNVIDIA NVLink አጠቃላይ እይታ ፣ የNCCL አጠቃላይ እይታ ) ያሳስባሉ
-
ምናልባት የማህደረ ትውስታ ማመቻቻዎችን (ዜሮ፣ offload፣ ወዘተ) ትጠቀማለህ ( DeepSpeed ZeRO docs ፣ Microsoft Research: ZeRO/DeepSpeed )
ሙከራ እያደረጉ ከሆነ
-
ፈጣን ድግግሞሽ ይፈልጋሉ
-
ገንዘብዎን በሙሉ በጂፒዩ ላይ አያውሉ እና ከዚያ ማከማቻ እና ራም አያጥፉ
-
ሚዛናዊ የሆነ ስርዓት የተዘበራረቀ ስርዓትን ያሸንፋል (አብዛኛውን ጊዜ)
እውነቱን ለመናገር፣ “ፍጹም” የሆኑ የሃርድዌር ምርጫዎችን በማሳደድ ሳምንታትን ማባከን ይችላሉ። የሚሰራ ነገር ይገንቡ፣ ይለኩ፣ ከዚያም ያስተካክሉ። እውነተኛው ጠላት የግብረመልስ ዑደት አለመኖሩ ነው።.
የመዝጊያ ማስታወሻዎች - አእምሮዎን ሳያጡ የ NVIDIA GPUs ለ AI ስልጠና እንዴት መጠቀም እንደሚቻል 😌✅
NVIDIA GPUs ን ለ AI ስልጠና እንዴት መጠቀም እንደሚቻል ሌላ ምንም ነገር ካልወሰዱ የሚከተለውን ይውሰዱ፦
-
መጀመሪያ
nvidia-smiያረጋግጡ NVIDIA nvidia-smi docs ) -
ንጹህ የሶፍትዌር መንገድ ይምረጡ (በማዕቀፍ የተጠቀለለ CUDA ብዙውን ጊዜ በጣም ቀላል ነው) ( PyTorch Get Starter (CUDA selector) )
-
ከመጨመርዎ በፊት ትንሽ የጂፒዩ ስልጠና ሩጫ ያረጋግጡ ( torch.cuda.is_available )
-
VRAMን ልክ እንደ ውስን የጓዳ መደርደሪያ አድርገው ያቀናብሩት
-
የተደባለቀ ትክክለኛነትን ቀደም ብለው ይጠቀሙ - “የላቁ ነገሮች” ብቻ አይደለም ( PyTorch AMP ሰነዶች ፣ TensorFlow የተደባለቀ ትክክለኛነት መመሪያ )
-
ቀርፋፋ ከሆነ፣ የጂፒዩ ( PyTorch Performance Tuning Guide )
-
ባለብዙ-ጂፒዩ ኃይለኛ ነው ነገር ግን ውስብስብነትን ቀስ በቀስ ይጨምራል - ልኬት ( የ PyTorch DDP ሰነዶች ፣ የ NCCL አጠቃላይ እይታ )
-
ችግሮች ቀደም ብለው እንዲታዩ የአጠቃቀም እና የሙቀት መጠንን ይቆጣጠሩ ( NVIDIA nvidia-smi docs )
በNVIDIA ጂፒዩዎች ላይ ስልጠና መስጠት አስፈሪ ከሚመስሉ ክህሎቶች አንዱ ነው፣ ከዚያም በድንገት... የተለመደ ነው። ልክ እንደ መንዳት መማር። መጀመሪያ ላይ ሁሉም ነገር ጮክ ብሎ እና ግራ የሚያጋባ ይሆናል እና ጎማውን በጣም ጠበቅ አድርገው ይይዛሉ። ከዚያም አንድ ቀን ጉዞ ላይ እያሉ፣ ቡና እየጠጡ እና የቡድን መጠን ችግርን እንደ ቀላል ነገር እያስተካከሉ ነው ☕😄
ተደጋጋሚ ጥያቄዎች
የ AI ሞዴልን በ NVIDIA GPU ላይ ማሰልጠን ምን ማለት ነው?
በNVIDIA ጂፒዩ ላይ ስልጠና ማለት የሞዴል መለኪያዎችዎ እና የስልጠና ቡድኖችዎ በጂፒዩ VRAM ውስጥ ይኖራሉ ማለት ሲሆን ከባድ የሂሳብ ስሌት (forward pass፣ backprop፣ optimizer steps) በCUDA ከርነሎች በኩል ይከናወናል። በተግባር፣ ይህ ብዙውን ጊዜ የሚመነጨው ሞዴሉ እና ቴንሰሮቹ በ cuda ፣ ከዚያም በማስታወስ፣ በአጠቃቀም እና በሙቀት መጠን ላይ ክትትል በማድረግ ነው፣ በዚህም throughput ወጥነት ያለው ሆኖ ይቆያል።
ሌላ ማንኛውንም ነገር ከመጫንዎ በፊት የ NVIDIA GPU እየሰራ መሆኑን እንዴት ማረጋገጥ እንደሚቻል
በ nvidia-smi ። የጂፒዩ ስም፣ የአሽከርካሪው ስሪት፣ የአሁኑ የማህደረ ትውስታ አጠቃቀም እና ማንኛውንም የአሂድ ሂደቶችን ማሳየት አለበት። nvidia-smi ካልተሳካ፣ PyTorch/TensorFlow/JAX ን ያቁሙ - በመጀመሪያ የአሽከርካሪውን ታይነት ያስተካክሉ። የጂፒዩ ስልጠናን "በምድጃ ውስጥ ተሰክቷል" የሚለውን የመነሻ መስመር መፈተሽ ነው።
ከ PyTorch ጋር በተጣመረ የስርዓት CUDA እና CUDA መካከል መምረጥ
የተለመደው አቀራረብ በማዕቀፍ የተጠቀለለ CUDA (እንደ ብዙ የ PyTorch ጎማዎች) መጠቀም ነው ምክንያቱም የሚንቀሳቀሱ ክፍሎችን ስለሚቀንስ - በዋናነት ተኳሃኝ የሆነ የ NVIDIA ነጂ ያስፈልግዎታል። ሙሉውን የስርዓት CUDA የመሳሪያ ስብስብ መጫን ተጨማሪ ቁጥጥርን ይሰጣል (ብጁ ግንባታዎች፣ ኦፕስ ማጠናቀር)፣ ነገር ግን ለስሪት አለመጣጣሞች እና ለአሂድ ጊዜ ስህተቶች ግራ የሚያጋቡ ተጨማሪ እድሎችን ያስተዋውቃል።.
በ NVIDIA GPU እንኳን ስልጠና አሁንም ቀርፋፋ ሊሆን የሚችለው ለምንድን ነው?
ብዙውን ጊዜ ጂፒዩ በግቤት መስመር ይራባል። የሚዘገዩ የውሂብ ጫኚዎች፣ በስልጠና ደረጃው ውስጥ ከባድ የሲፒዩ ቅድመ-ሂደት፣ ትናንሽ የባች መጠኖች ወይም ቀርፋፋ ማከማቻ ሁሉም ኃይለኛ ጂፒዩ እንደ ስራ ፈት የቦታ ማሞቂያ እንዲመስል ሊያደርጉት ይችላሉ። የውሂብ ጫኚ ሰራተኞችን መጨመር፣ የተጣበቀ ማህደረ ትውስታን ማንቃት፣ ቅድመ-ማውጣት መጨመር እና የምዝግብ ማስታወሻ መቁረጥ ሞዴሉን ከመውቀስዎ በፊት የተለመዱ የመጀመሪያ እርምጃዎች ናቸው።.
በ NVIDIA GPU ስልጠና ወቅት "CUDA ከማህደረ ትውስታ ውጪ" ስህተቶችን እንዴት መከላከል እንደሚቻል
አብዛኛዎቹ ጥገናዎች የVRAM ስልቶች ናቸው፡ የባች መጠንን ይቀንሱ፣ የተደባለቀ ትክክለኛነትን ያንቁ (FP16/BF16)፣ የግራዲየንት ክምችትን ይጠቀሙ፣ የቅደም ተከተል ርዝመት/የሰብል መጠንን ያሳጥሩ፣ ወይም የማግበር የፍተሻ መቆጣጠሪያን ይጠቀሙ። እንዲሁም ማህደረ ትውስታን የሚወስዱ ሌሎች የጂፒዩ ሂደቶችን ያረጋግጡ። አንዳንድ ሙከራዎች እና ስህተቶች የተለመዱ ናቸው - የVRAM በጀት ማውጣት በተግባራዊ የጂፒዩ ስልጠና ውስጥ ዋና ልማድ ይሆናል።.
የስልጠና ስክሪፕት ካለቀ በኋላ VRAM አሁንም ሙሉ ሊመስል የሚችለው ለምንድን ነው?
ፍሬምወርኮች ብዙውን ጊዜ የጂፒዩ ማህደረ ትውስታን ለፍጥነት ያከማቻሉ፣ ስለዚህ የተያዘ ማህደረ ትውስታ የተመደበው የማህደረ ትውስታ ጠብታዎች ቢቀነሱም እንኳ ከፍተኛ ሆኖ ሊቆይ ይችላል። እንደ መፍሰስ ሊመስል ይችላል፣ ነገር ግን ብዙውን ጊዜ የመሸጎጫ አሎካተሩ እንደተዘጋጀው እየሰራ ነው። ተግባራዊ ልማዱ ስርዓተ ጥለቱን በጊዜ ሂደት መከታተል እና በአንድ አስደንጋጭ ቅጽበታዊ ገጽ እይታ ላይ ከመቀመጥ ይልቅ "የተመደበው ከ የተያዘው" ጋር ማወዳደር ነው።.
አንድ ሞዴል በሲፒዩ ላይ በጸጥታ እየተለማመደ አለመሆኑን እንዴት ማረጋገጥ እንደሚቻል
የንፅህና አጠባበቅ-በቅድሚያ ያረጋግጡ፡- ያረጋግጡ torch.cuda.is_available() ይመልሳል እውነት ፣ ያረጋግጡ next(model.parameters()).device cuda ያሳያል ፣ እና ያለምንም ስህተቶች አንድ ወደፊት ማለፊያ ያሂዱ። አፈፃፀሙ አጠራጣሪ በሆነ መልኩ ቀርፋፋ ሆኖ ከተሰማዎት፣ የእርስዎ ስብስቦች ወደ ጂፒዩ እየተዛወሩ መሆናቸውን ያረጋግጡ። ሞዴሉን ማንቀሳቀስ እና በድንገት ውሂቡን መተው የተለመደ ነው።
ወደ ባለብዙ ጂፒዩ ስልጠና በጣም ቀላሉ መንገድ
የውሂብ ትይዩ (የDDP አይነት ስልጠና) ብዙውን ጊዜ በጣም ጥሩው የመጀመሪያ እርምጃ ነው፡- በጂፒዩዎች እና በማመሳሰል ቅልመት መከፋፈል። እንደ Accelerate ያሉ መሳሪያዎች ሙሉ በሙሉ እንደገና ሳይጻፍ ባለብዙ-ጂፒዩን ህመም ለመቀነስ ይችላሉ። ተጨማሪ ተለዋዋጮችን ይጠብቁ - የNCCL ግንኙነት፣ የማገናኘት ልዩነቶች (NVLink ከ PCIe ጋር) እና የተጨመሩ የውሂብ ማነቆዎች - ስለዚህ ጠንካራ ነጠላ-ጂፒዩ ከተጀመረ በኋላ ቀስ በቀስ መለካት የተሻለ ይሆናል።.
ችግሮችን ቀደም ብሎ ለመያዝ በ NVIDIA GPU ስልጠና ወቅት ምን መከታተል እንዳለበት
የጂፒዩ አጠቃቀምን፣ የማህደረ ትውስታ አጠቃቀምን (የተረጋጋ ወይም የሚወጣ)፣ የኃይል መሳብ እና የሙቀት መጠኖችን ይመልከቱ - መጨናነቅ ፍጥነትን በጸጥታ ሊያሟጥጥ ይችላል። የውሂብ ቧንቧ ችግር ብዙውን ጊዜ መጀመሪያ ላይ ስለሚከሰት የሲፒዩ አጠቃቀምንም ይከታተሉ። አጠቃቀሙ ደካማ ወይም ዝቅተኛ ከሆነ፣ የI/O ወይም የውሂብ ጫኚዎችን ይገምግሙ፤ ከፍተኛ ከሆነ ግን የእርምጃ ጊዜ አሁንም ቀርፋፋ ከሆነ፣ የመገለጫ ከርነሎች፣ የትክክለኛነት ሁነታ እና የእርምጃ ጊዜ ብልሽት።.
ማጣቀሻዎች
-
NVIDIA - NVIDIA nvidia-smi docs - docs.nvidia.com
-
NVIDIA - NVIDIA የስርዓት አስተዳደር በይነገጽ (NVSMI) - developer.nvidia.com
-
NVIDIA - NVIDIA NVLink አጠቃላይ እይታ - nvidia.com
-
PyTorch - PyTorch Get Start (CUDA selector) - pytorch.org
-
PyTorch - PyTorch CUDA ሰነዶች - docs.pytorch.org
-
TensorFlow - TensorFlow install (pip) - tensorflow.org
-
JAX - JAX Quickstart - docs.jax.dev
-
ፊቱን ማቀፍ - አሰልጣኝ ሰነዶች - huggingface.co
-
የመብረቅ AI - የመብረቅ ሰነዶች - lightning.ai
-
ዲፕስፒድ - ዜሮ ሰነዶች - deepspeed.readthedocs.io
-
የማይክሮሶፍት ሪሰርች - የማይክሮሶፍት ሪሰርች፡ ZeRO/DeepSpeed - microsoft.com
-
የፓይቶርክ መድረኮች - የፓይቶርክ መድረክ፡ በCUDA ላይ ያለውን ሞዴል ይመልከቱ - discuss.pytorch.org