Original Title: TinyML-RV: Quantized Training of Machine Learning Models on RISC-V Platforms
Source: www.researchgate.net
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

TinyML-RV: ការបណ្តុះបណ្តាលម៉ូដែលម៉ាស៊ីនរៀនតាមបែប Quantized លើប្រព័ន្ធ RISC-V

ចំណងជើងដើម៖ TinyML-RV: Quantized Training of Machine Learning Models on RISC-V Platforms

អ្នកនិពន្ធ៖ Marcelo José Soares Ribeiro (University of Minho)

ឆ្នាំបោះពុម្ព៖ 2025 University of Minho

វិស័យសិក្សា៖ Computer Engineering

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

បញ្ហា (The Problem)៖ ការរួមបញ្ចូលប្រព័ន្ធម៉ាស៊ីនរៀន (Machine Learning) ទៅក្នុងឧបករណ៍ Edge/IoT ទាមទារថាមពលកុំព្យូទ័រ និងអង្គចងចាំច្រើន ដែលធ្វើឲ្យមានការលំបាកក្នុងការបណ្តុះបណ្តាលម៉ូដែលដោយផ្ទាល់នៅលើឧបករណ៍ (on-device training) ដែលមានធនធានមានកម្រិត។

វិធីសាស្ត្រ (The Methodology)៖ និក្ខេបបទនេះស្នើឡើងនូវក្របខ័ណ្ឌបណ្តុះបណ្តាលដែលប្រើប្រាស់ធនធានតិចតួច ដោយបញ្ចូលក្បួនដោះស្រាយ Lightweight Stochastic Gradient Descent (L-SGD) ជាមួយនឹងបណ្ណាល័យ PULP-NN ។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
ARM Float32 L-SGD (Baseline)
វិធីសាស្ត្រ ARM Float32 L-SGD (គោល)
មានដំណើរការលឿនក្នុងវគ្គ Forward Pass ដោយសារមានអង្គគណនា Floating-Point Unit (FPU) គាំទ្រផ្ទាល់ពីផ្នែករឹង (Hardware)។ ប្រើប្រាស់អង្គចងចាំច្រើន និងស៊ីថាមពលអគ្គិសនីខ្ពស់ ដែលមិនសូវស័ក្តិសមសម្រាប់ឧបករណ៍ខ្នាតតូចប្រភេទ Ultra-low power នោះទេ។ ប្រើប្រាស់រយៈពេល ៤.៧៩ms និងទទួលបានភាពត្រឹមត្រូវ ៩០.៦០% លើសំណុំទិន្នន័យ CogDist។
RISC-V Float32 L-SGD (Optimized)
វិធីសាស្ត្រ RISC-V Float32 L-SGD (ដែលបានធ្វើឲ្យប្រសើរ)
អាចដំណើរការបាននៅលើប្រព័ន្ធដែលគ្មាន FPU តាមរយៈការប្រើប្រាស់បណ្ណាល័យគណិតវិទ្យាជំនួស (fast_math.h) ប្រកបដោយប្រសិទ្ធភាព។ មានដំណើរការយឺតជាងប្រព័ន្ធ ARM (ដែលមាន FPU) ដោយសារប្រតិបត្តិការគណនា Float ត្រូវក្លែងធ្វើ (Emulate) តាមរយៈកម្មវិធីកូដ។ ប្រើប្រាស់រយៈពេល ១៧ms ជាមួយនឹងភាពត្រឹមត្រូវ ៩២.៩៦% លើសំណុំទិន្នន័យ CogDist។
RISC-V Int8 Quantized L-SGD
វិធីសាស្ត្រ RISC-V Int8 Quantized L-SGD
កាត់បន្ថយការប្រើប្រាស់អង្គចងចាំបានរហូតដល់ ១.៦ ដង និងមានល្បឿនប្រតិបត្តិការលឿនជាង Float32 ដល់ទៅ ២.២ ដង។ អាចប្រឈមនឹងបញ្ហា Saturation ធ្វើឲ្យប៉ះពាល់ដល់ភាពត្រឹមត្រូវ ប្រសិនបើបណ្តុះបណ្តាលម៉ូដែលពីចំណុចសូន្យ (ទាមទារការប្រើម៉ូដែល Pre-trained)។ ប្រើប្រាស់រយៈពេលត្រឹមតែ ៩ms ខណៈភាពត្រឹមត្រូវកើនដល់ ៩៦.០០% លើសំណុំទិន្នន័យ CogDist។

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

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

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

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យទូទៅដូចជា CogDist និង CarEvaluation ដើម្បីវាស់ស្ទង់ដំណើរការនៃស្ថាបត្យកម្មកុំព្យូទ័រ ដោយមិនបានផ្តោតលើភាពលម្អៀងនៃទិន្នន័យ (Data Bias) នោះទេ។ សម្រាប់ការយកមកអនុវត្តនៅប្រទេសកម្ពុជា ការប្រមូលសំណុំទិន្នន័យជាក់ស្តែងក្នុងស្រុក (Local Data) ជារឿងចាំបាច់ ព្រោះអាកប្បកិរិយា ឬទិន្នន័យបរិស្ថាននៅកម្ពុជាអាចមានលក្ខណៈខុសប្លែកពីទិន្នន័យគោល ដែលតម្រូវឲ្យមានការបណ្តុះបណ្តាលម៉ូដែលសាជាថ្មី (Fine-tuning)។

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

បច្ចេកវិទ្យា TinyML និងស្ថាបត្យកម្ម RISC-V នេះមានសក្តានុពលខ្ពស់ខ្លាំងសម្រាប់ការអភិវឌ្ឍប្រព័ន្ធឆ្លាតវៃនៅកម្ពុជា ជាពិសេសនៅក្នុងតំបន់ដែលមានធនធាន និងការតភ្ជាប់អ៊ីនធឺណិតមានកម្រិត។

សរុបមក ការបណ្តុះបណ្តាលម៉ូដែល AI ដោយផ្ទាល់លើឧបករណ៍ខ្នាតតូច ផ្តល់លទ្ធភាពឲ្យស្ថាប័នកម្ពុជាអាចបង្កើតដំណោះស្រាយបច្ចេកវិទ្យាដែលមានតម្លៃថោក សន្សំសំចៃថាមពលអគ្គិសនី និងរក្សាបាននូវឯកជនភាពទិន្នន័យកម្រិតខ្ពស់។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ TinyML និង Edge Computing: និស្សិតគួរចាប់ផ្តើមសិក្សាពី TensorFlow Lite for Microcontrollers តាមរយៈវគ្គសិក្សាអនឡាញ (ឧទាហរណ៍៖ Coursera TinyML Specialization របស់សាកលវិទ្យាល័យហាវឺដ) ដើម្បីយល់ពីរបៀបដាក់ដំណើរការម៉ូដែល AI លើឧបករណ៍ Microcontrollers។
  2. ស្វែងយល់ពីស្ថាបត្យកម្ម RISC-V និងការសរសេរកូដ C/C++: សិក្សាស៊ីជម្រៅពីប្រព័ន្ធ Instruction Set Architecture (ISA) របស់ RISC-V និងការសរសេរកូដកម្រិតទាប (Low-level C/C++) សម្រាប់ការគ្រប់គ្រងអង្គចងចាំ និងការបង្កើនល្បឿនប្រតិបត្តិការដោយមិនប្រើ Floating-Point Unit។
  3. អនុវត្តបច្ចេកទេស Model Quantization: រៀនបម្លែងទំហំទិន្នន័យម៉ូដែលពី Float32 ទៅជា Int8 តាមរយៈវិធីសាស្ត្រ Post-Training Quantization (PTQ) និង Quantization-Aware Training (QAT) ដើម្បីសន្សំសំចៃទំហំអង្គចងចាំ (RAM/ROM)។
  4. សាកល្បងដំណើរការលើ Hardware ពិតប្រាកដ ឬ Emulators: ទិញឧបករណ៍ដូចជា STM32 NucleoGAP-8 Board មកសាកល្បងផ្ទាល់។ ប្រសិនបើគ្មានថវិកា អាចប្រើប្រាស់កម្មវិធីក្លែងធ្វើដូចជា RenodeQEMU ដើម្បីសាកល្បងកូដ RISC-V នៅលើកុំព្យូទ័ររបស់អ្នក។
  5. អភិវឌ្ឍក្បួនដោះស្រាយ On-device Training: សាកល្បងសរសេរកូដ Lightweight Stochastic Gradient Descent (L-SGD) ដោយប្រើប្រាស់បណ្ណាល័យ PULP-NN និង CMSIS-NN ដើម្បីធ្វើឲ្យឧបករណ៍របស់អ្នកអាចរៀនសូត្រពីទិន្នន័យថ្មីៗដោយខ្លួនឯង ដោយមិនបាច់ពឹងផ្អែកលើ Cloud ឡើយ។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Quantization គឺជាដំណើរការនៃការបម្លែងទិន្នន័យម៉ូដែលម៉ាស៊ីនរៀនពីទម្រង់ដែលមានទំហំធំ (ដូចជា 32-bit floating-point) ទៅជាទម្រង់តូចជាង (ដូចជា 8-bit integer) ដើម្បីសន្សំសំចៃអង្គចងចាំ និងជួយឲ្យដំណើរការគណនាលឿនជាងមុននៅលើឧបករណ៍ដែលមានធនធានមានកម្រិត។ ដូចជាការបង្រួមរូបភាពទំហំធំ (HD) ទៅជារូបភាពតូចជាងមុន (SD) ដើម្បីងាយស្រួលផ្ញើ ឬរក្សាទុក តែអ្នកនៅតែអាចមើលដឹងថារូបនោះជារូបអ្វី។
TinyML ជាបច្ចេកវិទ្យាដែលអនុញ្ញាតឲ្យដំណើរការប្រព័ន្ធបញ្ញាសិប្បនិម្មិត (AI) និងម៉ាស៊ីនរៀន (ML) ដោយផ្ទាល់នៅលើឧបករណ៍អេឡិចត្រូនិកខ្នាតតូចបំផុត (Microcontrollers) ដែលស៊ីថាមពលថ្មតិច និងមិនទាមទារការតភ្ជាប់អ៊ីនធឺណិត។ ដូចជាការដាក់ខួរក្បាលឆ្លាតវៃខ្នាតតូចមួយទៅក្នុងនាឡិកាដៃ ឬសេនស័រ ដើម្បីឲ្យវាអាចគិតនិងសម្រេចចិត្តដោយខ្លួនឯងបានភ្លាមៗដោយមិនបាច់សួរទៅម៉ាស៊ីនមេ។
RISC-V គឺជាស្ថាបត្យកម្មកុំព្យូទ័រប្រភេទកូដបើកចំហ (Open-source Instruction Set Architecture) ដែលអនុញ្ញាតឲ្យអ្នកអភិវឌ្ឍន៍អាចយកទៅរចនាបន្ទះឈីបដោយសេរី ងាយស្រួលកែច្នៃ និងសន្សំសំចៃថាមពល ជាពិសេសសម្រាប់ឧបករណ៍ IoT។ ដូចជាប្លង់សាងសង់ផ្ទះដែលអាចទាញយកមកប្រើដោយឥតគិតថ្លៃ ហើយអ្នកអាចកែច្នៃបន្ថែមបន្ទប់ ឬបន្ថយទំហំតាមតម្រូវការជាក់ស្តែងរបស់អ្នក។
Stochastic Gradient Descent (SGD) ជាក្បួនដោះស្រាយសម្រាប់បណ្តុះបណ្តាលម៉ូដែលដោយវាធ្វើការកែសម្រួលទម្ងន់ (Weights) របស់ម៉ូដែលបន្តិចម្តងៗ ដោយផ្អែកលើការគណនាកំហុស ដើម្បីឲ្យម៉ូដែលទទួលបានភាពត្រឹមត្រូវខ្ពស់បំផុត។ L-SGD គឺជាទម្រង់កាត់បន្ថយទំហំរបស់វាសម្រាប់ប្រើលើឧបករណ៍តូចៗ។ ដូចជាមនុស្សម្នាក់ដែលបិទភ្នែកដើរចុះភ្នំ ដោយប្រើជើងស្ទាបរកផ្លូវដែលទេរចុះក្រោមបន្តិចម្តងៗ រហូតដល់អាចដើរទៅដល់ចំណុចទាបបំផុតនៃជ្រលងភ្នំ។
Floating-Point Unit (FPU) ជាផ្នែកមួយនៃខួរក្បាលកុំព្យូទ័រ (Hardware) ដែលមានតួនាទីពិសេសសម្រាប់ធ្វើការគណនាលេខទសភាគ (លេខមានក្បៀស) យ៉ាងលឿន។ ប្រព័ន្ធកុំព្យូទ័រដែលគ្មាន FPU ត្រូវប្រើកម្មវិធីកូដដើម្បីក្លែងធ្វើការគណនា ដែលធ្វើឲ្យស៊ីពេលយូរជាងមុន។ ដូចជាការប្រើម៉ាស៊ីនគិតលេខដើម្បីបូកដកលេខក្បៀសវែងៗ ប្រៀបធៀបនឹងការអង្គុយគិតលេខនោះដោយប្រើក្រដាសនិងប៊ិច។
Gradient Saturation ជាបញ្ហាដែលកើតឡើងនៅពេលបណ្តុះបណ្តាលម៉ូដែលដោយប្រើទិន្នន័យខ្នាតតូច (int8) ដែលធ្វើឲ្យតម្លៃនៃការផ្លាស់ប្តូរធំពេក រហូតដល់ហួសដែនកំណត់អតិបរមានៃ 8-bit ទើបតម្លៃនោះត្រូវកាត់ត្រឹមស្មើគ្នា ដែលធ្វើឲ្យម៉ូដែលបាត់បង់ព័ត៌មាននិងឈប់រៀនសូត្របន្ត។ ដូចជាការចាក់ទឹកចូលក្នុងកែវតូចមួយ បើចាក់ទឹកច្រើនពេកវានឹងហៀរចេញ ហើយយើងមិនដឹងថាបរិមាណទឹកដែលហៀរចេញនោះមានប៉ុន្មានពិតប្រាកដនោះទេ។
Federated Learning គឺជាវិធីសាស្ត្របណ្តុះបណ្តាលម៉ាស៊ីនរៀន ដោយឲ្យឧបករណ៍នីមួយៗរៀនពីទិន្នន័យរបស់ខ្លួនផ្ទាល់ រួចបញ្ជូនតែលទ្ធផលនៃការរៀន (Model Updates) ទៅកាន់ម៉ាស៊ីនកណ្តាល ដោយមិនបញ្ជូនទិន្នន័យឯកជន (Raw Data) ឡើយ ដើម្បីរក្សាឯកជនភាព។ ដូចជាសិស្សម្នាក់ៗធ្វើលំហាត់នៅផ្ទះរៀងខ្លួន រួចផ្ញើតែចម្លើយចុងក្រោយទៅគ្រូដើម្បីបូកសរុប ដោយមិនចាំបាច់យកសៀវភៅព្រាងទៅឲ្យគ្រូមើលនោះទេ។
Backpropagation គឺជាដំណើរការបញ្ជូនកំហុសត្រឡប់ថយក្រោយនៅក្នុងបណ្តាញសរសៃប្រសាទសិប្បនិម្មិត (Neural Network) ដើម្បីប្រាប់ស្រទាប់នីមួយៗឲ្យដឹងពីទំហំកំហុសរបស់ខ្លួន និងធ្វើការកែតម្រូវទម្ងន់ទិន្នន័យសម្រាប់ការទស្សន៍ទាយលើកក្រោយឲ្យកាន់តែសុក្រឹត។ ដូចជាថៅកែប្រាប់កំហុសទៅអ្នកចាត់ការ ហើយអ្នកចាត់ការប្រាប់បន្តទៅបុគ្គលិក ដើម្បីឲ្យអ្នកគ្រប់គ្នាជួយកែតម្រូវចំណុចខ្សោយរៀងៗខ្លួនសម្រាប់គម្រោងក្រោយ។

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

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

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