พื้นฐาน AI

TinyML คืออะไร? การเรียนรู้ของเครื่องบนไมโครคอนโทรลเลอร์

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

TinyML นำการสรุปผลการเรียนรู้ของเครื่องไปยังอุปกรณ์ที่มีข้อจำกัดสูง เช่น ไมโครคอนโทรลเลอร์, ตัวประมวลผลสัญญาณดิจิทัลขนาดเล็ก, และเซ็นเซอร์ที่ใช้พลังงานต่ำ ระบบเหล่านี้อาจมีหน่วยความจำระดับกิโลไบต์หรือเมกะไบต์, มีข้อจำกัดด้านพลังงานอย่างเคร่งครัด, ไม่มีการเชื่อมต่อเครือข่ายต่อเนื่อง, และต้องทำงานภายในเวลาจำกัดแบบเรียลไทม์.

คุณค่าของ TinyML ไม่ได้มาจากโมเดลที่เล็กลงเพียงอย่างเดียว การประมวลผลใกล้เซ็นเซอร์สามารถลดความหน่วง, แบนด์วิดท์, และการเปิดเผยข้อมูลดิบได้ พร้อมทั้งทำให้ผลิตภัณฑ์สามารถทำงานเป็นเวลานานบนแบตเตอรี่หรือพลังงานที่เก็บรวบรวมได้.

ประเด็นสำคัญ

  • TinyML ถูกกำหนดโดยงบประมาณฮาร์ดแวร์และซอฟต์แวร์ทั้งหมด, ไม่ใช่เพียงขนาดของโมเดลเดียว
  • การควอนติฟาย, สถาปัตยกรรมกะทัดรัด, เคอร์เนลที่ปรับแต่ง, และการจัดบัฟเฟอร์อย่างระมัดระวังทำให้การนำไปใช้เป็นไปได้
  • การสรุปผลบนอุปกรณ์สามารถเพิ่มความเป็นส่วนตัว, แต่การอัปเดตที่ปลอดภัยและการกำกับดูแลข้อมูลยังคงสำคัญ
  • ควรประเมินความแม่นยำพร้อมกับความหน่วง, หน่วยความจำสูงสุด, พลังงาน, วัฏจักรการทำงาน, และความทนทาน
ไดอะแกรมกระบวนการทำงานของ TinyML: การเรียนรู้ของเครื่องบนไมโครคอนโทรลเลอร์
TinyML จะประสบความสำเร็จเมื่อโมเดล, เฟิร์มแวร์, เซ็นเซอร์, และงบประมาณพลังงานถูกออกแบบร่วมกัน.

สแตกของ TinyML

เซ็นเซอร์จะจับสัญญาณเสียง, การเคลื่อนไหว, การสั่น, ภาพ, หรือสัญญาณอื่น ๆ เฟิร์มแวร์ทำการเตรียมข้อมูลเป็นฟีเจอร์หรือเทนเซอร์; โมเดลกะทัดรัดจะทำงานผ่านรันไทม์แบบฝัง; ลอจิกของแอปพลิเคชันจะตัดสินใจว่าจะปลุกระบบขนาดใหญ่หรือทำการตอบสนองในที่

นี่คือรูปแบบที่มีข้อจำกัดของ edge AI ฮาร์ดแวร์อาจประกอบด้วย MCU, หน่วยความจำ, อินเทอร์เฟซเซ็นเซอร์, และบางครั้งอคคิลเรเตอร์ประสาทเทียม ทุกบัฟเฟอร์, ตัวดำเนินการ, และการคัดลอกต่างแข่งขันกันเพื่อใช้ทรัพยากรที่จำกัด

ทำให้โมเดลพอดี

การควอนติฟายแทนค่าความแม่นยำสูงด้วยการแทนค่าตัวเลขจำนวนเต็มที่เล็กลง การตัดแต่ง, การสกัดสาร, การออกแบบฟีเจอร์, และการค้นหาโครงสร้างสามารถลดการคำนวณหรือการจัดเก็บได้ การสนับสนุนตัวดำเนินการในรันไทม์เป้าหมายจำกัดโมเดลที่เป็นไปได้

การฝึกมักทำบนฮาร์ดแวร์ขนาดใหญ่, จากนั้นโมเดลจะถูกแปลงและคอมไพล์สำหรับอุปกรณ์ การเรียนรู้แบบถ่ายโอนสามารถลดความต้องการข้อมูล, แต่ต้องประเมินผลลัพธ์สุดท้ายหลังการแปลงเนื่องจากการเปลี่ยนแปลงเชิงตัวเลขอาจทำให้ความแม่นยำเปลี่ยนแปลง

ข้อมูลและการเปลี่ยนแปลงสภาพแวดล้อม

การบันทึกในห้องปฏิบัติการมักไม่สะท้อนถึงไมโครโฟนทุกประเภท, ตำแหน่งการติดตั้ง, อุณหภูมิ, รูปแบบการสั่น, สำเนียง, หรือสภาพแวดล้อมพื้นหลังทั้งหมด ควรเก็บข้อมูลจากอุปกรณ์และสภาพแวดล้อมที่เป็นตัวแทน, ทำให้แหล่งข้อมูลการฝึกและการทดสอบแยกจากกัน, และรวมกรณี ‘ไม่มีข้อใดตรงกัน’ ด้วย

การกระตุ้นผิดพลาดอาจทำให้พลังงานสูญเสียหรือทำให้ผู้ใช้รำคาญ; การพลาดความผิดปกติอาจมีค่าใช้จ่ายสูง ควรเลือกค่าธรณีโดยอิงจากต้นทุนข้อผิดพลาดจริง, และเฝ้าติดตามประสิทธิภาพในสนามผ่านสรุปที่รักษาความเป็นส่วนตัวหรือการวินิจฉัยแบบสุ่มเมื่อตรงตามเงื่อนไข

วัดประสิทธิภาพของอุปกรณ์ทั้งหมด

จำนวนการดำเนินการของโมเดลไม่เท่ากับประสิทธิภาพของผลิตภัณฑ์ ควรรายงานความถี่การปลุก, เวลาเตรียมข้อมูล, ความหน่วงของการสรุปผล, RAM สูงสุด, การใช้แฟลช, พลังงานเฉลี่ยและพีค, พฤติกรรมความร้อน, และผลกระทบต่อแบตเตอรี่ภายใต้วัฏจักรการทำงานที่ระบุชัดเจน

วางแผนการอัปเดตเฟิร์มแวร์และโมเดลที่มีลายเซ็น, การย้อนกลับ, ตัวตนของอุปกรณ์, และการตอบสนองต่อช่องโหว่ อุปกรณ์ขนาดเล็กอาจใช้งานได้หลายปี ดังนั้นการบำรุงรักษาจึงเป็นส่วนหนึ่งของคุณภาพโมเดล การควบคุมด้านความปลอดภัยไซเบอร์ไม่สามารถเลื่อนออกไปได้เพราะอุปกรณ์มีขนาดเล็ก

การจัดสรรหน่วยความจำและการคำนวณ

แฟลชใช้เก็บเฟิร์มแวร์, น้ำหนักโมเดล, และค่าคงที่; RAM เก็บบัฟเฟอร์ของเซ็นเซอร์, การกระตุ้นขั้นกลาง, และสถานะรันไทม์ หน่วยความจำการกระตุ้นสูงสุดอาจเกินขนาดน้ำหนัก, โดยเฉพาะในชั้นคอนโวลูชันแรก ๆ ตัววางแผนหน่วยความจำจะใช้บัฟเฟอร์ที่อายุการใช้งานไม่ทับกันใหม่, ในขณะที่ฟีเจอร์สตรีมมิงจะหลีกเลี่ยงการเก็บหน้าต่างสัญญาณทั้งหมด

จำนวนการดำเนินการเป็นการประมาณเบื้องต้น, แต่ประสิทธิภาพของเคอร์เนลขึ้นอยู่กับรูปทรงของเทนเซอร์, การจัดแนว, การสนับสนุนคำสั่ง, และการเข้าถึงหน่วยความจำ การคอนโวลูชันแบบลึกอาจลดการคำนวณแต่ทำงานได้ไม่ดีบนฮาร์ดแวร์ที่ไม่มีเคอร์เนลที่ปรับแต่ง ควรทำการทดสอบความเร็วของโมเดลที่คอมไพล์บนบอร์ดเป้าหมาย, ไม่ใช่แค่ในโปรไฟล์เดสก์ท็อป

การทำวัฏจักรการทำงานเป็นส่วนสำคัญของหลายผลิตภัณฑ์ เซ็นเซอร์และ MCU อาจอยู่ในโหมดสลีป, ปลุกเมื่อตรวจพบสัญญาณง่าย, รันโมเดลขนาดเล็ก, และเปิดใช้งานวิทยุหรือโปรเซสเซอร์ขนาดใหญ่เฉพาะเมื่อจำเป็น ควรวัดวัฏจักรการทำงานทั้งหมด รวมถึงเซ็นเซอร์, การแปลง, การเตรียมข้อมูล, การปลุก, การสรุปผล, การสื่อสาร, และการรั่วไหลขณะพัก

การพัฒนาและการแปลงโมเดล

เริ่มต้นด้วยข้อจำกัดการนำไปใช้และเก็บข้อมูลเซ็นเซอร์ที่เป็นตัวแทน การเตรียมข้อมูลที่ใช้ในการฝึกต้องตรงกับการดำเนินการแบบ fixed-point หรือฝังอย่างแม่นยำ ความแตกต่างของอัตราการสุ่มตัวอย่าง, การทำหน้าต่าง, การแปลงสี, การทำให้เป็นมาตรฐาน, หรือการสกัดฟีเจอร์อาจทำให้โมเดลล้มเหลวแม้การแปลงสำเร็จ

การควอนติฟายหลังการฝึกจะทำการสอบเทียบช่วงค่าจากตัวอย่างที่เป็นตัวแทน; การฝึกที่รับรู้การควอนติฟายจำลองความแม่นยำต่ำระหว่างการเรียนรู้ สเกลน้ำหนักต่อช่องมักรักษาคุณภาพของคอนโวลูชันได้ดีกว่าการใช้สเกลเดียว การดำเนินการที่ไม่รองรับอาจถูกเขียนใหม่, ประมาณค่า, หรือย้ายไปยังโหมดสำรองที่ช้ากว่า, ซึ่งแต่ละกรณีต้องมีการประเมินใหม่

การบีบอัดควรอิงตามสมมติฐาน การตัดแต่งน้ำหนักที่ไม่มีโครงสร้างอาจไม่ทำให้เคอร์เนลฝังหนาแน่นเร็วขึ้น; การลบช่องแบบมีโครงสร้างง่ายต่อการใช้ประโยชน์ของฮาร์ดแวร์ การสกัดสารถ่ายทอดพฤติกรรมจากครูขนาดใหญ่แต่ก็อาจถ่ายทอดอคติและข้อผิดพลาดของมัน ควรเปรียบเทียบกับการประมวลผลสัญญาณและเกณฑ์ฐานที่ตั้งค่าเป็นเกณฑ์

การประยุกต์ใช้, การทดสอบภาคสนาม, และการบำรุงรักษา

งานทั่วไปของ TinyML รวมถึงการตรวจจับคีย์เวิร์ด, การตรวจจับคำปลุก, การจดจำท่าทาง, การตรวจจับความผิดปกติของการสั่น, การตรวจจับการมีอยู่, เหตุการณ์ทางเสียง, และการมองเห็นอย่างง่าย โมเดลอาจทำหน้าที่เป็นประตูแทนการตัดสินใจขั้นสุดท้าย ช่วยประหยัดแบนด์วิดท์โดยส่งกรณีที่ไม่แน่ใจหรือสำคัญไปยังระบบที่มีความสามารถมากกว่า

การทดสอบภาคสนามควรครอบคลุมความทนทานของอุปกรณ์, การเสื่อมของเซ็นเซอร์, การติดตั้ง, สภาพแบตเตอรี่, อุณหภูมิ, สภาพอากาศ, ผู้ใช้, และสัญญาณรบกวนพื้นหลัง ควรติดตามการกระตุ้นผิดพลาดต่อชั่วโมงหรือเหตุการณ์ที่พลาดต่อรอบการทำงาน, ไม่ใช่แค่ความแม่นยำในการทดสอบที่สมดุล ค่าธรณีที่เลือกในห้องปฏิบัติการอาจต้องปรับเทียบตามผลิตภัณฑ์

วางแผนสำหรับการอัปเดต OTA ที่มีลายเซ็น, การย้อนกลับ, การส่งข้อมูลรุ่นโมเดล, และช่วงเวลาการสนับสนุนยาวนาน หากการอัปเดตเป็นไปไม่ได้ ควรใช้โมเดลแบบระมัดระวังและบันทึกการเปลี่ยนแปลงสภาพแวดล้อมที่คาดไว้ การยุติการใช้งานต้องเพิกถอนข้อมูลประจำตัวของอุปกรณ์และจัดการข้อมูลที่เก็บไว้, ไม่ใช่แค่หยุดขายผลิตภัณฑ์

ตัวอย่างการทำงาน: ตัวตรวจจับการสั่น TinyML

อคเซลโรเมเตอร์ขนาดเล็กที่ติดบนมอเตอร์ทำการสุ่มตัวอย่างการสั่นภายใต้ภาระปกติและสภาวะข้อบกพร่องที่ทราบ อุปกรณ์จะทำการแบ่งสัญญาณเป็นหน้าต่าง, ลบออฟเซ็ต, คำนวณฟีเจอร์แบบกะทัดรัดในโดเมนเวลา หรือความถี่, และรันตัวตรวจจับความผิดปกติหรือคลาสฟายเออร์ อัตราการสุ่มตัวอย่างต้องจับความถี่ของแบริ่งและเพลาอย่างเหมาะสมโดยไม่ทำให้หน่วยความจำหรือพลังงานเต็มเกิน ค่าป้ายควรมาจากการตรวจสอบที่ยืนยันแล้ว ไม่ใช่เพียงจากสัญญาณเตือนที่อาจผิดพลาด

การฝึกทำบนเวิร์กสเตชัน, จากนั้นทำการควอนติฟาย, แปลง, และคอมไพล์สำหรับไมโครคอนโทรลเลอร์เป้าหมาย วัดแฟลชของโมเดล, RAM สูงสุด, เวลาในการทำงาน, พลังงาน, และความแม่นยำบนอุปกรณ์จริง การคำนวณแบบจำนวนเต็มและความพร้อมของตัวดำเนินการอาจเปลี่ยนผลลัพธ์จากโมเดลที่ฝึกไว้ ทดสอบการวางเซ็นเซอร์, การติดตั้ง, อุณหภูมิ, แรงดัน, ความแปรปรวนของส่วนประกอบ, และการสั่นพื้นหลังจริง, ไม่ใช่เพียงไฟล์ห้องปฏิบัติการที่คัดสรร

อุปกรณ์ที่ติดตั้งต้องการการปรับเทียบ, การอัปเดตเฟิร์มแวร์ที่ปลอดภัย, การรายงานเวอร์ชัน, พฤติกรรมป้องกันความล้มเหลว, และแผนรับมือกับการเปลี่ยนแปลง มันอาจส่งเพียงคะแนนสุขภาพหรือฟีเจอร์ที่เลือกเพื่อประหยัดพลังงานและปกป้องข้อมูลดิบ, แต่การแจ้งเตือนผิดพลาดในพื้นที่ยังสร้างค่าใช้จ่ายในการบำรุงรักษา ใช้ค่าธรณีแบบขั้นตอน, ต้องการความคงที่, และผสานหลักฐานจากโมเดลกับสถานะการทำงาน TinyML มีคุณค่าที่สุดเมื่อความหน่วง, ความเป็นส่วนตัว, การเชื่อมต่อ, หรือข้อจำกัดด้านพลังงานในพื้นที่ทำให้การออกแบบเป็นที่คุ้มค่า

การทดสอบการผลิตควรรวมถึงการกู้คืนจากการรีเซ็ตพาวเวอร์, การหลุดของนาฬิกา, การตัดการเชื่อมต่อเซ็นเซอร์, อินพุตที่เสียหาย, การใช้หน่วยความจำเต็ม, และการอัปเดตที่ขัดจังหวะ กำหนดว่ามีอะไรเกิดขึ้นเมื่อโมเดลไม่สามารถทำงานหรือความมั่นใจล่มสลาย: ค่าปริยายที่ปลอดภัย, ตัวบ่งชี้ข้อผิดพลาดที่ชัดเจน, หรือกฎดั้งเดิมอาจดีกว่าการคาดเดาเงียบ ควรติดตามเวอร์ชันฮาร์ดแวร์และเฟิร์มแวร์ของกลุ่มเพื่อให้ข้อผิดพลาดใหม่ที่พบสามารถแยกเป็นรุ่นอุปกรณ์, สภาพแวดล้อม, หรือการปล่อยโมเดลได้

รายการตรวจสอบการนำไปใช้เชิงปฏิบัติ

เปลี่ยนแนวคิดให้เป็นกระบวนการทำงานที่มีขอบเขตและทดสอบได้: ตรวจจับ → เตรียมข้อมูล → สรุปผล → ตัดสินใจ → ดำเนินการ → อัปเดต กำหนดเจ้าของที่รับผิดชอบ, บันทึกข้อมูลและการพึ่งพา, สร้างฐานเส้นง่าย, ตั้งเกณฑ์การยอมรับและการหยุด, ทดสอบความล้มเหลวที่เป็นตัวแทน, และกำหนดการเฝ้าติดตาม, การย้อนกลับ, และการตรวจสอบก่อนขยายขอบเขต บันทึกเวอร์ชันและสมมติฐานเพื่อให้ทีมอื่นสามารถทำซ้ำผลลัพธ์และเข้าใจการเปลี่ยนแปลง

ก่อนการเปิดตัว ให้ดำเนินการตรวจสอบความพร้อมที่บันทึกไว้กับผู้ที่สร้าง, ปฏิบัติการ, ปกป้อง, และได้รับผลกระทบจากระบบ ทดสอบกรณีปกติ, เงื่อนไขขอบเขต, ความล้มเหลวของการพึ่งพา, และการใช้งานผิดวิธี; เก็บรักษาหลักฐานและความเสี่ยงที่ยังไม่ได้แก้ไข กำหนดว่าใครสามารถอนุมัติการปล่อย, เปลี่ยนค่าธรณี, ลบผลลัพธ์, หรือหยุดการทำงานได้อย่างไร ทบทวนการตัดสินใจเมื่อข้อมูลจากโลกจริงมาถึง, เพราะการทดลองที่ประสบความสำเร็จทางเทคนิคไม่ได้รับประกันประสิทธิภาพที่เชื่อถือได้ในระดับกว้าง

  • MEMORY: น้ำหนัก, การกระตุ้น, และบัฟเฟอร์.
  • ENERGY: วัฏจักรการทำงานและการเคลื่อนย้ายข้อมูล.
  • QUALITY: ความแม่นยำในสนามภายใต้สภาพจริง.

คำถามที่พบบ่อย

TinyML คือเดียวกับ AI บนมือถือหรือไม่?

ไม่ใช่โดยตรง อุปกรณ์มือถือเป็นระบบ edge ที่มีโปรเซสเซอร์และหน่วยความจำค่อนข้างใหญ่ TinyML มุ่งเน้นที่ข้อจำกัดที่เข้มข้นมากขึ้นของระบบฝังและระดับไมโครคอนโทรลเลอร์

โมเดล TinyML สามารถเรียนรู้บนอุปกรณ์ได้หรือไม่?

การใช้งานส่วนใหญ่ฝึกโมเดลที่อื่นและทำการสรุปผลบนอุปกรณ์ การปรับตัวอย่างจำกัดเป็นไปได้, แต่ข้อจำกัดด้านหน่วยความจำ, พลังงาน, ความเสถียร, ความเป็นส่วนตัว, และการย้อนกลับทำให้การฝึกบนอุปกรณ์ยากขึ้น

เอกสารอ้างอิงหลัก

อองตวนเป็นผู้นำที่มีวิสัยทัศน์และเป็นหุ้นส่วนผู้ก่อตั้งของ Unite.AI โดยมีความหลงใหลที่ไม่สั่นคลอนในการ塑造และ推廣อนาคตของ AI และหุ่นยนต์ เขาเป็นผู้ประกอบการซีรีย์ที่เชื่อว่า AI จะมีผลกระทบต่อสังคมมากเท่ากับไฟฟ้า และมักจะพูดถึงศักยภาพของเทคโนโลยีที่เป็นนวัตกรรมและ AGI

ในฐานะ นักอนาคต เขาได้ทำการสำรวจว่านวัตกรรมเหล่านี้จะเปลี่ยนแปลงโลกของเราอย่างไร นอกจากนี้เขายังเป็นผู้ก่อตั้ง Securities.io ซึ่งเป็นแพลตฟอร์มที่มุ่งเน้นในการลงทุนในเทคโนโลยีที่ทันสมัยที่สุดซึ่งกำลังเปลี่ยนแปลงอนาคตและเปลี่ยนแปลงอุตสาหกรรมทั้งหมด