Original Title: COMPACT AND FAST MACHINE LEARNING ACCELERATOR FOR IOT DEVICES
Source: dr.ntu.edu.sg
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ឧបករណ៍ពន្លឿនម៉ាស៊ីនរៀនដែលមានទំហំតូច និងល្បឿនលឿនសម្រាប់ឧបករណ៍ IoT

ចំណងជើងដើម៖ COMPACT AND FAST MACHINE LEARNING ACCELERATOR FOR IOT DEVICES

អ្នកនិពន្ធ៖ Huang Hantao (Nanyang Technological University)

ឆ្នាំបោះពុម្ព៖ 2018 Nanyang Technological University

វិស័យសិក្សា៖ Electrical and Electronic Engineering

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ឧបករណ៍ IoT នៅតំបន់បណ្ដាញជាយ (Edge devices) មានធនធានផ្ទុក និងកម្លាំងគណនាមានកម្រិត ដែលបង្កជាបញ្ហាប្រឈមធំក្នុងការដំណើរការក្បួនដោះស្រាយម៉ាស៊ីនរៀនស៊ីជម្រៅ (Deep Machine Learning) សម្រាប់ការវិភាគទិន្នន័យជាក់ស្តែងដោយមិនមានភាពយឺតយ៉ាវ។

វិធីសាស្ត្រ (The Methodology)៖ ការស្រាវជ្រាវនេះស្នើឡើងនូវវិធីសាស្ត្របង្កើនល្បឿនម៉ាស៊ីនរៀន និងបង្រួមទំហំម៉ូដែល ដោយរចនាស្ថាបត្យកម្មផ្នែករឹង (Hardware Architecture) និងការកែលម្អក្បួនដោះស្រាយសម្រាប់ការគណនានៅលើឧបករណ៍ IoT។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
General CPU/GPU Processors (Backpropagation/SVM)
វិធីសាស្ត្ររៀនម៉ាស៊ីនប្រពៃណីនៅលើ CPU/GPU (Backpropagation / SVM)
ងាយស្រួលក្នុងការអភិវឌ្ឍ មានភាពបត់បែនខ្ពស់ និងត្រូវបានគាំទ្រដោយបណ្ណាល័យសូហ្វវែរច្រើន។ ប្រើប្រាស់ថាមពលអគ្គិសនីខ្ពស់ខ្លាំង និងមានភាពយឺតយ៉ាវ (Latency) មិនស័ក្តិសមសម្រាប់ឧបករណ៍ IoT នៅតំបន់បណ្ដាញជាយ។ GPU ប្រើប្រាស់ថាមពលរហូតដល់ 145W ឯ CPU (x86) ប្រើ 84W ដែលមានទំហំធំ និងស៊ីភ្លើងខ្លាំងសម្រាប់ការវិភាគទិន្នន័យជាក់ស្តែង។
FPGA Accelerator with Incremental Least-Squares Solver
ឧបករណ៍ពន្លឿន FPGA ដែលប្រើក្បួនដោះស្រាយ Incremental Least-Squares ផ្ទាល់
ស៊ីភ្លើងតិចមែនទែន ល្បឿនលឿនសម្រាប់ការវាយតម្លៃ និងគាំទ្រការរៀនបន្តបន្ទាប់ (Sequential learning) លើយន្តការ IoT ផ្ទាល់។ ទាមទារចំណេះដឹងផ្នែករចនា Hardware ស្មុគស្មាញ (HDL) និងមានដែនកំណត់លើចំនួនប៉ារ៉ាម៉ែត្រម៉ូដែលដែលអាចផ្ទុកបាន។ សន្សំសំចៃថាមពលបាន 450.2x និងមានល្បឿនលឿនជាង 4.56x បើធៀបជាមួយ x86 CPU និងប្រើប្រាស់ថាមពលត្រឹមតែ 0.85W គាំទ្រដោយបន្ទះឈីប Xilinx Virtex-7។
3D CMOS-RRAM Accelerator with Tensorized Neural Network (TNN)
ស្ថាបត្យកម្ម 3D CMOS-RRAM រួមជាមួយបណ្ដាញសរសៃប្រសាទ Tensor (TNN)
បង្រួមទំហំម៉ូដែលបានតូចខ្លាំងកាត់បន្ថយតម្រូវការអង្គចងចាំ និងមានប្រសិទ្ធភាពខ្ពស់បំផុតក្នុងការសន្សំសំចៃថាមពលនិងផ្ទៃឈីប។ ជាបច្ចេកវិទ្យាថ្មីដែលទាមទារការផលិតបន្ទះឈីបកម្រិតខ្ពស់ (3D Integration) និងការបម្លែងទិន្នន័យគណនាដ៏ស្មុគស្មាញ។ អាចបង្រួមទំហំម៉ូដែលបានដល់ទៅ 64x ព្រមទាំងបង្កើនល្បឿន 14.94x និងសន្សំថាមពល 447.17x ធៀបនឹងការអនុវត្តលើកម្មវិធី CPU ក៏ដូចជាសន្សំថាមពល 162.86x បើធៀបនឹង GPU។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអនុវត្តប្រព័ន្ធនេះទាមទារនូវធនធានផ្នែករឹងពិសេសសម្រាប់បង្កើតឧបករណ៍ពន្លឿន (Hardware Accelerators) និងកម្មវិធីជំនាញសម្រាប់ការរចនាបន្ទះឈីបនិងបណ្ដាញសរសៃប្រសាទ។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះពឹងផ្អែកលើសំណុំទិន្នន័យស្តង់ដារអន្តរជាតិ (MNIST, CIFAR-10, NSL-KDD) និងទិន្នន័យអគ្គិសនីពីប្រទេសសិង្ហបុរី ដែលអាកប្បកិរិយានៃការប្រើប្រាស់ថាមពលអាចមានទម្រង់ខុសប្លែកពីប្រជាជនកម្ពុជា។ សម្រាប់ការអនុវត្តនៅកម្ពុជា ការប្រមូលទិន្នន័យជាក់ស្តែងក្នុងស្រុក (ឧទាហរណ៍៖ ទម្លាប់នៃការបើកម៉ាស៊ីនត្រជាក់នៅរដូវក្តៅ ឬការប្រើប្រាស់ឧបករណ៍អគ្គិសនីក្នុងអគារ) គឺជារឿងចាំបាច់បំផុតដើម្បីធានាបាននូវភាពត្រឹមត្រូវខ្ពស់។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

វិធីសាស្ត្រនៃការគណនាម៉ាស៊ីនរៀនប្រកបដោយប្រសិទ្ធភាពថាមពលនៅលើឧបករណ៍ IoT នេះ ពិតជាមានសក្តានុពលខ្ពស់សម្រាប់ជួយជំរុញការអភិវឌ្ឍទីក្រុងឆ្លាតវៃនៅកម្ពុជា ពិសេសសម្រាប់ការសន្សំសំចៃថាមពល និងសន្តិសុខប្រព័ន្ធអ៊ិនធឺណិត។

ការវិនិយោគ និងស្រាវជ្រាវលើប្រព័ន្ធម៉ាស៊ីនរៀនខ្នាតតូច (TinyML/Edge AI) នឹងផ្តល់ដំណោះស្រាយដ៏សមស្របសម្រាប់បរិបទប្រទេសកម្ពុជា ក្នុងការកាត់បន្ថយចំណាយហេដ្ឋារចនាសម្ព័ន្ធ Cloud ព្រមទាំងរក្សាបាននូវសុវត្ថិភាពទិន្នន័យ។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃការរចនាផ្នែករឹង (Hardware Design): ចាប់ផ្តើមដោយការសិក្សាភាសាសរសេរកូដសម្រាប់ផ្នែករឹង ដូចជា VerilogVHDL និងហ្វឹកហាត់ប្រើប្រាស់កម្មវិធី Xilinx Vivado ដើម្បីយល់ពីការរចនាសៀគ្វីតក្កវិទ្យា (Logic Circuits) ក្នុងកម្រិតមូលដ្ឋាន។
  2. ស្វែងយល់ពីម៉ាស៊ីនរៀនលើឧបករណ៍ខ្នាតតូច (Edge AI & Model Compression): សិក្សាពីក្បួនដោះស្រាយសម្រាប់បង្រួមទំហំបណ្ដាញសរសៃប្រសាទ (Model Compression, Quantization) ដោយអនុវត្តផ្ទាល់តាមរយៈការប្រើប្រាស់ MATLAB Tensor-train toolbox ឫឧបករណ៍ទំនើបៗដូចជា TensorFlow Lite ជាដើម។
  3. អនុវត្តផ្ទាល់ជាមួយឧបករណ៍អភិវឌ្ឍន៍ខ្នាតតូច (Hardware Prototyping): សាកល្បងដំណើរការម៉ូដែលម៉ាស៊ីនរៀនសាមញ្ញៗ នៅលើ FPGA Boards (ឧទាហរណ៍៖ Xilinx Zynq) ឬ ARM-based Boards (ឧទាហរណ៍៖ BeagleBoard, Raspberry Pi) ដើម្បីស្វែងយល់ពីអន្តរកម្មរវាងផ្នែករឹងនិងផ្នែកទន់។
  4. បង្កើតគម្រោងស្រាវជ្រាវជាក់ស្តែង (Local Applied Project): ផ្តួចផ្តើមគម្រោងដូចជា ប្រព័ន្ធគ្រប់គ្រងថាមពលអគ្គិសនីក្នុងថ្នាក់រៀន ដោយប្រមូលទិន្នន័យជាក់ស្តែងតាមរយៈឧបករណ៍ Smart Meters រួចប្រើប្រាស់ម៉ាស៊ីនរៀនដើម្បីព្យាករណ៍ និងជួយកាត់បន្ថយការសាយភាយថាមពលចោលឥតប្រយោជន៍។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Tensor-Train Decomposition ជាវិធីសាស្ត្រគណិតវិទ្យាមួយក្នុងការបំបែកទិន្នន័យដែលមានវិមាត្រច្រើន (Tensors) ទៅជាបំណែកតូចៗ (Cores) ដែលជួយកាត់បន្ថយទំហំផ្ទុកទិន្នន័យរបស់បណ្តាញសរសៃប្រសាទ (Neural Networks) យ៉ាងមានប្រសិទ្ធភាពដោយមិនធ្វើឲ្យបាត់បង់ភាពសុក្រឹតនៃការទស្សន៍ទាយ។ ប្រៀបដូចជាការរុះរើទូខោអាវធំមួយទៅជាបំណែកតូចៗ ដើម្បីងាយស្រួលដឹកជញ្ជូនចូលក្នុងបន្ទប់តូច រួចទើបតម្លើងវាមកវិញ។
3D CMOS-RRAM ជាបច្ចេកវិទ្យាស្ថាបត្យកម្មបន្ទះឈីបដែលត្រួតស៊ីគ្នាជាជាន់ៗ (3D) ដោយរួមបញ្ចូលបន្ទះសៀគ្វី CMOS សម្រាប់បញ្ជា និងអង្គចងចាំ RRAM សម្រាប់រក្សាទុកនិងគណនាទិន្នន័យក្នុងពេលតែមួយ ដើម្បីសន្សំសំចៃថាមពលនិងបង្កើនល្បឿនក្នុងការដំណើរការម៉ាស៊ីនរៀន។ ដូចជាការសាងសង់អគារខុនដូកម្ពស់ច្រើនជាន់ជំនួសឲ្យផ្ទះផ្ទាល់ដី ដើម្បីចំណេញទីធ្លា ងាយស្រួលដើរទៅរកគ្នា និងចំណេញថាមពលអគ្គិសនី។
Edge Computing ជាការអនុវត្តការគណនានិងវិភាគទិន្នន័យផ្ទាល់នៅលើឧបករណ៍ ឬក្បែរប្រភពទិន្នន័យ (ដូចជាកាមេរ៉ា ឬសេនស័រ) ផ្ទាល់តែម្តង ជាជាងបញ្ជូនទិន្នន័យទាំងអស់នោះទៅកាន់ម៉ាស៊ីនមេ (Cloud) ដែលជួយកាត់បន្ថយការពន្យារពេល និងការពារឯកជនភាពទិន្នន័យយ៉ាងមានសុវត្ថិភាព។ ជំនួសឲ្យការផ្ញើសំណួរទៅសួរមេបញ្ជាការនៅទីស្នាក់ការកណ្តាល (Cloud) ទាហានជួរមុខ (Edge device) អាចសម្រេចចិត្តដោះស្រាយបញ្ហាដោយខ្លួនឯងផ្ទាល់តែម្តង។
Least-Squares Solver ជាក្បួនដោះស្រាយគណិតវិទ្យាដែលប្រើសម្រាប់ស្វែងរកចម្លើយស័ក្តិសមបំផុត (Optimal solution) តាមរយៈការកាត់បន្ថយផលបូកនៃការ៉េនៃកំហុស (Error) រវាងលទ្ធផលដែលបានទស្សន៍ទាយ និងលទ្ធផលជាក់ស្តែង ដែលជួយឲ្យការហ្វឹកហាត់ម៉ូដែលម៉ាស៊ីនរៀនមានល្បឿនលឿនជាងវិធីសាស្ត្រប្រពៃណីផ្សេងទៀត។ ប្រៀបដូចជាការព្យាយាមគូសបន្ទាត់ត្រង់មួយឲ្យនៅក្បែរចំណុចអុចៗជាច្រើនបំផុតតាមដែលអាចធ្វើទៅបាន ដើម្បីមើលពីនិន្នាការរួមរបស់វា។
Distributed Machine Learning ជានីតិវិធីបែងចែកការហ្វឹកហាត់ម៉ាស៊ីនរៀនទៅកាន់កុំព្យូទ័រ ឬឧបករណ៍ខ្នាតតូចជាច្រើនឲ្យដំណើរការព្រមៗគ្នា រួចទើបប្រមូលចម្លើយមកបញ្ចូលគ្នាជាក្រោយ (Ensemble learning) ដែលធ្វើឲ្យប្រព័ន្ធអាចដោះស្រាយបញ្ហាស្មុគស្មាញបានដោយមិនបាច់ពឹងផ្អែកលើម៉ាស៊ីនធំតែមួយ។ ដូចជាការចែកកិច្ចការផ្ទះដ៏ច្រើនឲ្យសិស្សមួយក្រុមធ្វើម្នាក់មួយចំណែក រួចយកចម្លើយមកផ្គុំគ្នានៅពេលបញ្ចប់ ដើម្បីចំណេញពេលវេលា។
Field-Programmable Gate Array (FPGA) ជាប្រភេទបន្ទះឈីបដែលអាចត្រូវបានសរសេរកម្មវិធីឡើងវិញ (Reprogrammable) ក្រោយពេលផលិតចេញពីរោងចក្ររួច ដើម្បីកែប្រែទម្រង់សៀគ្វីរបស់វាឲ្យស័ក្តិសមទៅនឹងតម្រូវការមុខងារជាក់លាក់ណាមួយ ដូចជាការបម្លែងវាជាឧបករណ៍ពន្លឿនម៉ាស៊ីនរៀនជាដើម។ ប្រៀបដូចជាបន្ទះលេង Lego ដែលយើងអាចដោះចេញ និងផ្គុំជាទម្រង់ថ្មីៗបានតាមចិត្តចង់ មិនដូចឧបករណ៍ក្មេងលេងដែលចាក់ពុម្ពជាប់ជាផ្ទាំងតែមួយនោះទេ។
Sequential Learning ជាដំណើរការដែលម៉ូដែលម៉ាស៊ីនរៀនធ្វើការធ្វើបច្ចុប្បន្នភាពចំណេះដឹងរបស់វាជាបន្តបន្ទាប់រាល់ពេលមានទិន្នន័យថ្មីចូលមក ដោយមិនបាច់ចាប់ផ្តើមហ្វឹកហាត់ឡើងវិញពីសូន្យជាមួយទិន្នន័យចាស់ទាំងអស់ ដែលស័ក្តិសមបំផុតសម្រាប់ប្រព័ន្ធ IoT ដែលបញ្ជូនទិន្នន័យរហូត។ ដូចជារៀនមេរៀនថ្មីនៅថ្ងៃនេះ ដោយគ្រាន់តែបូកបញ្ចូលចំណេះដឹងថ្មីនេះទៅក្នុងខួរក្បាល ដោយមិនបាច់ត្រលប់ទៅរៀនមេរៀនពីថ្នាក់មត្តេយ្យឡើងវិញនោះទេ។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖