របៀបធ្វើឱ្យគំរូ AI ប្រសើរឡើង

របៀបធ្វើឱ្យគំរូ AI ប្រសើរឡើង

ចម្លើយខ្លី៖ ដើម្បីធ្វើឱ្យគំរូ AI មានប្រសិទ្ធភាពបំផុត សូមជ្រើសរើសការរឹតបន្តឹងចម្បងមួយ (ភាពយឺតយ៉ាវ តម្លៃ អង្គចងចាំ គុណភាព ស្ថេរភាព ឬអត្រាទិន្នផល) បន្ទាប់មកចាប់យកមូលដ្ឋានដែលអាចទុកចិត្តបានមុនពេលផ្លាស់ប្តូរអ្វីមួយ។ យកចំណុចកកស្ទះនៃបំពង់បង្ហូរចេញជាមុនសិន បន្ទាប់មកអនុវត្តការទទួលបានហានិភ័យទាបដូចជាភាពជាក់លាក់ចម្រុះ និងការបាច់។ ប្រសិនបើគុណភាពនៅតែមាន សូមបន្តទៅឧបករណ៍ចងក្រង/ឧបករណ៍ពេលដំណើរការ ហើយបន្ទាប់មកកាត់បន្ថយទំហំគំរូតាមរយៈការវាស់បរិមាណ ឬការចម្រាញ់នៅពេលដែលត្រូវការ។

ចំណុចសំខាន់ៗ៖

ការរឹតបន្តឹង ៖ ជ្រើសរើសរង្វាស់គោលដៅមួយ ឬពីរ។ ការបង្កើនប្រសិទ្ធភាពគឺជាទេសភាពនៃការសម្របសម្រួល មិនមែនជាការឈ្នះដោយសេរីនោះទេ។

ការវាស់វែង ៖ វិភាគបន្ទុកការងារពិតប្រាកដជាមួយ p50/p95/p99 កម្រិតបញ្ជូន ការប្រើប្រាស់ និងកំពូលអង្គចងចាំ។

បំពង់បង្ហូរប្រេង ៖ ជួសជុលការធ្វើសញ្ញាសម្ងាត់ កម្មវិធីផ្ទុកទិន្នន័យ ការដំណើរការជាមុន និងការចាត់ថ្នាក់មុនពេលប៉ះគំរូ។

ការបម្រើ ៖ ប្រើប្រាស់ការ caching ការ batching ដោយចេតនា ការលៃតម្រូវ concurrency និងតាមដានយ៉ាងដិតដល់លើភាពយឺតយ៉ាវនៃ tail។

របាំង​ការពារ ៖ ដំណើរការ​ការ​ណែនាំ​ដ៏​ល្អ​បំផុត រង្វាស់​ភារកិច្ច និង​ការ​ត្រួតពិនិត្យ​ភ្លាមៗ​បន្ទាប់​ពី​ការ​ផ្លាស់ប្ដូរ​ការអនុវត្ត​នីមួយៗ។

របៀបបង្កើនប្រសិទ្ធភាពគំរូ AI Infographic

🔗 របៀបវាយតម្លៃគំរូ AI ប្រកបដោយប្រសិទ្ធភាព
លក្ខណៈវិនិច្ឆ័យ និងជំហានសំខាន់ៗ ដើម្បីវិនិច្ឆ័យគំរូដោយយុត្តិធម៌ និងអាចទុកចិត្តបាន។

🔗 របៀបវាស់ស្ទង់ដំណើរការ AI ជាមួយនឹងម៉ែត្រិចពិតប្រាកដ
ប្រើប្រាស់ស្តង់ដារ ភាពយឺតយ៉ាវ តម្លៃ និងសញ្ញាគុណភាពដើម្បីប្រៀបធៀប។

🔗 របៀបសាកល្បងគំរូ AI មុនពេលផលិត
លំហូរការងារសាកល្បងជាក់ស្តែង៖ ការបំបែកទិន្នន័យ ករណីស្ត្រេស និងការត្រួតពិនិត្យ។

🔗 របៀបប្រើ AI សម្រាប់ការបង្កើតខ្លឹមសារ
ប្រែក្លាយគំនិតទៅជាសេចក្តីព្រាងលឿនជាងមុនជាមួយនឹងការជំរុញដែលមានរចនាសម្ព័ន្ធ និងការធ្វើម្តងទៀត។


១) អ្វីដែលពាក្យ "បង្កើនប្រសិទ្ធភាព" មានន័យក្នុងការអនុវត្ត (ពីព្រោះមនុស្សគ្រប់គ្នាប្រើវាខុសគ្នា) 🧠

នៅពេលដែលមនុស្សនិយាយថា "ធ្វើឱ្យគំរូ AI ប្រសើរឡើង" ពួកគេអាចមានន័យថា៖

  • ធ្វើឱ្យវាលឿនជាងមុន (ភាពយឺតយ៉ាវទាប)

  • ធ្វើឱ្យវាមានតម្លៃថោកជាង (ម៉ោង GPU តិចជាងមុន ការចំណាយលើ Cloud ទាបជាង)

  • ធ្វើឱ្យវាតូចជាងមុន (ទំហំអង្គចងចាំ ការដាក់ពង្រាយគែម)

  • ធ្វើឱ្យវាកាន់តែត្រឹមត្រូវ (ការកែលម្អគុណភាព ការយល់ច្រឡំតិចជាងមុន)

  • ធ្វើឱ្យវាមានស្ថេរភាពជាងមុន (ភាពខុសគ្នាតិចជាងមុន ការបរាជ័យតិចជាងមុនក្នុងការផលិត)

  • ធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការបម្រើ (បរិមាណផលិតកម្ម ការវេចខ្ចប់ និងដំណើរការដែលអាចព្យាករណ៍បាន)

នេះជាការពិតដែលរំខានបន្តិច៖ អ្នកមិនអាចបង្កើនប្រសិទ្ធភាពទាំងអស់នេះក្នុងពេលតែមួយបានទេ។ ការបង្កើនប្រសិទ្ធភាពគឺដូចជាការច្របាច់ប៉េងប៉ោងមួយ - រុញម្ខាងចូល ហើយម្ខាងទៀតនឹងលេចចេញមក។ មិនមែនជានិច្ចទេ ប៉ុន្តែជាញឹកញាប់គ្រប់គ្រាន់ដែលអ្នកគួរតែរៀបចំផែនការសម្រាប់ការសម្របសម្រួល។.

ដូច្នេះមុននឹងប៉ះអ្វីមួយ សូមជ្រើសរើស ការរឹតបន្តឹងចម្បង

  • ប្រសិនបើអ្នកកំពុងបម្រើអ្នកប្រើប្រាស់ផ្ទាល់ អ្នកយកចិត្តទុកដាក់ចំពោះ ភាពយឺតយ៉ាវ p95 ( AWS CloudWatch percentiles ) និងដំណើរការកន្ទុយ ( ការអនុវត្តល្អបំផុត "ភាពយឺតយ៉ាវកន្ទុយ" ) 📉

  • ប្រសិនបើអ្នកកំពុងហ្វឹកហាត់ អ្នកយកចិត្តទុកដាក់ចំពោះ គុណភាពពេលវេលា និងការប្រើប្រាស់ GPU 🔥

  • ប្រសិនបើអ្នកកំពុងដាក់ពង្រាយនៅលើឧបករណ៍ អ្នកយកចិត្តទុកដាក់ចំពោះ RAM និងថាមពល 🔋


២) កំណែល្អនៃការបង្កើនប្រសិទ្ធភាពគំរូ AI មើលទៅដូចអ្វី ✅

កំណែល្អនៃការបង្កើនប្រសិទ្ធភាពមិនមែនគ្រាន់តែជា "អនុវត្តបរិមាណ និងអធិស្ឋាន" នោះទេ។ វាគឺជាប្រព័ន្ធមួយ។ ការរៀបចំដ៏ល្អបំផុតជាធម្មតាមាន៖

  • មូលដ្ឋានដែលអ្នកទុកចិត្ត
    ប្រសិនបើអ្នកមិនអាចបង្កើតលទ្ធផលបច្ចុប្បន្នរបស់អ្នកឡើងវិញបានទេ អ្នកមិនអាចដឹងថាអ្នកបានកែលម្អអ្វីនោះទេ។ សាមញ្ញ... ប៉ុន្តែមនុស្សរំលងវា។ បន្ទាប់មកពួកគេវិលវល់។

  • រង្វាស់គោលដៅច្បាស់លាស់មួយ
    គឺ “លឿនជាងមុន” គឺមិនច្បាស់លាស់ទេ។ “កាត់បន្ថយភាពយឺតយ៉ាវនៃ p95 ពី 900ms មកត្រឹម 300ms នៅពិន្ទុគុណភាពដូចគ្នា” គឺជាគោលដៅពិតប្រាកដមួយ។

  • របាំងការពារសម្រាប់គុណភាព
    រាល់ការឈ្នះលើការអនុវត្តតែងតែប្រឈមនឹងការតំរែតំរង់គុណភាពដោយស្ងៀមស្ងាត់។ អ្នកត្រូវការការធ្វើតេស្ត ការវាយតម្លៃ ឬយ៉ាងហោចណាស់ក៏ត្រូវការឈុតសុខភាពផ្លូវចិត្តផងដែរ។

  • ការយល់ដឹងអំពីផ្នែករឹង
    ម៉ូដែល "លឿន" នៅលើ GPU មួយអាចវារលើ GPU មួយទៀតបាន។ CPU គឺជាប្រភេទពិសេសនៃភាពវឹកវររបស់វា។

  • ការផ្លាស់ប្តូរដដែលៗ មិនមែនជាការសរសេរឡើងវិញភ្លាមៗនោះទេ។
    នៅពេលដែលអ្នកផ្លាស់ប្តូររឿងប្រាំក្នុងពេលតែមួយ ហើយដំណើរការប្រសើរឡើង អ្នកមិនដឹងថាហេតុអ្វីទេ។ ដែលជារឿង… គួរឲ្យព្រួយបារម្ភ។

ការបង្កើនប្រសិទ្ធភាពគួរតែមានអារម្មណ៍ដូចជាការលៃតម្រូវហ្គីតា - ការកែតម្រូវតិចតួច ស្តាប់ឱ្យច្បាស់ ធ្វើម្តងទៀត 🎸។ ប្រសិនបើវាមានអារម្មណ៍ដូចជាការលេងកាំបិត នោះមានអ្វីមួយខុសប្រក្រតី។.


៣) តារាងប្រៀបធៀប៖ ជម្រើសពេញនិយមដើម្បីបង្កើនប្រសិទ្ធភាពម៉ូដែល AI 📊

ខាងក្រោមនេះគឺជាតារាងប្រៀបធៀបរហ័ស និងរញ៉េរញ៉ៃបន្តិចនៃឧបករណ៍/វិធីសាស្រ្តបង្កើនប្រសិទ្ធភាពទូទៅ។ ទេ វាមិន "យុត្តិធម៌" ឥតខ្ចោះទេ - ជីវិតពិតក៏មិនដូច្នោះដែរ។.

ឧបករណ៍ / ជម្រើស ទស្សនិកជន តម្លៃ ហេតុអ្វីបានជាវាដំណើរការ
PyTorch torch.compile ( ឯកសារ PyTorch ) អ្នកគាំទ្រ PyTorch ឥតគិតថ្លៃ ល្បិចចាប់យកក្រាហ្វ + កម្មវិធីចងក្រងអាចកាត់បន្ថយការចំណាយ… ពេលខ្លះវាអស្ចារ្យណាស់ ✨
ONNX Runtime ( ឯកសារ ONNX Runtime ) ក្រុមដាក់ពង្រាយ សេរី ការបង្កើនប្រសិទ្ធភាពនៃការសន្និដ្ឋានដ៏រឹងមាំ ការគាំទ្រយ៉ាងទូលំទូលាយ ល្អសម្រាប់ការបម្រើស្តង់ដារ
TensorRT ( ឯកសារ NVIDIA TensorRT ) ការដាក់ពង្រាយ NVIDIA អារម្មណ៍​ដែល​បាន​បង់ប្រាក់ (ជារឿយៗ​ត្រូវ​បាន​ដាក់​ជា​បាច់) ការលាយបញ្ចូលគ្នាយ៉ាងសកម្មនៃខឺណែល + ការគ្រប់គ្រងដ៏ជាក់លាក់ លឿនខ្លាំងនៅពេលវាចុច
DeepSpeed ​​( ឯកសារ ZeRO ) ក្រុមបណ្តុះបណ្តាល ឥតគិតថ្លៃ ការបង្កើនប្រសិទ្ធភាពអង្គចងចាំ + អត្រាលំហូរ (ZeRO ។ល។)។ អាចមានអារម្មណ៍ដូចជាម៉ាស៊ីនយន្តហោះប្រតិកម្ម
FSDP (PyTorch) ( ឯកសារ PyTorch FSDP ) ក្រុមបណ្តុះបណ្តាល ឥតគិតថ្លៃ ប៉ារ៉ាម៉ែត្រ/ជម្រាល Shards ធ្វើឱ្យម៉ូដែលធំៗមិនសូវគួរឱ្យខ្លាច
ការវាស់បរិមាណ bitsandbytes ( bitsandbytes ) អ្នកជួសជុល LLM ឥតគិតថ្លៃ ទម្ងន់ប៊ីតទាប ការសន្សំសំចៃអង្គចងចាំយ៉ាងច្រើន - គុណភាពអាស្រ័យទៅលើវា ប៉ុន្តែ អូយ 😬
ការចម្រាញ់ ( Hinton et al., 2015 ) ក្រុមផលិតផល «ការចំណាយពេលវេលា» គំរូសិស្សតូចៗទទួលមរតកឥរិយាបថ ជាធម្មតា ROI ល្អបំផុតក្នុងរយៈពេលវែង
ការកាត់ចេញ ( ការបង្រៀនកាត់ចេញដោយប្រើ PyTorch ) ការស្រាវជ្រាវ + ផលិតផល ឥតគិតថ្លៃ កាត់បន្ថយទម្ងន់ស្លាប់។ ដំណើរការបានល្អជាងនៅពេលផ្គូផ្គងជាមួយនឹងការហ្វឹកហាត់ឡើងវិញ។
ការយកចិត្តទុកដាក់ Flash / គ្រាប់ធញ្ញជាតិរលាយ ( ក្រដាសយកចិត្តទុកដាក់ Flash ) អ្នកចូលចិត្តសម្តែង ឥតគិតថ្លៃ ការយកចិត្តទុកដាក់លឿនជាងមុន ឥរិយាបថចងចាំកាន់តែប្រសើរ។ ជ័យជម្នះពិតប្រាកដសម្រាប់ Transformers
ម៉ាស៊ីនបម្រើការសន្និដ្ឋាន Triton ( ការចាត់ថ្នាក់ថាមវន្ត ) ប្រតិបត្តិការ/ហេដ្ឋារចនាសម្ព័ន្ធ ឥតគិតថ្លៃ ការបម្រើផលិតកម្ម ការចាត់ថ្នាក់ជាបាច់ បំពង់បង្ហូរពហុម៉ូដែល - មានអារម្មណ៍ថាដូចជាសហគ្រាស

ការសារភាព​អំពី​ការធ្វើ​ទ្រង់ទ្រាយ​នៃ​ភាព​ចម្លែក៖ “តម្លៃ” គឺ​មិន​ស្អាត​ទេ ព្រោះ​កម្មវិធី​ប្រភព​បើកចំហ​នៅតែ​អាច​ធ្វើ​ឲ្យ​អ្នក​ខាតបង់​ចុង​សប្តាហ៍​នៃ​ការ​បំបាត់​កំហុស ដែល​ជា… តម្លៃ។ 😵💫


៤) ចាប់ផ្តើមជាមួយនឹងការវាស់វែង៖ ទម្រង់ដូចដែលអ្នកចង់មានន័យ 🔍

ប្រសិនបើអ្នកធ្វើរឿងតែមួយគត់ពីការណែនាំទាំងមូលនេះ សូមធ្វើដូចនេះ៖ វាស់វែងឱ្យបានត្រឹមត្រូវ។.

នៅក្នុងការធ្វើតេស្តផ្ទាល់ខ្លួនរបស់ខ្ញុំ “របកគំហើញនៃការបង្កើនប្រសិទ្ធភាព” ដ៏ធំបំផុតបានមកពីការរកឃើញអ្វីដែលសាមញ្ញគួរឱ្យអាម៉ាស់ដូចជា៖

  • កម្មវិធីផ្ទុកទិន្នន័យកំពុងធ្វើឱ្យ GPU អស់ថាមពល

  • ចំណុចកកស្ទះដំណើរការជាមុនរបស់ CPU

  • ទំហំបាច់តូចៗបណ្តាលឱ្យមានការខាតបង់នៃការបើកដំណើរការខឺណែល

  • សញ្ញាសម្គាល់យឺត (សញ្ញាសម្គាល់អាចជាជនអាក្រក់ស្ងាត់ៗ)

  • ការបំបែកអង្គចងចាំ ( កំណត់ចំណាំអំពីឧបករណ៍បែងចែកអង្គចងចាំ PyTorch CUDA )

  • កុំព្យូទ័រ​ដែល​គ្របដណ្ដប់​លើ​ស្រទាប់​តែមួយ

អ្វីដែលត្រូវវាស់វែង (សំណុំអប្បបរមា)

  • ភាពយឺតយ៉ាវ (p50, p95, p99) ( SRE លើភាគរយនៃភាពយឺតយ៉ាវ )

  • អត្រា​ទិន្នផល (ថូខឹន/វិនាទី, សំណើ/វិនាទី)

  • ការប្រើប្រាស់ GPU (កុំព្យូទ័រ + អង្គចងចាំ)

  • កំពូល VRAM / RAM

  • តម្លៃក្នុង 1k ថូខឹន (ឬក្នុងមួយការសន្និដ្ឋាន)

ផ្នត់គំនិត​នៃ​ការ​ធ្វើ​ប្រវត្តិរូប​ជាក់ស្តែង

  • រៀបរាប់​អំពី​សេណារីយ៉ូ​មួយ​ដែល​អ្នក​ចាប់អារម្មណ៍ (មិនមែន​ជា​ការ​ណែនាំ​អំពី​ប្រដាប់ក្មេងលេង​ទេ)។.

  • កត់ត្រាអ្វីៗគ្រប់យ៉ាងនៅក្នុង “កំណត់ហេតុប្រចាំថ្ងៃដ៏ល្អឥតខ្ចោះ” តូចមួយ។
    មែនហើយ វាគួរឱ្យធុញទ្រាន់ណាស់… ប៉ុន្តែវាជួយសង្រ្គោះអ្នកពីការបំភាន់ខ្លួនឯងនៅពេលក្រោយ។

(ប្រសិនបើអ្នកចង់បានឧបករណ៍ជាក់ស្តែងមួយដើម្បីចាប់ផ្តើមជាមួយ៖ PyTorch Profiler ( torch.profiler docs ) និង Nsight Systems ( NVIDIA Nsight Systems ) គឺជាជនសង្ស័យធម្មតា។)


៥) ការបង្កើនប្រសិទ្ធភាពទិន្នន័យ + ការបណ្តុះបណ្តាល៖ មហាអំណាចស្ងប់ស្ងាត់ 📦🚀

មនុស្ស​ចាប់អារម្មណ៍​ខ្លាំង​លើ​ស្ថាបត្យកម្ម​គំរូ ហើយ​ភ្លេច​ដំណើរការ​នៃ​ប្រព័ន្ធ​ដំណើរការ។ ទន្ទឹមនឹងនេះ ប្រព័ន្ធ​ដំណើរការ​នេះ​ដុត​ពាក់កណ្តាល​នៃ GPU យ៉ាង​ស្ងាត់ៗ។.

ជ័យជម្នះងាយៗដែលលេចឡើងយ៉ាងឆាប់រហ័ស

  • ប្រើភាពជាក់លាក់ចម្រុះ (FP16/BF16 កន្លែងដែលមានស្ថេរភាព) ( PyTorch AMP / torch.amp )
    ជាធម្មតាលឿនជាង ជារឿយៗល្អ - ប៉ុន្តែត្រូវប្រយ័ត្នចំពោះភាពចម្លែកនៃលេខ។

  • ការប្រមូលផ្តុំជម្រាល នៅពេលដែលទំហំបាច់មានកំណត់ ( 🤗 ការណែនាំបង្កើនល្បឿន )
    រក្សាការបង្កើនប្រសិទ្ធភាពឱ្យមានស្ថេរភាពដោយមិនផ្ទុះអង្គចងចាំ។

  • ការត្រួតពិនិត្យជម្រាល ( torch.utils.checkpoint )
    ជួញដូរគណនាសម្រាប់អង្គចងចាំ - ធ្វើឱ្យបរិបទធំជាងនេះអាចធ្វើទៅបាន។

  • ការធ្វើសញ្ញាសម្ងាត់ប្រកបដោយប្រសិទ្ធភាព ( 🤗 ឧបករណ៍ធ្វើសញ្ញាសម្ងាត់ )
    ការធ្វើសញ្ញាសម្ងាត់អាចក្លាយជាបញ្ហាកកស្ទះក្នុងទ្រង់ទ្រាយធំ។ វាមិនមែនជារឿងអស្ចារ្យទេ វាជារឿងសំខាន់។

  • ការលៃតម្រូវកម្មវិធីផ្ទុកទិន្នន័យ
    កម្មករកាន់តែច្រើន អង្គចងចាំដែលបានខ្ទាស់ ការទាញយកជាមុន - មិនបង្ហាញប៉ុន្តែមានប្រសិទ្ធភាព 😴➡️💪 ( មគ្គុទ្ទេសក៍លៃតម្រូវដំណើរការ PyTorch )

ការលៃតម្រូវប៉ារ៉ាម៉ែត្រប្រកបដោយប្រសិទ្ធភាព

ប្រសិនបើអ្នកកំពុងកែលម្អម៉ូដែលធំៗ វិធីសាស្ត្រ PEFT (ដូចជាអាដាប់ទ័ររចនាប័ទ្ម LoRA) អាចកាត់បន្ថយថ្លៃដើមនៃការហ្វឹកហ្វឺនយ៉ាងច្រើន ខណៈពេលដែលនៅតែរឹងមាំគួរឱ្យភ្ញាក់ផ្អើល ( 🤗 មគ្គុទ្ទេសក៍ Transformers PEFT , ឯកសារ LoRA )។ នេះគឺជាពេលវេលាមួយក្នុងចំណោមពេលវេលាទាំងនោះដែលនិយាយថា "ហេតុអ្វីបានជាយើងមិនធ្វើបែបនេះពីមុន?"។


៦) ការបង្កើនប្រសិទ្ធភាពកម្រិតស្ថាបត្យកម្ម៖ កំណត់ទំហំគំរូឱ្យបានត្រឹមត្រូវ 🧩

ពេលខ្លះវិធីល្អបំផុតដើម្បីបង្កើនប្រសិទ្ធភាពគឺ… ឈប់ប្រើគំរូដែលធំពេកសម្រាប់ការងារ។ ខ្ញុំដឹងហើយ វាជាការប្រមាថ 😄។.

ធ្វើការហៅទូរស័ព្ទលើចំណុចសំខាន់ៗមួយចំនួន៖

  • សម្រេចចិត្តថាតើអ្នកត្រូវការភាពវៃឆ្លាតទូទៅពេញលេញ ឬអ្នកឯកទេស។.

  • រក្សា​បង្អួច​បរិបទ​ឲ្យ​ធំ​តាម​ដែល​វា​ត្រូវការ មិនមែន​ធំ​ជាង​នេះ​ទេ។.

  • ប្រើប្រាស់គំរូដែលបានបណ្តុះបណ្តាលសម្រាប់ការងារដែលកំពុងធ្វើ (គំរូចាត់ថ្នាក់សម្រាប់ការងារចាត់ថ្នាក់ និងផ្សេងៗទៀត)។.

យុទ្ធសាស្ត្រជាក់ស្តែងសម្រាប់ការកំណត់ទំហំត្រឹមត្រូវ

  • ប្តូរទៅឆ្អឹងខ្នងតូចជាង សម្រាប់សំណើភាគច្រើន
    បន្ទាប់មកបញ្ជូន "សំណួរពិបាកៗ" ទៅកាន់គំរូធំជាង។

  • ប្រើការរៀបចំពីរដំណាក់កាល
    សេចក្តីព្រាងគំរូរហ័ស ការផ្ទៀងផ្ទាត់គំរូដ៏រឹងមាំ ឬកែសម្រួល។
    វាដូចជាការសរសេរជាមួយមិត្តភក្តិដែលរើសអើង - រំខាន ប៉ុន្តែមានប្រសិទ្ធភាព។

  • កាត់បន្ថយប្រវែងនៃលទ្ធផល
    ថូខឹនលទ្ធផលចំណាយប្រាក់ និងពេលវេលា។ ប្រសិនបើគំរូរបស់អ្នកដំណើរការយឺត អ្នកនឹងចំណាយសម្រាប់ការដំណើរការយឺត។

ខ្ញុំធ្លាប់បានឃើញក្រុមការងារកាត់បន្ថយការចំណាយយ៉ាងច្រើនដោយអនុវត្តទិន្នផលខ្លីជាង។ វាមានអារម្មណ៍ថាតូចតាច។ វាដំណើរការ។.


៧) ការបង្កើនប្រសិទ្ធភាពកម្មវិធីចងក្រង + ក្រាហ្វ៖ ល្បឿនមកពីណា 🏎️

នេះគឺជាស្រទាប់ “ធ្វើឱ្យកុំព្យូទ័រធ្វើកិច្ចការកុំព្យូទ័រឆ្លាតវៃជាងមុន”។.

បច្ចេកទេសទូទៅ៖

និយាយ​ឲ្យ​សាមញ្ញ​ទៅ គំរូ​របស់​អ្នក​អាច​លឿន​តាម​គណិតវិទ្យា ប៉ុន្តែ​យឺត​តាម​ប្រតិបត្តិការ។ កម្មវិធី​ចងក្រង​ជួសជុល​ចំណុច​នោះ​ខ្លះ។.

កំណត់ចំណាំជាក់ស្តែង (ហៅកាត់ថា ស្លាកស្នាម)

  • ការបង្កើនប្រសិទ្ធភាពទាំងនេះអាចងាយនឹងរងផលប៉ះពាល់ដោយការផ្លាស់ប្តូររូបរាងគំរូ។.

  • ម៉ូដែលខ្លះបង្កើនល្បឿនខ្លាំង ម៉ូដែលខ្លះទៀតស្ទើរតែមិនរើ។.

  • ពេលខ្លះអ្នកទទួលបានល្បឿនកើនឡើង និងកំហុសឆ្គងដ៏គួរឱ្យងឿងឆ្ងល់ - ដូចជាសត្វក្អែកមួយបានផ្លាស់ទីចូល 🧌

យ៉ាងណាក៏ដោយ នៅពេលដែលវាដំណើរការ វាគឺជាជ័យជម្នះដ៏ស្អាតស្អំបំផុតមួយ។.


៨) បរិមាណនីយកម្ម ការកាត់ចេញ ការចម្រាញ់៖ តូចជាងមុនដោយមិនយំ (ច្រើនពេក) 🪓📉

នេះ​ជា​ផ្នែក​ដែល​មនុស្ស​ចង់បាន… ពី​ព្រោះ​វា​ស្តាប់​ទៅ​ដូច​ជា​ការ​សម្តែង​ដោយ​សេរី។ វា​អាច​ជា​ដូច្នោះ​មែន ប៉ុន្តែ​អ្នក​ត្រូវ​តែ​ព្យាបាល​វា​ដូច​ជា​ការ​វះកាត់។.

បរិមាណនីយកម្ម (ទម្ងន់/ការធ្វើឱ្យសកម្មដែលមានភាពជាក់លាក់ទាបជាង)

  • ល្អសម្រាប់ល្បឿនសន្និដ្ឋាន និងការចងចាំ

  • ហានិភ័យ៖ គុណភាពធ្លាក់ចុះ ជាពិសេសនៅលើករណីគែម

  • ការអនុវត្តល្អបំផុត៖ វាយតម្លៃលើសំណុំតេស្តពិតប្រាកដ មិនមែនលើអារម្មណ៍ទេ

រសជាតិទូទៅដែលអ្នកនឹងឮអំពី៖

  • INT8 (ជាញឹកញាប់រឹង) ( ប្រភេទបរិមាណ TensorRT )

  • INT4 / ប៊ីតទាប (សន្សំបានច្រើន ហានិភ័យគុណភាពកើនឡើង) ( bitsandbytes k-bit quantization )

  • បរិមាណចម្រុះ (មិនមែនអ្វីៗទាំងអស់ត្រូវការភាពជាក់លាក់ដូចគ្នាទេ)

ការកាត់ចេញ (លុបប៉ារ៉ាម៉ែត្រចេញ)

  • លុប​ទម្ងន់ ឬ​រចនាសម្ព័ន្ធ "មិនសំខាន់" ចេញ ( ការបង្រៀន​កាត់​ចេញ​ពី PyTorch )

  • ជាធម្មតាត្រូវការការបណ្តុះបណ្តាលឡើងវិញដើម្បីស្តារគុណភាពឡើងវិញ

  • ដំណើរការបានល្អជាងអ្វីដែលមនុស្សគិត… នៅពេលធ្វើដោយប្រុងប្រយ័ត្ន

ការចម្រាញ់ (សិស្សរៀនពីគ្រូ)

នេះ​គឺជា​ឧបករណ៍​រយៈពេលវែង​ដែល​ខ្ញុំ​ចូលចិត្ត​ផ្ទាល់​ខ្លួន។ ការ​ចម្រាញ់​អាច​បង្កើត​គំរូ​តូច​ជាង​ដែល​មាន​ឥរិយាបថ​ស្រដៀង​គ្នា ហើយ​វា​ជា​ញឹកញាប់​មាន​ស្ថេរភាព​ជាង​ការ​ធ្វើ​បរិមាណ​ខ្លាំង ( ការ​ចម្រាញ់​ចំណេះដឹង​ក្នុង​បណ្តាញ​សរសៃប្រសាទ )។

ពាក្យប្រៀបធៀបមិនល្អឥតខ្ចោះ៖ ការចម្រាញ់គឺដូចជាការចាក់ស៊ុបស្មុគស្មាញមួយឆ្លងកាត់តម្រង ហើយទទួលបាន… ស៊ុបតូចមួយ។ នោះមិនមែនជារបៀបដែលស៊ុបដំណើរការទេ ប៉ុន្តែអ្នកយល់ពីគំនិតនោះហើយ 🍲។.


៩) ការបម្រើ និងការសន្និដ្ឋាន៖ តំបន់សមរភូមិពិតប្រាកដ 🧯

អ្នកអាច "បង្កើនប្រសិទ្ធភាព" គំរូមួយ ហើយនៅតែបម្រើវាបានមិនល្អ។ ការបម្រើគឺជាកន្លែងដែលភាពយឺតយ៉ាវ និងថ្លៃដើមក្លាយជាការពិត។.

ការបម្រើជ័យជម្នះដែលសំខាន់

  • ការ​ធ្វើ​ជា​បាច់​ធ្វើ
    ​ឲ្យ​ប្រសើរ​ឡើង​នូវ​អត្រា​ដំណើរការ។ ប៉ុន្តែ​បង្កើន​ភាព​យឺតយ៉ាវ​ប្រសិន​បើ​អ្នក​ធ្វើ​វា​លើស​កម្រិត។ វា​មាន​តុល្យភាព។ ( ការ​ធ្វើ​ជា​បាច់​ថាមវន្ត Triton )

  • ការ​ដាក់​ឃ្លាំង​សម្ងាត់
    ការ​ដាក់​ឃ្លាំង​សម្ងាត់​តាម​រយៈ​ការ​បញ្ចូល​ឃ្លាំង​សម្ងាត់ និង​ការ​ប្រើ​ប្រាស់ KV-cache ឡើង​វិញ​អាច​មាន​ទំហំ​ធំ​សម្រាប់​បរិបទ​ដែល​ធ្វើ​ម្តង​ហើយ​ម្តង​ទៀត។ ( ការ​ពន្យល់​អំពី KV cache )

  • លទ្ធផលស្ទ្រីម
    អ្នកប្រើប្រាស់មានអារម្មណ៍ថាវាលឿនជាងមុន ទោះបីជាពេលវេលាសរុបស្រដៀងគ្នាក៏ដោយ។ ការយល់ឃើញគឺសំខាន់ 🙂។

  • ការកាត់បន្ថយការចំណាយលើថូខឹនម្តង
    មួយៗ ជង់ខ្លះធ្វើការងារបន្ថែមក្នុងមួយថូខឹន។ កាត់បន្ថយការចំណាយនោះ ហើយអ្នកឈ្នះធំ។

ប្រយ័ត្នចំពោះភាពយឺតយ៉ាវនៃកន្ទុយ

មធ្យមភាគរបស់អ្នកអាចមើលទៅអស្ចារ្យ ខណៈពេលដែល p99 របស់អ្នកគឺជាគ្រោះមហន្តរាយ។ ជាអកុសល អ្នកប្រើប្រាស់រស់នៅក្នុងកន្ទុយ។ ( “ភាពយឺតយ៉ាវកន្ទុយ” និងមូលហេតុដែលមធ្យមភាគកុហក )


១០) ការបង្កើនប្រសិទ្ធភាពដោយយល់ដឹងពីផ្នែករឹង៖ ផ្គូផ្គងម៉ូដែលទៅនឹងម៉ាស៊ីន 🧰🖥️

ការធ្វើឱ្យប្រសើរឡើងដោយមិនចាំបាច់មានការយល់ដឹងអំពីផ្នែករឹងគឺដូចជាការលៃតម្រូវរថយន្តប្រណាំងដោយមិនចាំបាច់ពិនិត្យសំបកកង់។ ពិតណាស់ អ្នកអាចធ្វើវាបាន ប៉ុន្តែវាជារឿងឆោតល្ងង់បន្តិច។.

ការពិចារណាលើ GPU

  • កម្រិតបញ្ជូនអង្គចងចាំច្រើនតែជាកត្តាកំណត់ មិនមែនជាការគណនាឆៅទេ

  • ទំហំបាច់ធំជាងនេះអាចជួយបាន រហូតដល់ពួកវាមិន

  • ការ​លាយ​បញ្ចូល​គ្នា​នៃ​ខឺណែល និង​ការ​បង្កើន​ប្រសិទ្ធភាព​ការ​យក​ចិត្ត​ទុក​ដាក់​គឺ​មាន​សារៈសំខាន់​ខ្លាំង​ណាស់​សម្រាប់​ឧបករណ៍​បំលែង​ថាមពល ( FlashAttention: IO-aware exact attention )

ការពិចារណាលើ CPU

  • ខ្សែស្រឡាយ វ៉ិចទ័រ និងទីតាំងអង្គចងចាំមានសារៈសំខាន់ខ្លាំងណាស់

  • ការចំណាយលើការធ្វើសញ្ញាសម្ងាត់អាចគ្របដណ្ដប់ ( 🤗 ការធ្វើសញ្ញាសម្ងាត់ "លឿន" )

  • អ្នកប្រហែលជាត្រូវការយុទ្ធសាស្ត្របរិមាណខុសពីនៅលើ GPU

ការពិចារណាអំពីគែម / ទូរស័ព្ទចល័ត

  • ស្នាមជើង​អង្គចងចាំ​ក្លាយជា​អាទិភាព​លេខមួយ

  • ភាពខុសគ្នានៃភាពយឺតយ៉ាវមានសារៈសំខាន់ ពីព្រោះឧបករណ៍… មានអារម្មណ៍មិនស្រួល

  • ម៉ូដែលតូចៗដែលមានជំនាញវិជ្ជាជីវៈច្រើនតែយកឈ្នះម៉ូដែលធំៗទូទៅ


១១) របាំងការពារគុណភាព៖ កុំ «ធ្វើឲ្យខ្លួនឯងប្រសើរឡើង» ទៅជាកំហុសឆ្គង 🧪

រាល់ការឈ្នះល្បឿនគួរតែមានការត្រួតពិនិត្យគុណភាព។ បើមិនដូច្នោះទេ អ្នកនឹងអបអរសាទរ ផ្ញើ ហើយបន្ទាប់មកទទួលបានសារដូចជា "ហេតុអ្វីបានជាជំនួយការស្រាប់តែនិយាយដូចចោរសមុទ្រ?" 🏴☠️

របាំងការពារជាក់ស្តែង៖

  • ការណែនាំមាស (សំណុំនៃការណែនាំថេរដែលអ្នកតែងតែសាកល្បង)

  • រង្វាស់ភារកិច្ច (ភាពត្រឹមត្រូវ, F1, BLEU, អ្វីក៏ដោយដែលសមស្រប)

  • ការត្រួតពិនិត្យចំណុចរបស់មនុស្ស (មែនហើយ ធ្ងន់ធ្ងរណាស់)

  • កម្រិត​នៃ​ការ​តំរែតំរង់ ("មិន​អនុញ្ញាត​ឱ្យ​ធ្លាក់​ចុះ​លើស​ពី X%")

តាមដានរបៀបបរាជ័យផងដែរ៖

  • ការរសាត់​ទម្រង់

  • ការផ្លាស់ប្តូរឥរិយាបថបដិសេធ

  • ភាពញឹកញាប់នៃការយល់ច្រឡំ

  • ការបំប៉ោងប្រវែងឆ្លើយតប

ការបង្កើនប្រសិទ្ធភាពអាចផ្លាស់ប្តូរឥរិយាបថតាមរបៀបគួរឱ្យភ្ញាក់ផ្អើល។ ចម្លែក។ រំខាន។ អាចទស្សន៍ទាយបាន នៅពេលគិតទៅក្រោយ។.


១២) បញ្ជីត្រួតពិនិត្យ៖ របៀបធ្វើឱ្យប្រសើរឡើងនូវគំរូ AI មួយជំហានម្តងៗ ✅🤖

ប្រសិនបើអ្នកចង់បានលំដាប់ប្រតិបត្តិការច្បាស់លាស់សម្រាប់ វិធីបង្កើនប្រសិទ្ធភាពគំរូ AI នេះគឺជាលំហូរការងារដែលមានទំនោរធ្វើឱ្យមនុស្សមានសុខភាពល្អ៖

  1. កំណត់ភាពជោគជ័យ
    ជ្រើសរើសរង្វាស់ចម្បងចំនួន 1-2 (ភាពយឺតយ៉ាវ ថ្លៃដើម ល្បឿនដំណើរការ គុណភាព)។

  2. វាស់ស្ទង់បន្ទុកការងារពិតប្រាកដនៃប្រវត្តិរូបមូលដ្ឋាន
    កត់ត្រា p50/p95 អង្គចងចាំ និងថ្លៃដើម។ ( PyTorch Profiler )

  3. ជួសជុល​ការកកស្ទះ​នៃ​បំពង់​បង្ហូរ​ទិន្នន័យ
    ការផ្ទុកទិន្នន័យ ការបង្កើតថូខឹន ការដំណើរការជាមុន និងការ​រៀបចំ​ជាបាច់។

  4. អនុវត្តការឈ្នះការគណនាដែលមានហានិភ័យទាប
    ភាពជាក់លាក់ចម្រុះ ការបង្កើនប្រសិទ្ធភាពខឺណែល ការបាច់កាន់តែប្រសើរ។

  5. សាកល្បងការបង្កើនប្រសិទ្ធភាពកម្មវិធីចងក្រង/ពេលដំណើរការ
    ការចាប់យកក្រាហ្វ ពេលវេលាដំណើរការសន្និដ្ឋាន ការបញ្ចូលគ្នានៃប្រតិបត្តិករ។ ( ការបង្រៀន torch.compile ឯកសារ ONNX Runtime )

  6. កាត់បន្ថយថ្លៃដើមម៉ូដែល។
    ផលិតបរិមាណដោយប្រុងប្រយ័ត្ន ចម្រាញ់ប្រសិនបើអ្នកអាចធ្វើបាន កាត់ចេញប្រសិនបើសមរម្យ។

  7. លៃតម្រូវការបម្រើការ
    ផ្ទុកក្នុងឃ្លាំងសម្ងាត់ ការដំណើរការក្នុងពេលដំណាលគ្នា ការធ្វើតេស្តផ្ទុក និងការជួសជុលភាពយឺតយ៉ាវកន្ទុយ។

  8. ផ្ទៀងផ្ទាត់គុណភាព
    ដំណើរការការធ្វើតេស្តតំរែតំរង់ និងប្រៀបធៀបលទ្ធផលជាមួយគ្នា។

  9. ធ្វើម្តងទៀតនូវ
    ការផ្លាស់ប្តូរតូចៗ កំណត់ចំណាំច្បាស់លាស់ ធ្វើម្តងទៀត។ មិនបង្ហាញ - មានប្រសិទ្ធភាព។

ហើយមែនហើយ នេះនៅតែជា របៀបធ្វើឱ្យប្រសើរឡើងនូវគំរូ AI ទោះបីជាវាមានអារម្មណ៍ដូចជា "របៀបឈប់ជាន់លើតុងរួច" ក៏ដោយ។


១៣) កំហុសទូទៅ (ដូច្នេះអ្នកកុំធ្វើវាម្តងទៀតដូចយើងដទៃទៀត) 🙃

  • ការបង្កើនប្រសិទ្ធភាពមុនពេលវាស់វែង
    អ្នកនឹងខ្ជះខ្ជាយពេលវេលា។ ហើយបន្ទាប់មកអ្នកនឹងបង្កើនប្រសិទ្ធភាពរឿងខុសដោយទំនុកចិត្ត...

  • ការដេញតាមស្តង់ដារតែមួយ
    ស្តង់ដារកុហកដោយការខកខាន។ បន្ទុកការងាររបស់អ្នកគឺជាការពិត។

  • ការមិនអើពើនឹងអង្គចងចាំ
    បញ្ហាអង្គចងចាំបណ្តាលឱ្យមានការថយចុះ ការគាំង និងការញ័រ។ ( ការយល់ដឹងអំពីការប្រើប្រាស់អង្គចងចាំ CUDA នៅក្នុង PyTorch )

  • ការកំណត់បរិមាណច្រើនពេកលឿនពេក ការកំណត់
    បរិមាណប៊ីតទាបអាចជារឿងអស្ចារ្យ ប៉ុន្តែត្រូវចាប់ផ្តើមជាមួយជំហានដែលមានសុវត្ថិភាពជាងជាមុនសិន។

  • គ្មានផែនការត្រឡប់ក្រោយទេ
    ប្រសិនបើអ្នកមិនអាចត្រឡប់ក្រោយបានលឿនទេ រាល់ការដាក់ពង្រាយនឹងក្លាយជាភាពតានតឹង។ ភាពតានតឹងបង្កើតកំហុស។


កំណត់ចំណាំបិទ៖ វិធីសាស្ត្ររបស់មនុស្សដើម្បីបង្កើនប្រសិទ្ធភាព 😌⚡

របៀបបង្កើនប្រសិទ្ធភាពគំរូ AI មិនមែនជាការ hack តែមួយមុខនោះទេ។ វាជាដំណើរការដែលមានស្រទាប់ជាច្រើន៖ វាស់វែង ជួសជុល pipeline ប្រើ compilers និង runtimes លៃតម្រូវ serving បន្ទាប់មកបង្រួមគំរូដោយប្រើ quantization ឬការចម្រាញ់ប្រសិនបើអ្នកត្រូវការ។ ធ្វើវាមួយជំហានម្តងៗ រក្សារបាំងការពារដែលមានគុណភាព ហើយកុំទុកចិត្តថា "វាមានអារម្មណ៍ថាលឿនជាង" ជារង្វាស់ (អារម្មណ៍របស់អ្នកគឺស្រស់ស្អាត អារម្មណ៍របស់អ្នកមិនមែនជា profiler ទេ)។

ប្រសិនបើអ្នកចង់បានការវេចខ្ចប់ខ្លីបំផុត៖

  • វាស់វែងជាមុនសិន🔍

  • បង្កើនប្រសិទ្ធភាពបំពង់បង្ហូរប្រេងបន្ទាប់ 🧵

  • បន្ទាប់មកធ្វើឱ្យគំរូប្រសើរឡើង 🧠

  • បន្ទាប់មក បង្កើនប្រសិទ្ធភាពការបម្រើ 🏗️

  • ត្រួតពិនិត្យគុណភាពជានិច្ច ✅

ហើយប្រសិនបើវាជួយបាន សូមរំលឹកខ្លួនឯងថា៖ គោលដៅមិនមែនជា "គំរូដ៏ល្អឥតខ្ចោះ" នោះទេ។ គោលដៅគឺជាគំរូដែលមានល្បឿនលឿន មានតម្លៃសមរម្យ និងអាចទុកចិត្តបានគ្រប់គ្រាន់ដែលអ្នកអាចគេងលក់ស្រួលនៅពេលយប់... ស្ទើរតែរាល់យប់ 😴។.

សំណួរដែលសួរញឹកញាប់

អ្វីដែលការធ្វើឱ្យប្រសើរឡើងនូវគំរូ AI មានន័យនៅក្នុងការអនុវត្តជាក់ស្តែង

«ការបង្កើនប្រសិទ្ធភាព» ជាធម្មតាមានន័យថា ការកែលម្អការរឹតបន្តឹងចម្បងមួយ៖ ភាពយឺតយ៉ាវ តម្លៃ ទំហំនៃអង្គចងចាំ ភាពត្រឹមត្រូវ ស្ថេរភាព ឬអត្រាការបម្រើ។ ផ្នែកដែលពិបាកគឺការសម្របសម្រួល - ការជំរុញផ្នែកមួយអាចធ្វើឱ្យផ្នែកមួយទៀតមានបញ្ហា។ វិធីសាស្រ្តជាក់ស្តែងមួយគឺជ្រើសរើសគោលដៅច្បាស់លាស់ (ដូចជាភាពយឺតយ៉ាវ p95 ឬពេលវេលាដល់គុណភាព) ហើយបង្កើនប្រសិទ្ធភាពឆ្ពោះទៅរកវា។ បើគ្មានគោលដៅទេ វាងាយស្រួលក្នុងការ «កែលម្អ» ហើយនៅតែចាញ់។.

របៀបបង្កើនប្រសិទ្ធភាពម៉ូដែល AI ដោយមិនធ្វើឱ្យខូចគុណភាពដោយស្ងាត់ៗ

ចូរចាត់ទុករាល់ការផ្លាស់ប្តូរល្បឿន ឬថ្លៃដើមថាជាការតំរែតំរង់ស្ងាត់ៗដែលអាចកើតមាន។ ប្រើរបាំងការពារដូចជាការណែនាំមាស ម៉ែត្រវាស់ភារកិច្ច និងការត្រួតពិនិត្យចំណុចរហ័សរបស់មនុស្ស។ កំណត់កម្រិតច្បាស់លាស់សម្រាប់ការរសាត់គុណភាពដែលអាចទទួលយកបាន ហើយប្រៀបធៀបលទ្ធផលជាមួយគ្នា។ នេះរារាំង "វាលឿនជាង" ពីការប្រែក្លាយទៅជា "ហេតុអ្វីបានជាវាស្រាប់តែក្លាយជាចម្លែកនៅក្នុងផលិតកម្ម?" បន្ទាប់ពីអ្នកដឹកជញ្ជូន។.

អ្វីដែលត្រូវវាស់វែងមុនពេលអ្នកចាប់ផ្តើមធ្វើឱ្យប្រសើរឡើង

ចាប់ផ្តើមជាមួយភាគរយនៃភាពយឺតយ៉ាវ (p50, p95, p99), អត្រាទិន្នផល (ថូខឹន/វិនាទី ឬសំណើ/វិនាទី), ការប្រើប្រាស់ GPU និង VRAM/RAM កំពូល។ តាមដានថ្លៃដើមក្នុងមួយការសន្និដ្ឋាន ឬក្នុង 1k ថូខឹន ប្រសិនបើថ្លៃដើមជាឧបសគ្គ។ គូសបញ្ជាក់ពីសេណារីយ៉ូពិតដែលអ្នកបម្រើ មិនមែនជាការណែនាំអំពីប្រដាប់ក្មេងលេងទេ។ ការរក្សា "កំណត់ហេតុប្រចាំថ្ងៃល្អឥតខ្ចោះ" តូចមួយជួយអ្នកជៀសវាងការទាយ និងធ្វើកំហុសម្តងទៀត។.

ជ័យជម្នះរហ័ស និងមានហានិភ័យទាបសម្រាប់ការអនុវត្តការហ្វឹកហាត់

ភាពជាក់លាក់ចម្រុះ (FP16/BF16) ជារឿយៗគឺជាឧបករណ៍ចាប់សញ្ញាដំបូងដែលលឿនបំផុត ប៉ុន្តែត្រូវប្រយ័ត្នចំពោះភាពមិនប្រក្រតីនៃលេខ។ ប្រសិនបើទំហំបាច់មានកំណត់ ការប្រមូលផ្តុំជម្រាលអាចធ្វើឱ្យការបង្កើនប្រសិទ្ធភាពមានស្ថេរភាពដោយមិនធ្វើឱ្យអង្គចងចាំខូច។ ការត្រួតពិនិត្យជម្រាលដោះដូរការគណនាបន្ថែមសម្រាប់អង្គចងចាំទាប ដែលអាចឱ្យបរិបទធំជាង។ កុំមើលរំលងការធ្វើសញ្ញាសម្ងាត់ និងការលៃតម្រូវកម្មវិធីផ្ទុកទិន្នន័យ - ពួកវាអាចធ្វើឱ្យ GPU អត់ឃ្លានដោយស្ងាត់ៗ។.

ពេលណាត្រូវប្រើ torch.compile, ONNX Runtime ឬ TensorRT

ឧបករណ៍ទាំងនេះផ្តោតលើផ្នែកប្រតិបត្តិការលើសចំណុះ៖ ការចាប់យកក្រាហ្វ ការលាយខឺណែល និងការបង្កើនប្រសិទ្ធភាពក្រាហ្វពេលដំណើរការ។ ពួកវាអាចផ្តល់នូវការបង្កើនល្បឿននៃការសន្និដ្ឋានស្អាត ប៉ុន្តែលទ្ធផលប្រែប្រួលទៅតាមរូបរាងម៉ូដែល និងផ្នែករឹង។ ការរៀបចំខ្លះមានអារម្មណ៍ដូចជាវេទមន្ត ឯការរៀបចំខ្លះទៀតស្ទើរតែមិនផ្លាស់ទី។ រំពឹងថានឹងមានភាពរសើបចំពោះការផ្លាស់ប្តូររូបរាង និងកំហុស "gremlin" ម្តងម្កាល - វាស់មុន និងក្រោយលើបន្ទុកការងារពិតប្រាកដរបស់អ្នក។.

ថាតើការធ្វើបរិមាណមានតម្លៃឬអត់ និងរបៀបជៀសវាងការទៅឆ្ងាយពេក

ការធ្វើបរិមាណអាចកាត់បន្ថយអង្គចងចាំ និងបង្កើនល្បឿននៃការសន្និដ្ឋាន ជាពិសេសជាមួយ INT8 ប៉ុន្តែគុណភាពអាចរអិលលើករណីគែម។ ជម្រើសប៊ីតទាប (ដូចជា INT4/k-bit) នាំមកនូវការសន្សំកាន់តែច្រើនជាមួយនឹងហានិភ័យខ្ពស់។ ទម្លាប់ដែលមានសុវត្ថិភាពបំផុតគឺការវាយតម្លៃលើសំណុំតេស្តពិតប្រាកដ និងប្រៀបធៀបលទ្ធផល មិនមែនអារម្មណ៍ពិតទេ។ ចាប់ផ្តើមជាមួយជំហានដែលមានសុវត្ថិភាពជាងមុនជាមុនសិន បន្ទាប់មកទៅភាពជាក់លាក់ទាបជាងមុន លុះត្រាតែចាំបាច់។.

ភាពខុសគ្នារវាងការកាត់ចេញ និងការចម្រាញ់សម្រាប់ការកាត់បន្ថយទំហំគំរូ

ការកាត់ចេញ​លុប​ប៉ារ៉ាម៉ែត្រ "ទម្ងន់​ស្លាប់" ហើយ​ជារឿយៗ​ត្រូវការ​ការបណ្តុះបណ្តាល​ឡើងវិញ​ដើម្បី​ស្តារ​គុណភាព​ឡើងវិញ ជាពិសេស​នៅពេល​ធ្វើ​យ៉ាង​សកម្ម។ ការ​ចម្រាញ់​បណ្តុះបណ្តាល​គំរូ​សិស្ស​តូច​ជាង​ឲ្យ​ធ្វើត្រាប់តាម​ឥរិយាបថ​របស់​គ្រូ​ធំ​ជាង ហើយ​វា​អាច​ជា ROI រយៈពេល​វែង​ខ្លាំង​ជាង​ការ​ធ្វើ​បរិមាណ​ខ្លាំង។ ប្រសិនបើ​អ្នក​ចង់បាន​គំរូ​តូច​ជាង​ដែល​មាន​ឥរិយាបថ​ស្រដៀង​គ្នា និង​នៅ​មាន​ស្ថេរភាព ការ​ចម្រាញ់​ច្រើនតែ​ជា​ផ្លូវ​ស្អាត​ជាង។.

របៀបកាត់បន្ថយថ្លៃដើមនៃការសន្និដ្ឋាន និងភាពយឺតយ៉ាវតាមរយៈការកែលម្អការបម្រើ

ការបម្រើគឺជាកន្លែងដែលការបង្កើនប្រសិទ្ធភាពក្លាយជាជាក់ស្តែង៖ ការធ្វើជាបាច់បង្កើនអត្រាទិន្នផល ប៉ុន្តែអាចប៉ះពាល់ដល់ភាពយឺតយ៉ាវប្រសិនបើធ្វើលើសកម្រិត ដូច្នេះត្រូវកែសម្រួលវាដោយប្រុងប្រយ័ត្ន។ ការរក្សាទុកក្នុងឃ្លាំងសម្ងាត់ (ការរក្សាទុកក្នុងឃ្លាំងសម្ងាត់ភ្លាមៗ និងការប្រើប្រាស់ឡើងវិញនូវឃ្លាំងសម្ងាត់ KV) អាចមានទំហំធំនៅពេលដែលបរិបទធ្វើម្តងទៀត។ ទិន្នផលស្ទ្រីមធ្វើអោយប្រសើរឡើងនូវល្បឿនដែលយល់ឃើញ ទោះបីជាពេលវេលាសរុបគឺស្រដៀងគ្នាក៏ដោយ។ សូមរកមើលការចំណាយលើថូខឹនម្តងមួយៗនៅក្នុងជង់របស់អ្នកផងដែរ - ការងារក្នុងមួយថូខឹនតូចៗកើនឡើងយ៉ាងលឿន។.

ហេតុអ្វីបានជាភាពយឺតយ៉ាវរបស់កន្ទុយមានសារៈសំខាន់ខ្លាំងណាស់នៅពេលធ្វើឱ្យប្រសើរឡើងនូវគំរូ AI

មធ្យមភាគអាចមើលទៅអស្ចារ្យ ខណៈពេលដែល p99 គឺជាគ្រោះមហន្តរាយ ហើយអ្នកប្រើប្រាស់ច្រើនតែរស់នៅក្នុងកន្ទុយ។ ភាពយឺតយ៉ាវកន្ទុយច្រើនតែមកពីភាពច្របូកច្របល់៖ ការបែកខ្ញែកអង្គចងចាំ ការកើនឡើងនៃការដំណើរការ CPU ជាមុន ការថយចុះនៃសញ្ញាសម្ងាត់ ឬឥរិយាបថបាច់មិនល្អ។ នោះហើយជាមូលហេតុដែលការណែនាំសង្កត់ធ្ងន់លើភាគរយ និងបន្ទុកការងារពិតប្រាកដ។ ប្រសិនបើអ្នកគ្រាន់តែបង្កើនប្រសិទ្ធភាព p50 អ្នកនៅតែអាចបញ្ជូនបទពិសោធន៍ដែល "មានអារម្មណ៍ថាយឺតដោយចៃដន្យ"។

ឯកសារយោង

  1. Amazon Web Services (AWS) - ភាគរយ AWS CloudWatch (និយមន័យស្ថិតិ) - docs.aws.amazon.com

  2. Google - The Tail at Scale (ការអនុវត្តល្អបំផុតសម្រាប់ភាពយឺតយ៉ាវនៃកន្ទុយ) - sre.google

  3. Google - គោលបំណងកម្រិតសេវាកម្ម (សៀវភៅ SRE) - ភាគរយនៃភាពយឺតយ៉ាវ - sre.google

  4. PyTorch - torch.compile - docs.pytorch.org

  5. PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org

  6. PyTorch - PyTorch Profiler - docs.pytorch.org

  7. PyTorch - អត្ថន័យ CUDA៖ ការគ្រប់គ្រងអង្គចងចាំ (កំណត់ចំណាំរបស់អ្នកបែងចែកអង្គចងចាំ CUDA) - docs.pytorch.org

  8. PyTorch - ភាពជាក់លាក់ចម្រុះដោយស្វ័យប្រវត្តិ (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. PyTorch - មគ្គុទ្ទេសក៍លៃតម្រូវដំណើរការ - docs.pytorch.org

  11. PyTorch - ការបង្រៀនអំពីការកាត់ចេញ - docs.pytorch.org

  12. PyTorch - ការយល់ដឹងអំពីការប្រើប្រាស់អង្គចងចាំ CUDA នៅក្នុង PyTorch - docs.pytorch.org

  13. PyTorch - ការបង្រៀន / ទិដ្ឋភាពទូទៅនៃ torch.compile - docs.pytorch.org

  14. ពេលវេលាដំណើរការ ONNX - ឯកសារពេលវេលាដំណើរការ ONNX - onnxruntime.ai

  15. NVIDIA - ឯកសារ TensorRT - docs.nvidia.com

  16. NVIDIA - ប្រភេទបរិមាណ TensorRT - docs.nvidia.com

  17. NVIDIA - ប្រព័ន្ធ Nsight - developer.nvidia.com

  18. NVIDIA - ម៉ាស៊ីនបម្រើ Triton Inference - ការ​ធ្វើ​ជា​បាច់​ថាមវន្ត - docs.nvidia.com

  19. ឯកសារ DeepSpeed ​​- - deepspeed.readthedocs.io

  20. bitsandbytes (គ្រឹះ bitsandbytes) - bitsandbytes - github.com

  21. ឱបមុខ - បង្កើនល្បឿន៖ មគ្គុទ្ទេសក៍ប្រមូលផ្តុំជម្រាល - huggingface.co

  22. មុខឱប - ឯកសារសញ្ញាសម្គាល់ - huggingface.co

  23. មុខ​ឱប - Transformers: មគ្គុទ្ទេសក៍ PEFT - huggingface.co

  24. មុខ​ឱប - ការពន្យល់អំពី Transformers: KV cache - huggingface.co

  25. មុខឱប - Transformers: ឧបករណ៍បំលែងសញ្ញាសម្ងាត់ "លឿន" (ថ្នាក់ឧបករណ៍បំលែងសញ្ញាសម្ងាត់) - huggingface.co

  26. arXiv - ការចម្រាញ់ចំណេះដឹងនៅក្នុងបណ្តាញសរសៃប្រសាទ (Hinton et al., 2015) - arxiv.org

  27. arXiv - LoRA៖ ការសម្របខ្លួនកម្រិតទាបនៃគំរូភាសាធំៗ - arxiv.org

  28. arXiv - FlashAttention៖ ការយកចិត្តទុកដាក់ច្បាស់លាស់ និងរហ័ស មានប្រសិទ្ធភាពក្នុងការចងចាំ ជាមួយនឹង IO-Awareness - arxiv.org

ស្វែងរក AI ចុងក្រោយបំផុតនៅហាងជំនួយការ AI ផ្លូវការ

អំពីយើង

ត្រឡប់ទៅប្លុកវិញ