አጭር መልስ ፡ የ AI ሞዴሎችን ለማመቻቸት፣ አንድ ዋና ገደብ (ዘግይቶ መኖር፣ ዋጋ፣ ማህደረ ትውስታ፣ ጥራት፣ መረጋጋት ወይም throughput) ይምረጡ፣ ከዚያም ማንኛውንም ነገር ከመቀየርዎ በፊት አስተማማኝ የመነሻ መስመር ይያዙ። መጀመሪያ የቧንቧ መስመር ማነቆዎችን ያስወግዱ፣ ከዚያም እንደ የተደባለቀ ትክክለኛነት እና ባችኪንግ ያሉ ዝቅተኛ አደጋ ያላቸውን ጥቅሞች ይተግብሩ፤ ጥራቱ ከቀጠለ፣ ወደ ኮምፓየር/የሩጫ ጊዜ መሳሪያ ይሂዱ እና አስፈላጊ በሚሆንበት ጊዜ የሞዴል መጠንን በመጠን ወይም በዲስቲሌሽን ብቻ ይቀንሱ።
ቁልፍ ነጥቦች፡
ገደብ ፡ አንድ ወይም ሁለት የዒላማ መለኪያዎችን ይምረጡ፤ ማመቻቸት የነፃ ድል ሳይሆን የልውውጥ አማራጮች ገጽታ ነው።
መለኪያ ፡- የፕሮፋይል እውነተኛ የስራ ጫናዎች በp50/p95/p99፣ በthroughput፣ በአጠቃቀም እና በማህደረ ትውስታ ጫፎች።
ቧንቧ መስመር ፡ ሞዴሉን ከመንካትዎ በፊት ቶኬኒዜሽን፣ የውሂብ ጫኚዎችን፣ ቅድመ-ሂደትን እና ባችቲንግን ያስተካክሉ።
አገልግሎት ፡ መሸጎጫ፣ ሆን ተብሎ ባች ማድረግ፣ ተመሳሳይነት ማስተካከል እና የጅራት መዘግየትን በቅርበት መከታተል።
የጥበቃ ሬይሎች ፡ ከእያንዳንዱ የአፈጻጸም ለውጥ በኋላ ወርቃማ ፕሮምፕልስ፣ የተግባር መለኪያዎች እና የቦታ ፍተሻዎችን ያሂዱ።

🔗 የ AI ሞዴሎችን ውጤታማ በሆነ መንገድ እንዴት መገምገም እንደሚቻል
ሞዴሎችን በፍትሃዊነት እና በአስተማማኝ ሁኔታ ለመፍረድ ቁልፍ መስፈርቶች እና ደረጃዎች።
🔗 በእውነተኛ መለኪያዎች የ AI አፈፃፀምን እንዴት መለካት እንደሚቻል
ለማነፃፀር መለኪያዎችን፣ መዘግየትን፣ ወጪን እና የጥራት ምልክቶችን ይጠቀሙ።
🔗 ከማምረትዎ በፊት የ AI ሞዴሎችን እንዴት መሞከር እንደሚቻል
ተግባራዊ የሙከራ የስራ ፍሰት፡ የውሂብ ክፍፍል፣ የጭንቀት ጉዳዮች እና ክትትል።
🔗 ለይዘት ፈጠራ የ AI አጠቃቀምን በተመለከተ
ሀሳቦችን በፍጥነት ወደ ረቂቆች ይቀይሩ። በተዋቀሩ ጥያቄዎች እና ድግግሞሽ።
1) በተግባር "ማመቻቸት" ማለት ምን ማለት ነው (ምክንያቱም ሁሉም ሰው በተለየ መንገድ ስለሚጠቀምበት) 🧠
ሰዎች “የAI ሞዴልን ማመቻቸት” ሲሉ፣ የሚከተሉትን ሊያመለክቱ ይችላሉ፡
-
ፈጣን ያድርጉት (ዝቅተኛ መዘግየት)
-
ርካሽ ያድርጉት (ያነሱ የጂፒዩ ሰዓቶች፣ የደመና ወጪ ዝቅተኛ)
-
አነስተኛ ያድርጉት (የማህደረ ትውስታ አሻራ፣ የጠርዝ ማሰማራት)
-
የበለጠ ትክክለኛ ያድርጉት (የጥራት ማሻሻያዎች፣ ቅዠቶች ያነሱ)
-
የበለጠ የተረጋጋ ያድርጉት (ያነሰ ልዩነት፣ በምርት ላይ ያነሰ ውድቀት)
-
ለማቅረብ ቀላል ያድርጉት (የፍጥነት መጠን፣ የባች አፈጻጸም፣ ሊገመት የሚችል አፈጻጸም)
ትንሽ የሚያበሳጭ እውነታ ይኸውና፡ እነዚህን ሁሉ በአንድ ጊዜ ከፍ ማድረግ አይችሉም። ማመቻቸት ልክ እንደ ፊኛ መጭመቅ ነው - አንዱን ጎን ወደ ውስጥ በመግፋት ሌላኛው ጎን ብቅ ይላል። ሁልጊዜ አይደለም፣ ነገር ግን ብዙ ጊዜ ለመደራደር እቅድ ማውጣት አለብዎት።.
ስለዚህ ማንኛውንም ነገር ከመንካትዎ በፊት ዋናውን ገደብዎን ይምረጡ
-
ተጠቃሚዎችን በቀጥታ አገልግሎት እየሰጡ ከሆነ፣ ስለ p95 መዘግየት ( AWS CloudWatch ፐርሰንታይሎች ) እና የጅራት አፈፃፀም ( “የጅራት መዘግየት” ምርጥ ልምምድ ) ግድ ይልዎታል 📉
-
ጊዜን ወደ ጥራት እና የጂፒዩ አጠቃቀምን ያስባሉ
-
በመሳሪያዎች ላይ እያሰማሩ ከሆነ፣ ስለ RAM እና ስለ ኃይል 🔋
2) የAI ሞዴል ማሻሻያ ጥሩ ስሪት ምን ይመስላል ✅
ጥሩ የማመቻቸት ስሪት "ቁጥርን ተግባራዊ ማድረግ እና መጸለይ" ብቻ አይደለም። ስርዓት ነው። ምርጥ ቅንብሮች ብዙውን ጊዜ የሚከተሉትን ያካትታሉ፡
-
የምታምነው መሰረታዊ ነገር
፡ የአሁኑን ውጤትህን እንደገና ማባዛት ካልቻልክ ምንም ነገር እንዳሻሻልክ ማወቅ አትችልም። ቀላል… ግን ሰዎች ይዘለላሉ። ከዚያም ይሽከረከራሉ። -
ግልጽ የሆነ የዒላማ መለኪያ
"ፈጣን" ግልጽ አይደለም። "በተመሳሳይ የጥራት ነጥብ ከ900ms ወደ 300ms የp95 መዘግየትን ይቀንሱ" እውነተኛ ኢላማ ነው። -
የጥራት መከላከያዎች
እያንዳንዱ የአፈጻጸም ድል ጸጥ ያለ የጥራት መቀዛቀዝ አደጋ ላይ ይጥላል። ፈተናዎች፣ ምዘናዎች ወይም ቢያንስ የጤና አጠባበቅ ስብስብ ያስፈልግዎታል። -
የሃርድዌር ግንዛቤ
በአንድ ጂፒዩ ላይ ያለ “ፈጣን” ሞዴል በሌላኛው ላይ ሊንሸራተት ይችላል። ሲፒዩዎች የራሳቸው ልዩ ትርምስ ናቸው። -
ተደጋጋሚ ለውጦች፣ ትልቅ-ባንግ ዳግም መጻፍ አይደለም።
አምስት ነገሮችን በአንድ ጊዜ ሲቀይሩ እና አፈፃፀሙ ሲሻሻል፣ ለምን እንደሆነ አያውቁም። ይህም… የሚያስጨንቅ ነው።
ማመቻቸት ጊታርን ማስተካከልን የመሰለ ስሜት ሊሰማው ይገባል - ትናንሽ ማስተካከያዎችን ያድርጉ፣ በቅርበት ያዳምጡ፣ ይድገሙት 🎸። ቢላዎችን እንደ ማዞር ከተሰማዎት የሆነ ችግር አለ።.
3) የንፅፅር ሰንጠረዥ፡ የ AI ሞዴሎችን ለማመቻቸት ታዋቂ አማራጮች 📊
ከዚህ በታች የተለመዱ የማመቻቸት መሳሪያዎች/አቀራረቦች ፈጣን እና ትንሽ ያልተወሳሰበ የንጽጽር ሠንጠረዥ ነው። አይ፣ ፍጹም “ፍትሃዊ” አይደለም - እውነተኛው ህይወትም እንዲሁ አይደለም።.
| መሳሪያ / አማራጭ | ታዳሚዎች | ዋጋ | ለምን እንደሚሰራ |
|---|---|---|---|
PyTorch torch.compile ( PyTorch docs ) |
የፒቶርክ ሰዎች | ፍርይ | የግራፍ ቀረጻ + የኮምፓየር ዘዴዎች ከመጠን በላይ ወጪን ሊቀንሱ ይችላሉ… አንዳንድ ጊዜ አስማታዊ ነው ✨ |
| የ ONNX Runtime ( የ ONNX Runtime ሰነዶች ) | የማሰማራት ቡድኖች | ፍሪ-ኢሽ | ጠንካራ የማጠቃለያ ማሻሻያ፣ ሰፊ ድጋፍ፣ ለመደበኛ አገልግሎት ጥሩ |
| TensorRT ( NVIDIA TensorRT ሰነዶች ) | የNVIDIA ማሰማራት | የተከፈለባቸው ስሜቶች (ብዙውን ጊዜ በጥቅል የተጣመሩ) | ኃይለኛ የከርነል ውህደት + ትክክለኛ አያያዝ፣ ጠቅ ሲደረግ በጣም ፈጣን |
| ዲፕስፒድ ( ዜሮ ሰነዶች ) | የሥልጠና ቡድኖች | ፍርይ | ማህደረ ትውስታ + የመተላለፊያ ማሻሻያ (ዜሮ ወዘተ)። እንደ ጄት ሞተር ሊሰማዎት ይችላል |
| FSDP (PyTorch) ( PyTorch FSDP ሰነዶች ) | የሥልጠና ቡድኖች | ፍርይ | የሻርዶች መለኪያዎች/ግራዲየንስ፣ ትላልቅ ሞዴሎችን ብዙም አስፈሪ እንዳይሆኑ ያደርጋል |
| የቢትሳንድባይት ኳንቲዜሽን ( ቢትሳንድባይት ) | የኤልኤልኤም ቲንከርስ | ፍርይ | ዝቅተኛ ክብደት፣ ከፍተኛ የማስታወስ ችሎታ ቁጠባ - ጥራት ይወሰናል፣ ግን ዋው 😬 |
| ዲስቲሌሽን ( ሂንተን እና ሌሎች፣ 2015 ) | የምርት ቡድኖች | "የጊዜ ወጪ" | አነስተኛ የተማሪ ሞዴል ባህሪን ይወርሳል፣ ብዙውን ጊዜ ለረጅም ጊዜ ምርጥ የ ROI ን ያካትታል |
| መከርከም ( የፓይቶርክ መከርከም አጋዥ ስልጠና ) | ምርምር + ምርት | ፍርይ | የሞተ ክብደትን ያስወግዳል። ከድጋሚ ልምምድ ጋር ሲጣመር በተሻለ ሁኔታ ይሰራል |
| ፍላሽ ትኩረት / የተዋሃዱ ከርነሎች ( ፍላሽአተንት ወረቀት ) | የአፈጻጸም ነርሶች | ፍርይ | ፈጣን ትኩረት፣ የተሻለ የማስታወስ ችሎታ። ለትራንስፎርመሮች እውነተኛ ድል |
| ትሪቶን ኢንፈረንስ ሰርቨር ( ዳይናሚክ ባቺንግ ) | ኦፕስ/ኢንፍራራ | ፍርይ | የምርት አቅርቦት፣ ባች ማድረግ፣ ባለብዙ ሞዴል ቧንቧዎች - እንደ ድርጅት አይነት ስሜት ይፈጥራል |
የክሪኬት ኑዛዜን መቅረጽ፡- “ዋጋ” ያልተስተካከለ ነው ምክንያቱም ክፍት ምንጭ ቅዳሜና እሁድ የማረም ወጪ ሊያስወጣዎት ይችላል፣ ይህም… ዋጋ ነው። 😵💫
4) በመለኪያ ይጀምሩ፡- ልክ እንደፈለጉት መገለጫ 🔍
ከዚህ መመሪያ አንድ ነገር ብቻ ካደረጉ፣ ይህንን ያድርጉ፡ በትክክል ይለኩ።.
በራሴ ሙከራ፣ ትልቁ “የማመቻቸት ግኝቶች” የመጣው በሚያሳፍር ሁኔታ ቀላል የሆነ ነገር በማግኘቴ ነው፡
-
የውሂብ ጫኚው ጂፒዩን እያራበ ነው
-
የሲፒዩ ቅድመ-ሂደት ማነቆ
-
ትናንሽ የባች መጠኖች የከርነል ጅምርን ያስከትላሉ
-
ቀርፋፋ ቶኬኒዜሽን (ቶኬኒዘሮች ጸጥ ያሉ ተንኮለኞች ሊሆኑ ይችላሉ)
-
የማህደረ ትውስታ ክፍፍል ( የ PyTorch CUDA የማስታወሻ ምደባ ማስታወሻዎች )
-
አንድ ንብርብር የሚቆጣጠረው ስሌት
ምን እንደሚለካ (ዝቅተኛው ስብስብ)
-
መዘግየት (p50፣ p95፣ p99) ( የዘገየ መዘግየት መቶኛ ላይ SRE )
-
የመተላለፊያ (ቶከን/ሰከንድ፣ ጥያቄዎች/ሰከንድ)
-
የጂፒዩ አጠቃቀም (ስሌት + ማህደረ ትውስታ)
-
የVRAM / RAM ጫፎች
-
በ1ሺህ ቶከኖች (ወይም በአንድ ግምት)
ተግባራዊ የመገለጫ አስተሳሰብ
-
የሚያስቡበትን አንድ ሁኔታ ይግለጹ (የመጫወቻ ጥያቄ አይደለም)።.
-
ሁሉንም ነገር በትንሽ “የጥራት ማስታወሻ ደብተር” ውስጥ ይመዝግቡ።
አዎ፣ አሰልቺ ነው… ግን በኋላ ላይ እራስዎን ከማቃጠል ያድነዎታል።
(በኮንክሪት የሚጀመር መሳሪያ ከፈለጉ ፡ PyTorch Profiler ( torch.profiler docs ) እና Nsight Systems ( NVIDIA Nsight Systems ) የተለመዱ ተጠርጣሪዎች ናቸው።)
5) የውሂብ + የሥልጠና ማመቻቸት፡ ጸጥተኛው ልዕለ ኃይል 📦🚀
ሰዎች በሞዴል አርክቴክቸር ላይ ይጨነቃሉ እና የቧንቧ መስመርን ይረሳሉ። ይህ በእንዲህ እንዳለ የቧንቧ መስመር ግማሹን የጂፒዩ (ጂፒዩ) በጸጥታ ያቃጥላል።.
በፍጥነት የሚታዩ ቀላል ድሎች
-
(FP16/BF16 የተረጋጋ ከሆነ) ይጠቀሙ PyTorch AMP / torch.amp )
ብዙውን ጊዜ ፈጣን፣ ብዙ ጊዜ ጥሩ ነው - ነገር ግን ቁጥራዊ ልዩነቶችን ይመልከቱ። -
የባች መጠን ሲገደብ የግራዲየንት ክምችት 🤗 የፍጥነት መመሪያ )
ማህደረ ትውስታን ሳይፈነዳ ማመቻቸት የተረጋጋ እንዲሆን ያደርጋል። -
የግራዲየንት ፍተሻ ( torch.utils.checkpoint )
ለትውስታ ማስላት ይጠቀምበታል - ትላልቅ አውዶችን ተግባራዊ ያደርጋል። -
ቀልጣፋ ቶኬኒዜሽን ( 🤗 ቶኬኒዘሮች )
ቶኬኒዜሽን በመጠን ደረጃ ማነቆ ሊሆን ይችላል። ማራኪ አይደለም፤ አስፈላጊ ነው። -
የውሂብ ጫኚ ማስተካከያ
ተጨማሪ ሰራተኞች፣ የተጣበቀ ማህደረ ትውስታ፣ ቅድመ-ማውጣት - የማይታይ ግን ውጤታማ 😴➡️💪 ( የ PyTorch የአፈጻጸም ማስተካከያ መመሪያ )
ፓራሜትር-ውጤታማ የሆነ የማጣራት ማስተካከያ
ትላልቅ ሞዴሎችን እያስተካከሉ ከሆነ፣ የPEFT ዘዴዎች (እንደ LoRA አይነት አዳፕተሮች ያሉ) የስልጠና ወጪን በከፍተኛ ሁኔታ ሊቀንሱ ይችላሉ፣ ነገር ግን በሚያስደንቅ ሁኔታ ጠንካራ ሆነው ይቆያሉ ( 🤗 የTransformers PEFT መመሪያ ፣ የLoRA ወረቀት )። ይህ “ለምን ቀደም ብለን አላደረግነውም?” ከሚሉት ጊዜያት አንዱ ነው።
6) የስነ-ህንፃ-ደረጃ ማመቻቸት፡ ሞዴሉን በቀኝ መጠን 🧩
አንዳንድ ጊዜ ለማሻሻል በጣም ጥሩው መንገድ… ለስራው በጣም ትልቅ የሆነ ሞዴል መጠቀም ማቆም ነው። አውቃለሁ፣ ርኩሰት 😄።.
ጥቂት መሰረታዊ ነገሮችን በተመለከተ ጥሪ ያድርጉ፦
-
ሙሉ የአጠቃላይ የስለላ ስሜት ወይም ልዩ ባለሙያተኛ ይፈልጉ እንደሆነ ይወስኑ።.
-
የአውድ መስኮቱን እንደ አስፈላጊነቱ ትልቅ አድርገው ያስቀምጡት፣ ትልቅ አይደለም።.
-
ለሥራው የሰለጠነ ሞዴል (ለምደባ ሥራ የምደባ ሞዴሎች፣ ወዘተ) ይጠቀሙ።.
ተግባራዊ ትክክለኛ የመጠን ስልቶች
-
ለአብዛኛዎቹ ጥያቄዎች
ወደ ትንሽ የጀርባ አጥንት ይቀይሩ ከዚያም "ጠንካራ ጥያቄዎችን" ወደ ትልቅ ሞዴል ያስተላልፉ። -
ባለ ሁለት ደረጃ ቅንብር ይጠቀሙ
ፈጣን የሞዴል ረቂቆች፣ ጠንካራ ሞዴል ያረጋግጣል ወይም ያርማል።
ልክ እንደ ጓደኛ መራጭ - የሚያበሳጭ ግን ውጤታማ ነው። -
የውጤት ርዝመትን ይቀንሱ
የውጤት ቶከኖች ገንዘብ እና ጊዜ ያስወጣሉ። ሞዴልዎ ከተንዛዛ፣ ለትራምብሉ ይከፍላሉ።
ቡድኖች አጠር ያሉ ውጤቶችን በማስፈጸም ወጪን በከፍተኛ ሁኔታ ሲቀንሱ አይቻለሁ። ትንሽ ይመስላል። ይሰራል።.
7) ኮምፓይለር + ግራፍ ማሻሻያ፡ ፍጥነት ከየት እንደሚመጣ 🏎️
ይህ "ኮምፒውተሩን የበለጠ ብልህ የኮምፒውተር ነገሮችን እንዲሰራ ማድረግ" ንብርብር ነው።.
የተለመዱ ቴክኒኮች፡
-
የኦፕሬተር ፊውዥን (የከርነሎችን ውህደት) ( NVIDIA TensorRT “የንብርብር ፊውዥን” )
-
ቋሚ እጥበት (ቅድመ-ስሌት ቋሚ እሴቶች) ( የ ONNX የአሂድ ጊዜ ግራፍ ማሻሻያ )
-
የከርነል ምርጫ ከሃርድዌር ጋር የተስተካከለ ነው
-
የፓይቶንን የላይኛው ክፍል ለመቀነስ የግራፍ ቀረጻ
torch.compileአጠቃላይ እይታ )
በቀላል አነጋገር፡ ሞዴልዎ በሂሳብ ረገድ ፈጣን ሊሆን ይችላል፣ ግን በአሠራር ረገድ ቀርፋፋ ሊሆን ይችላል። ኮምፓይለሮች ያንን የተወሰነ ያስተካክላሉ።.
ተግባራዊ ማስታወሻዎች (እንደ ጠባሳዎች)
-
እነዚህ ማመቻቸት ለሞዴል ቅርፅ ለውጦች ስሜታዊ ሊሆኑ ይችላሉ።.
-
አንዳንድ ሞዴሎች በጣም በፍጥነት ይንቀሳቀሳሉ፣ አንዳንዶቹ ደግሞ እምብዛም አይንቀሳቀሱም።.
-
አንዳንድ ጊዜ ፍጥነት መጨመር እና ግራ የሚያጋባ ስህተት ያጋጥሙዎታል - ልክ እንደ ግሬምሊን ወደ ውስጥ እንደገባ 🧌
ያም ሆኖ፣ ሲሰራ፣ በጣም ንጹህ ከሆኑ ድሎች አንዱ ነው።.
8) ቁጥራዊነት፣ መከርከም፣ ዲስቲሌሽን፡ ማልቀስ ሳያስፈልግ ትንሽ (በጣም ብዙ) 🪓📉
ይህ ሰዎች የሚፈልጉት ክፍል ነው… ምክንያቱም ነፃ አፈፃፀም ስለሚመስል። ሊሆን ይችላል፣ ግን እንደ ቀዶ ጥገና አድርገው መያዝ አለብዎት።.
ቁጥራዊነት (ዝቅተኛ ትክክለኛ ክብደቶች/ማግበሪያዎች)
-
ለመረጃ ፍጥነት እና ማህደረ ትውስታ በጣም ጥሩ
-
አደጋ፡ የጥራት መውደቅ፣ በተለይም በጠርዝ መያዣዎች ላይ
-
ምርጥ ልምምድ፡ በእውነተኛ የሙከራ ስብስብ ላይ ይገምግሙ፣ በስሜት ሳይሆን
ስለሚከተሉት የተለመዱ ጣዕሞች መስማት ይችላሉ፡
-
INT8 (ብዙውን ጊዜ ጠጣር) ( የ TensorRT ኳንቲዝድ አይነቶች )
-
INT4 / ዝቅተኛ-ቢት (ከፍተኛ ቁጠባ፣ የጥራት አደጋ ይጨምራል) ( ቢትሳንድባይትስ ኪ-ቢት ኳንቲዜሽን )
-
የተቀላቀለ መጠን (ሁሉም ነገር ተመሳሳይ ትክክለኛነት አያስፈልገውም)
መከርከም (መለኪያዎችን ማስወገድ)
-
"አስፈላጊ ያልሆኑ" ክብደቶችን ወይም መዋቅሮችን ያስወግዳል ( የ PyTorch የመከርከም አጋዥ ስልጠና )
-
ብዙውን ጊዜ ጥራትን ወደነበረበት ለመመለስ እንደገና ማሰልጠን ያስፈልገዋል
-
ሰዎች ከሚያስቡት በላይ በተሻለ ሁኔታ ይሰራል… በጥንቃቄ ሲሰራ
ዲስቲሌሽን (ተማሪ ከአስተማሪው ይማራል)
ይህ የእኔ ተወዳጅ የረጅም ጊዜ ሊቨር ነው። ዲስቲሌሽን ተመሳሳይ ባህሪ ያለው አነስተኛ ሞዴል ሊፈጥር ይችላል፣ እና ብዙውን ጊዜ ከከፍተኛ መጠን ( በነርቭ አውታረ መረብ ውስጥ እውቀትን ማስፋፋት ) የበለጠ የተረጋጋ ነው።
ፍጹም ያልሆነ ዘይቤ፡ ዲስቴሽን ማለት ውስብስብ የሆነ ሾርባን በማጣሪያ ውስጥ በማፍሰስ እና ትንሽ ሾርባ እንደማግኘት ነው። ሾርባ የሚሰራው በዚህ መንገድ አይደለም፣ ግን ሀሳቡን ተረድተኸዋል።.
9) አገልግሎት እና መደምደሚያ፡ እውነተኛው የጦርነት ዞን 🧯
ሞዴልን "ማመቻቸት" እና አሁንም በመጥፎ ሁኔታ ማገልገል ይችላሉ። አገልግሎት መዘግየት እና ወጪ እውን የሚሆንበት ቦታ ነው።.
ማገልገል ያሸንፋል አስፈላጊው ነገር
-
ባቺንግ
የመተላለፊያ ይዘትን ያሻሽላል። ነገር ግን ከልክ በላይ ካደረጉት መዘግየትን ይጨምራል። ሚዛናዊ ያድርጉት። ( ትሪቶን ዳይናሚክ ባቺንግ ) -
መሸጎጫ
ፈጣን መሸጎጫ እና የKV-መሸጎጫ መልሶ መጠቀም ለተደጋጋሚ አውዶች ትልቅ ሊሆን ይችላል። ( የKV መሸጎጫ ማብራሪያ ) -
የዥረት ውፅዓት
ተጠቃሚዎች አጠቃላይ ጊዜ ተመሳሳይ ቢሆንም እንኳ ፈጣን እንደሆነ ይሰማቸዋል። ግንዛቤ አስፈላጊ ነው 🙂። -
የቶከን-በ-ቶከን የላይቨርሽን ቅነሳ
አንዳንድ ቁልሎች በአንድ ቶከን ተጨማሪ ስራ ይሰራሉ። ያንን ወጪ ይቀንሱ እና ትልቅ ያሸንፋሉ።
የጅራት መዘግየትን ይጠንቀቁ
የእርስዎ አማካይ ክፍል ጥሩ ሊመስል ይችላል፣ የእርስዎ p99 ደግሞ አደጋ ላይ ነው። በሚያሳዝን ሁኔታ ተጠቃሚዎች ከጅራት በታች ይኖራሉ። ( “የጅራት መዘግየት” እና አማካዮች ለምን ይዋሻሉ )
10) የሃርድዌር ግንዛቤ ማመቻቸት፡ ሞዴሉን ከማሽኑ ጋር ያዛምዱት 🧰🖥️
የሃርድዌር ግንዛቤ ሳይኖር ማሻሻል ጎማዎቹን ሳይፈትሹ የእሽቅድምድም መኪናን ማስተካከል ነው። በእርግጥ ማድረግ ይችላሉ፣ ግን ትንሽ ሞኝነት ነው።.
የጂፒዩ ግምት ውስጥ የሚገቡ ነገሮች
-
የማህደረ ትውስታ ባንድዊድዝ ብዙውን ጊዜ የሚገድበው ነገር ነው፣ ጥሬ ኮምፒውተሩ አይደለም
-
ትላልቅ የባች መጠኖች ሊረዱ ይችላሉ፣ እስካልተረዱ ድረስ
-
የከርነል ውህደት እና የትኩረት ማመቻቸት ለትራንስፎርመሮች ትልቅ ናቸው ( ፍላሽአተንት፡ IO-aware ትክክለኛ ትኩረት )
የሲፒዩ ግምት ውስጥ መግባት
-
የክር፣ የቬክተርላይዜሽን እና የማህደረ ትውስታ አካባቢ በጣም አስፈላጊ ናቸው
-
የቶኬኒዜሽን ወጪ የበላይነት ሊኖረው ይችላል ( 🤗 "ፈጣን" ቶኬነሮች )
-
ከጂፒዩ (GPU) ይልቅ የተለያዩ የቁጥር ስልቶች ሊያስፈልጉዎት ይችላሉ
የጠርዝ / የሞባይል ግምት
-
የማስታወስ አሻራ ቅድሚያ የሚሰጠው ቁጥር አንድ ይሆናል
-
የመሳሪያዎች መዘግየት ልዩነት አስፈላጊ ነው ምክንያቱም መሳሪያዎች ስሜታዊ ናቸው…
-
ትናንሽ እና ልዩ ሞዴሎች ብዙውን ጊዜ ትላልቅ አጠቃላይ ሞዴሎችን ይበልጣሉ
11) ጥራት ያላቸው መከላከያዎች፡ እራስዎን ወደ ስህተት "አያሻሽሉ" 🧪
እያንዳንዱ የፍጥነት ድል ከጥራት ፍተሻ ጋር መምጣት አለበት። አለበለዚያ ትደሰታለህ፣ ትልካለህ፣ ከዚያም “ረዳቱ በድንገት እንደ ወንበዴ የሚያወራው ለምንድን ነው?” የሚል መልእክት ታገኛለህ 🏴☠️
ተግባራዊ የመከላከያ ዘንጎች;
-
ወርቃማ ጥያቄዎች (ሁልጊዜ የሚሞክሯቸው ቋሚ የጥያቄዎች ስብስብ)
-
የተግባር መለኪያዎች (ትክክለኛነት፣ F1፣ BLEU፣ የሚስማማው ማንኛውም ነገር)
-
የሰውን የቦታ ምርመራ (አዎ፣ በቁም ነገር)
-
የመመለሻ ገደቦች ("ከ X% በላይ መውደቅ አይፈቀድም")
እንዲሁም የውድቀት ሁነታዎችን ይከታተሉ፦
-
የቅርጸት ድራፍት
-
የባህሪ ለውጦች እምቢ ማለት
-
የቅዠት ድግግሞሽ
-
የምላሽ ርዝመት የዋጋ ግሽበት
ማመቻቸት ባህሪን በሚያስደንቅ ሁኔታ ሊለውጥ ይችላል። በተለይ። በሚያበሳጭ ሁኔታ። በሚገመት ሁኔታ፣ ወደ ኋላ መለስ ብሎ።.
12) የማረጋገጫ ዝርዝር፡- የAI ሞዴሎችን ደረጃ በደረጃ እንዴት ማመቻቸት እንደሚቻል ✅🤖
How to Optimize AI ሞዴሎች ግልጽ የሆነ የአሠራር ቅደም ተከተል ከፈለጉ ፣ ሰዎች ጤናማ እንዲሆኑ የሚያደርገው የስራ ፍሰት ይኸውና
-
ስኬትን ይግለጹ።
1-2 ዋና መለኪያዎችን ይምረጡ (ዘግይቶ መኖር፣ ወጪ፣ የውጤት መጠን፣ ጥራት)። -
የመነሻ መስመርን ይለኩ
የመገለጫ እውነተኛ የስራ ጫናዎችን፣ p50/p95 መዝገብ፣ ማህደረ ትውስታ፣ ወጪ። ( PyTorch Profiler ) -
የቧንቧ መስመር ክፍተቶችን ያስተካክሉ
የውሂብ ጭነት፣ ቶኬኒዜሽን፣ ቅድመ-ሂደት፣ ባችቲንግ። -
ዝቅተኛ አደጋ ያላቸውን የኮምፒውተር ድሎችን ይተግብሩ።
የተደባለቀ ትክክለኛነት፣ የከርነል ማሻሻያ፣ የተሻለ የስብስብ አጠቃቀም። -
የኮምፓይለር/የሩጫ ጊዜ ማሻሻያ ሞክር
የግራፍ ቀረጻ፣ የግምታዊ ጊዜ ሩጫዎች፣ የኦፕሬተር ውህደት። (torch.compiletutorial ፣ ONNX Runtime docs ) -
የሞዴል ወጪን ይቀንሱ
። በጥንቃቄ ቁጥራዊ ያድርጉ፣ ከቻሉ ይቅለሉት፣ አስፈላጊ ከሆነም ይከርክሙት። -
የማቅረቢያ ማስተካከያ
መሸጎጫ፣ ተመሳሳይነት፣ የጭነት ሙከራ፣ የጅራት መዘግየት ጥገናዎች። -
የጥራት ማረጋገጫ
የሪግሬሽን ሙከራዎችን ያሂዱ እና ውጤቶችን ጎን ለጎን ያወዳድሩ። -
መድገም
፣ ግልጽ ማስታወሻዎችን ያውጡ፣ ይድገሙ። የማይታይ - ውጤታማ።
አዎ፣ ይህ አሁንም ቢሆን የAI ሞዴሎችን እንዴት ማመቻቸት እንደሚቻል ነው፣ ምንም እንኳን “በክራኮች ላይ መራመድ እንዴት ማቆም እንደሚቻል” የሚል ስሜት ቢሰማውም። ያው ነገር።
13) የተለመዱ ስህተቶች (ስለዚህ እንደሌሎች ሰዎች እንዳትደግሟቸው) 🙃
-
ከመለካትዎ በፊት ማመቻቸት
ጊዜዎን ያባክናሉ። ከዚያም የተሳሳተውን ነገር በልበ ሙሉነት ያሻሽላሉ… -
አንድ መለኪያ
መለኪያን ማሳደድ በቸልተኝነት የሚመጣ ነው። የስራ ጫናዎ እውነት ነው። -
የማህደረ ትውስታን ችላ ማለት የማህደረ
ትውስታ ችግሮች ፍጥነት መቀነስ፣ ብልሽቶች እና መረበሽ ያስከትላሉ። ( በPyTorch ውስጥ የCUDA ማህደረ ትውስታ አጠቃቀምን መረዳት ) -
ከመጠን በላይ ቀደም ብሎ መቁጠር
ዝቅተኛ-ቢት መጠን አስደናቂ ሊሆን ይችላል፣ ነገር ግን መጀመሪያ ደህንነቱ በተጠበቀ ደረጃዎች ይጀምሩ። -
የመልሶ ማስመለሻ ዕቅድ የለም
በፍጥነት መመለስ ካልቻሉ፣ እያንዳንዱ ማሰማራት አስጨናቂ ይሆናል። ጭንቀት ሳንካዎችን ይፈጥራል።
የመዝጊያ ማስታወሻዎች፡ የሰው ልጅ የማመቻቸት መንገድ 😌⚡
የAI ሞዴሎችን እንዴት ማመቻቸት እንደሚቻል አንድ ነጠላ ዘዴ አይደለም። የተደራረበ ሂደት ነው፡- መለካት፣ የቧንቧ መስመር ማስተካከል፣ ኮምፓየሮችን እና የስራ ጊዜዎችን መጠቀም፣ አቅርቦትን ማስተካከል፣ ከዚያም ሞዴሉን በቁጥር ወይም በዲቲሌሽን መቀነስ አስፈላጊ ከሆነ። ደረጃ በደረጃ ያድርጉት፣ ጥራት ያላቸውን መከላከያዎች ይጠብቁ፣ እና እንደ መለኪያ “ፈጣን ስሜት ይሰማዋል” ብለው አይመኑ (ስሜቶችዎ ደስ የሚሉ ናቸው፣ ስሜቶችዎ መገለጫ ሰጪ አይደሉም)።
አጭር የመመገቢያ ቦታ ከፈለጉ፡
-
መጀመሪያ ይለኩ 🔍
-
የቧንቧ መስመርን ቀጣይ ያመቻቹ 🧵
-
ከዚያ ሞዴሉን ያመቻቹ 🧠
-
ከዚያ አገልግሎትን ያሻሽሉ 🏗️
-
የጥራት ፍተሻዎችን ሁልጊዜ ያድርጉ ✅
እና የሚረዳ ከሆነ፣ እራስዎን ያስታውሱ፡ ግቡ “ፍጹም ሞዴል” አይደለም። ግቡ ፈጣን፣ ተመጣጣኝ ዋጋ ያለው እና አስተማማኝ የሆነ ሞዴል ሲሆን በሌሊት መተኛት ይችላሉ… በአብዛኛዎቹ ምሽቶች 😴።.
ተደጋጋሚ ጥያቄዎች
በተግባር የ AI ሞዴልን ማመቻቸት ምን ማለት ነው
"ማመቻቸት" ማለት ብዙውን ጊዜ አንድ ዋና ገደብ ማሻሻል ማለት ነው፡ መዘግየት፣ ወጪ፣ የማስታወስ አሻራ፣ ትክክለኛነት፣ መረጋጋት ወይም የአቅርቦት መጠን። አስቸጋሪው ክፍል መደራረብ ነው - አንድን አካባቢ መግፋት ሌላውን ሊጎዳ ይችላል። ተግባራዊ አቀራረብ ግልጽ የሆነ ኢላማ መምረጥ (እንደ p95 መዘግየት ወይም ከጊዜ ወደ ጊዜ ጥራት) እና ወደ እሱ ማመቻቸት ነው። ኢላማ ከሌለ "ማሻሻል" እና አሁንም ማጣት ቀላል ነው።.
ጥራትን በጸጥታ ሳይጎዳ የ AI ሞዴሎችን እንዴት ማመቻቸት እንደሚቻል
እያንዳንዱን የፍጥነት ወይም የወጪ ለውጥ እንደ ጸጥተኛ ሪግሬሽን አድርገው ይቁጠሩት። እንደ ወርቃማ ፕሮምፕልስ፣ የተግባር መለኪያዎች እና ፈጣን የሰው ቦታ ፍተሻዎች ያሉ የጥበቃ መደገፊያዎችን ይጠቀሙ። ተቀባይነት ላለው የጥራት መንሸራተት ግልጽ የሆነ ገደብ ያዘጋጁ እና ውጤቶችን ጎን ለጎን ያወዳድሩ። ይህ ከላኩ በኋላ "ፈጣን ነው" ወደ "ለምን በድንገት በምርት ላይ እንግዳ ሆነ?" እንዳይለወጥ ይከላከላል።.
ማመቻቸት ከመጀመርዎ በፊት ምን እንደሚለኩ
በዘገየ ጊዜ መቶኛዎች (p50፣ p95፣ p99)፣ በዝውውር (ቶከን/ሰከንድ ወይም ጥያቄዎች/ሰከንድ)፣ በጂፒዩ አጠቃቀም እና ከፍተኛ የVRAM/ራም (RAM) ይጀምሩ። ወጪ ገደብ ከሆነ በአንድ ግምት ወይም በ1ሺህ ቶከን ወጪን ይከታተሉ። የሚያቀርቡትን እውነተኛ ሁኔታ ይግለጹ፣ የአሻንጉሊት ጥያቄ አይደለም። ትንሽ “ፍጹም ማስታወሻ ደብተር” መያዝ ከመገመት እና ስህተቶችን ከመድገም ይቆጠቡ።.
ለስልጠና አፈፃፀም ፈጣን እና ዝቅተኛ አደጋ ያላቸው ድሎች
የተቀላቀለ ትክክለኛነት (FP16/BF16) ብዙውን ጊዜ ፈጣኑ የመጀመሪያ ሊቨር ነው፣ ነገር ግን የቁጥር ልዩነቶችን ይመልከቱ። የባች መጠን ውስን ከሆነ የግራዲየንት ክምችት ማህደረ ትውስታን ሳያስደነግጥ ማመቻቸትን ማረጋጋት ይችላል። የግራዲየንት ፍተሻ ለዝቅተኛ ማህደረ ትውስታ ተጨማሪ ስሌት ይለውጣል፣ ይህም ትላልቅ አውዶችን ያስችላል። የቶኬኒዜሽን እና የውሂብ ጫኝ ማስተካከያን ችላ አይበሉ - በጸጥታ ጂፒዩን ሊያረኩ ይችላሉ።.
ቶርክ.ኮምፒል፣ ኦኤንኤክስ ሩቲም ወይም ቴንሶርRT መቼ መጠቀም እንዳለቦት
እነዚህ መሳሪያዎች የአሠራር ወጪን ያነጣጠሩ ናቸው፡ የግራፍ ቀረጻ፣ የከርነል ውህደት እና የሩጫ ጊዜ ግራፍ ማመቻቸት። ንጹህ የማጠቃለያ ፍጥነትን ሊያቀርቡ ይችላሉ፣ ነገር ግን ውጤቶቹ እንደ ሞዴል ቅርፅ እና ሃርድዌር ይለያያሉ። አንዳንድ አቀማመጦች እንደ አስማት ይሰማቸዋል፤ ሌሎች ደግሞ እምብዛም አይንቀሳቀሱም። ለቅርጽ ለውጦች ስሜታዊነት እና አልፎ አልፎ "ግሬምሊን" ሳንካዎችን ይጠብቁ - ከእውነተኛ የስራ ጫናዎ በፊት እና በኋላ ይለኩ።.
በቁጥር መለካቱ ዋጋ ያለው መሆኑን እና ከመጠን በላይ ከመሄድ እንዴት መቆጠብ እንደሚቻል
ኳንቲዜሽን ማህደረ ትውስታን ሊቀንስ እና መደምደሚያዎችን ሊያፋጥን ይችላል፣ በተለይም በ INT8፣ ነገር ግን ጥራት በጠርዝ ጉዳዮች ላይ ሊንሸራተት ይችላል። ዝቅተኛ-ቢት አማራጮች (እንደ INT4/k-bit ያሉ) ከፍተኛ አደጋ ያለው ትልቅ ቁጠባ ያመጣሉ። በጣም ደህንነቱ የተጠበቀው ልማድ በእውነተኛ የሙከራ ስብስብ ላይ መገምገም እና ውጤቶችን ማወዳደር ነው፣ የሆድ ስሜት አይደለም። በመጀመሪያ ደህንነቱ በተጠበቀ ደረጃዎች ይጀምሩ፣ ከዚያ አስፈላጊ ከሆነ ብቻ ዝቅተኛ ትክክለኛነትን ያድርጉ።.
የሞዴል መጠንን ለመቀነስ በመቁረጥ እና በማጣራት መካከል ያለው ልዩነት
መቆረጥ “የሞተ ክብደት” መለኪያዎችን ያስወግዳል እና በተለይም በኃይል ሲደረግ ጥራቱን መልሶ ለማግኘት እንደገና ሥልጠና ያስፈልገዋል። ዲስቲሌሽን አነስተኛ የተማሪ ሞዴልን ትልቅ አስተማሪ ባህሪ እንዲመስል ያሠለጥናል፣ እና ከከፍተኛ መጠን ይልቅ ጠንካራ የረጅም ጊዜ ROI ሊሆን ይችላል። በተመሳሳይ መልኩ የሚሰራ እና የተረጋጋ ሆኖ የሚቆይ ትንሽ ሞዴል ከፈለጉ ዲስቲሌሽን ብዙውን ጊዜ ንፁህ መንገድ ነው።.
የማገልገል ማሻሻያዎችን በማድረግ የማጠቃለያ ወጪን እና መዘግየትን እንዴት መቀነስ እንደሚቻል
አገልግሎት ማመቻቸት ተጨባጭ የሚሆንበት ቦታ ነው፡- ባች ማድረግ የመተላለፊያ ውፅዓትን ያሻሽላል ነገር ግን ከልክ በላይ ከተደረገ መዘግየትን ሊጎዳ ይችላል፣ ስለዚህ በጥንቃቄ ያስተካክሉት። መሸጎጫ (ፈጣን መሸጎጫ እና የKV-መሸጎጫ እንደገና ጥቅም ላይ ማዋል) አውዶች ሲደጋገሙ ትልቅ ሊሆን ይችላል። የዥረት ውፅዓት አጠቃላይ ጊዜ ተመሳሳይ ቢሆንም እንኳ የተገነዘበውን ፍጥነት ያሻሽላል። እንዲሁም በስቶክዎ ውስጥ የቶከን-በ-ቶከን ኦቨርን ይፈልጉ - አነስተኛ የቶከን ስራ በፍጥነት ይጨምራል።.
የ AI ሞዴሎችን ሲያመቻቹ የጅራት መዘግየት ለምን በጣም አስፈላጊ ነው?
አማካይ ቁጥሮች ጥሩ ሆነው ሊታዩ ይችላሉ፣ p99 ደግሞ አደጋ ሲሆን ተጠቃሚዎች ደግሞ በጅራት ውስጥ የመኖር አዝማሚያ አላቸው። የጅራት መዘግየት ብዙውን ጊዜ የሚመጣው ከንዝረት ነው፡ የማስታወስ መከፋፈል፣ የሲፒዩ ቅድመ-ሂደት ጭማሪዎች፣ የቶኬኒዜሽን ፍጥነት መቀነስ ወይም ደካማ የቡድን ስራ ባህሪ። ለዚህም ነው መመሪያው በመቶኛዎች እና በእውነተኛ የስራ ጫናዎች ላይ አፅንዖት የሚሰጠው። p50ን ብቻ ካሻሻሉ፣ አሁንም "በዘፈቀደ ቀርፋፋ የሚመስል" ተሞክሮ መላክ ይችላሉ።
ማጣቀሻዎች
-
የአማዞን ድር አገልግሎቶች (AWS) - የAWS CloudWatch መቶኛዎች (የስታቲስቲክስ ትርጓሜዎች) - docs.aws.amazon.com
-
ጉግል - ዘ ጅራት በክብደት (የጅራት መዘግየት ምርጥ ልምምድ) - sre.google
-
ጉግል - የአገልግሎት ደረጃ ዓላማዎች (SRE Book) - የዘገየነት መቶኛዎች - sre.google
-
PyTorch - torch.compile - docs.pytorch.org
-
PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org
-
ፒቶርች - ፒቶርች ፕሮፋይለር - docs.pytorch.org
-
PyTorch - የCUDA ፍቺዎች፡ የማህደረ ትውስታ አስተዳደር (የCUDA የማህደረ ትውስታ ምደባ ማስታወሻዎች) - docs.pytorch.org
-
PyTorch - አውቶማቲክ የተቀላቀለ ትክክለኛነት (torch.amp / AMP) - docs.pytorch.org
-
PyTorch - torch.utils.checkpoint - docs.pytorch.org
-
PyTorch - የአፈጻጸም ማስተካከያ መመሪያ - docs.pytorch.org
-
PyTorch - የመቁረጥ አጋዥ ስልጠና - docs.pytorch.org
-
PyTorch - በ PyTorch ውስጥ የCUDA ማህደረ ትውስታ አጠቃቀምን መረዳት - docs.pytorch.org
-
PyTorch - torch.compile አጋዥ ስልጠና / አጠቃላይ እይታ - docs.pytorch.org
-
የ ONNX የአሂድ ጊዜ - የ ONNX የአሂድ ጊዜ ሰነድ - onnxruntime.ai
-
NVIDIA - TensorRT ሰነድ - docs.nvidia.com
-
NVIDIA - TensorRT የተገመቱ አይነቶች - docs.nvidia.com
-
NVIDIA - Nsight Systems - developer.nvidia.com
-
NVIDIA - ትሪቶን ኢንፈረንስ ሰርቨር - ዳይናሚክ ባቺንግ - docs.nvidia.com
-
DeepSpeed - Zero ደረጃ 3 ሰነድ - deepspeed.readthedocs.io
-
bitsandbytes (bitsandbytes-basedation) - bitsandbytes - github.com
-
የሚተቃቀፍ ፊት - ፍጥነት፡ የግራዲየንት ክምችት መመሪያ - huggingface.co
-
የሚተቃቀፉ ፊት - ቶኬይዘሮች ሰነዶች - huggingface.co
-
እቅፍ ፊት - ትራንስፎርመሮች፡ የPEFT መመሪያ - huggingface.co
-
እቅፍ ፊት - ትራንስፎርመሮች፡ የKV መሸጎጫ ማብራሪያ - huggingface.co
-
እቅፍ ያለው ፊት - ትራንስፎርመሮች፡ “ፈጣን” ቶኬኒዘሮች (ቶኬኒዘር ክፍሎች) - huggingface.co
-
arXiv - በነርቭ ኔትወርክ ውስጥ ያለውን እውቀት ማስፋፋት (ሂንተን እና ሌሎች፣ 2015) - arxiv.org
-
arXiv - LoRA: የትላልቅ የቋንቋ ሞዴሎች ዝቅተኛ ደረጃ መላመድ - arxiv.org
-
arXiv - FlashAttention: ፈጣን እና ማህደረ ትውስታ-ውጤታማ ትክክለኛ ትኩረት ከ IO-Awareness ጋር - arxiv.org