TinyML: เทคโนโลยีแมชชีนเลิร์นนิงพลังงานต่ำมาก
(ikkaro.net)TinyML คืออะไร
- TinyML หมายถึง การใช้งานแมชชีนเลิร์นนิงบนไมโครคอนโทรลเลอร์
- แตกต่างจากระบบที่ใช้ใน ML แบบดั้งเดิม โดยถูกใช้กับระบบที่มี CPU และ RAM น้อยมาก และใช้พลังงานในระดับมิลลิวัตต์หรือไมโครวัตต์
- ทำการย่อขนาดโมเดลขนาดใหญ่เพื่อให้สามารถใช้งานบนอุปกรณ์และไมโครคอนโทรลเลอร์ที่มีทรัพยากรจำกัดมากได้
- เว็บไซต์ทางการของมูลนิธิ TinyML คือ https://www.tinyml.org/
- มีชุดคอร์สเรียนฟรี 3 คอร์สจากมหาวิทยาลัยฮาร์วาร์ด:
- พื้นฐานของ TinyML (จะสร้างอะไร ทำไมต้องสร้าง และมีปัญหาอะไรบ้าง)
- การประยุกต์ใช้ TinyML (การขับเคลื่อนด้วยข้อมูล อคติ ฯลฯ)
- การปรับใช้ TinyML (จะนำโมเดลไปวางไว้ที่ใด ความปลอดภัย และความเป็นส่วนตัว)
หลักการพื้นฐานของ TinyML
- ระบบฝังตัวที่ใช้ไมโครคอนโทรลเลอร์มีหน่วยความจำได้สูงสุด 256kB จึงไม่สามารถรันโมเดลขนาดใหญ่ได้
- ตัวอย่างระบบปฏิบัติการบางส่วนที่ใช้ร่วมกับไมโครคอนโทรลเลอร์ได้:
- FreeRTOS
- Mbed OS
- แมชชีนเลิร์นนิงประกอบด้วยอัลกอริทึมที่ใช้ค้นหารูปแบบจากข้อมูล
- ใน TinyML จะบีบอัดอัลกอริทึมเหล่านี้เพื่อให้สามารถค้นหารูปแบบจากข้อมูลได้อย่างมีประสิทธิภาพ
- ข้อมูลที่สร้างขึ้นใน IoT ต่อวันมีปริมาณ 5 ควินทิลเลียนไบต์ และมีการวิเคราะห์น้อยกว่า 1% เท่านั้น
เทคนิคการบีบอัดอัลกอริทึม
-
การตัดแต่งโมเดล (Pruning)
- การตัดแต่งซินแนปส์: ลบการเชื่อมต่อในเครือข่ายออกจากโมเดล ซึ่งบางครั้งอาจทำให้ความแม่นยำลดลง
- การตัดแต่งนิวรอน: ลบนิวรอนทั้งก้อนออกจากโมเดลเพื่อลดความต้องการในการคำนวณของเครือข่าย
-
การควอนไทซ์ (Quantization)
- ทำให้ค่าต่าง ๆ กลายเป็นค่าดิสครีตในช่วงที่เล็กลง ตัวอย่างเช่น หากทำให้ค่าทศนิยมแบบ floating point เป็นดิสครีตในช่วง -128 ถึง 127 ก็จะต้องพิจารณาเพียง 256 ค่าเท่านั้น
- หากเปลี่ยนค่าทศนิยมแบบ floating point ที่เก็บใน 4 ไบต์ ให้เป็นค่าจำนวนเต็มที่เก็บใน 1 ไบต์ ขนาดจะลดลง 4 เท่า
- การควอนไทซ์มีความสำคัญมากใน TinyML เนื่องจากข้อจำกัดด้านทรัพยากร
-
การกลั่นความรู้ (Knowledge distillation)
- ใช้ความรู้และความชำนาญเพื่อทำให้โมเดลมีขนาดเล็กลง
เครื่องมือ
- ใช้ TensorFlow Lite
- TensorFlow มุ่งเน้นไปที่นักวิจัย ML ขณะที่ TensorFlow Lite มีไว้สำหรับนักพัฒนาแอปพลิเคชัน
การใช้งาน TinyML
- สามารถดูกรณีการใช้งาน TinyML ที่เหมาะกับโลกของ DIY เมกเกอร์ และแฮ็กเกอร์ ได้ที่เว็บไซต์นี้
การใช้ TinyML ในอุตสาหกรรม
- ในภาคอุตสาหกรรม มีการใช้เพื่อการบำรุงรักษา โดยช่วยเตือนล่วงหน้าว่าอาจเกิดความขัดข้องเมื่อเกิดการสั่นสะเทือน ส่งผลให้เพิ่มประสิทธิภาพและลดต้นทุน
- อาจเกิดการแจ้งเตือนผิดพลาดได้จากปัญหาด้านความแม่นยำ และความรับผิดชอบต่อการแจ้งเตือนผิดพลาดนั้นอยู่ที่ผู้ปฏิบัติงานหรือระบบ
TinyML กับสิ่งแวดล้อม
- แทนที่จะเก็บข้อมูลแล้วค่อยประมวลผล การใช้ TinyML ทำให้สามารถรับคำตอบแบบเรียลไทม์ต่อการเปลี่ยนแปลงของสิ่งแวดล้อมได้ ตัวอย่างเช่น สามารถรับรู้การเปลี่ยนแปลงในชีวิตของสัตว์ป่าได้แบบเรียลไทม์
TinyML เพื่อมนุษย์
- ช่วยให้ผู้มีความพิการสามารถทำงานได้มากขึ้นโดยไม่ต้องใช้มือ
- ปรับปรุง UI และ UX ของแอปพลิเคชันให้ใช้งานได้ง่ายขึ้น
- เทคโนโลยีถูกสร้างขึ้นเพื่อยกระดับประสบการณ์ของมนุษย์ เทคโนโลยีควรช่วยเหลือผู้คน
ความเสี่ยงและข้อเสีย
- จะทำงานได้ดีสำหรับทุกกลุ่มประชากรหรือไม่?
- รับประกันความเป็นส่วนตัวของข้อมูลได้หรือไม่?
- สามารถปกป้องข้อมูลนี้ได้หรือไม่?
- ควรสร้างเทคโนโลยีบนพื้นฐานของ AI ที่ยึดมนุษย์เป็นศูนย์กลาง และต้องคำนึงถึงสิ่งนี้ในกระบวนการออกแบบ พัฒนา และปรับใช้
ความเห็นของ GN⁺
- TinyML เป็นเทคโนโลยีนวัตกรรมที่ทำให้แมชชีนเลิร์นนิงเป็นไปได้แม้ในสภาพแวดล้อมที่มีทรัพยากรจำกัด และสามารถเพิ่มทั้งประสิทธิภาพและความฉลาดของอุปกรณ์ IoT ได้อย่างมาก
- เทคนิคการบีบอัดอัลกอริทึม เช่น การตัดแต่งโมเดล การควอนไทซ์ และการกลั่นความรู้ เป็นองค์ประกอบสำคัญที่ทำให้โมเดลแมชชีนเลิร์นนิงมีขนาดเล็กลงและสามารถทำงานได้บนอุปกรณ์พลังงานต่ำ
- การประยุกต์ใช้ TinyML สามารถช่วยยกระดับคุณภาพชีวิตของมนุษย์ได้ในหลากหลายด้าน เช่น การบำรุงรักษาในอุตสาหกรรม การติดตามสิ่งแวดล้อม และการช่วยเหลือผู้พิการ ซึ่งเป็นตัวอย่างที่ดีของผลกระทบเชิงบวกของเทคโนโลยีต่อสังคม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
การพัฒนาคอมไพเลอร์ TinyML ด้วย Rust
predict()สำหรับทำ inference กับโมเดลที่กำหนดเสน่ห์ของวงการ TinyML
ไวรัสที่โจมตีโครงสร้างพื้นฐานโดยใช้ LLM
คำอธิบาย TinyML / Edge ML ของ Edge Impulse
ตัวอย่างการใช้ ESP32, Tensor Flow Lite และ Edge Impulse ของ Hacker Box
ปัจจุบันและอนาคตของ TinyML
มุมมองที่หลากหลายต่อ TinyML