עלייתו של צוק איתן: מדוע מיקרובקר משנה

למידת מכונות התגוררה באופן מסורתי בענן, המופעלת על ידי אשכולות של GPUs ויישומים ביצועים גבוהים CPUs. אבל כמו מספר התקנים מחוברים להתפוצץ - מ-ML שנועד להגיע למעל 30 מיליארד נקודות קצה של IoT עד 2030 - יש צורך גובר לעבור את ההיקף ממרכז הנתונים ישירות על שבבים זעירים לרוץ , פועל חיישנים, פועל, ו-Taybablesssssssss.

מרכזי איכות הסביבה של המיקרובקר

לפני חקר פתרונות, חיוני להבין את מגבלות המשאבים הקלים המגדירים את הנוף המיקרו-בקר.בניגוד לסמארטפון או ל- Raspberry Pi Running Linux, MCU טיפוסי פועל תחת מגבלות חמורות:

  • (FLT:0) מזכר: אנדרט 1 (עבור קוד ונתונים) לעתים קרובות נע בין 16 KB ל 2 MB, בעוד SRAM (עבור פעולות בזמן ריצה) הוא אפילו חזק יותר - לעתים קרובות בין 2 KB ו 512 KB. מודל צף אחד של 4 על ידי tes יכול במהירות למצות את התקציב הזה.
  • (FLT:0) חישוב כוח: מהירות שעון 1:1 נמדדת בדרך כלל בעשרות עד כמה מאות מגה-הרץ. MCUs רבים חסרים יחידת נקודות צף (FPU), מה שהופך את פעולות הצף איטי מאוד.
  • (FLT:0) צריכת חשמל: סוללת 1 (איור 1) צריכה לעתים קרובות לרוץ במשך חודשים או שנים על תא מטבע.זה דורש שכל אי-השוויון צורב מיקרו-ג'וקולות או פחות.
  • מערכת ההפעלה:0 (Software Ecosystem: 1) לא מערכת הפעלה, שום מערכת קבצים, ואין ערבויות הקצאת זיכרון דינמי. C או C++ יש להקצות באופן סטטי ו-Digitalistic מאוד.

מגבלות אלה מכריחות את המפתחים לחשוב מחדש על כל היבט של צינור ה-ML, מאדריכלות מודל ועד ייצוג מספרי.

טכניקות ליבה עבור מודלים של Squeezing על מיקרובקר

כמה אופטימיזציה מפתח הופיעו כדי להפוך מודלים של ML על חומרה מרוסנת.טכניקות אלה לעתים קרובות משולבים כדי להשיג הן גודל והן מטרות מהירות.

מודל Quantization

הטכניקה המשפיעה ביותר היא הקוונטיזציה: צמצום הדיוק המספרי של פרמטרים מודל.מודל המאומנים עם משקל של 32 סיביות צף נקודות יכול לעתים קרובות להיות מומר ל 8 סיביות עם אובדן דיוק רשלני על ידי התאמה לטווח דינמי של הפעלה.זה מניב ירידה של 4 סיביות בזיכרון ומהירות משמעותית (במיוחד על MCU זה חסר FPU) באופן אוטומטי כמו אופטימיזציה מראשית (טיפול יעיל יותר) כגון אופטימיזציה של 10 סיביות).

מודל Pruning וספארסיות

הסרת הסרת קישורים Redundant או נמוך-impact (משקל) ברשת עצבית מאומנת.מצטבר ריצה מסירת נוירונים שלמים או מסננים, אשר המפות ישירות ל multiplication ממטריקס יעיל. pruning Unstructured מגדיר משקולות בודדות לאפס, יצירת ספרסיות שניתן לנצל ביעילות על ידי הקרנלים מותאם אישית.

ידע דיקיציה

במקום לאמן מודל קטן ישירות על ה- Dataset המקורי, הזיקוק של הידע מרכב מודל "מעודכן" קומפקטי כדי לחקות את ההסתברות של מודל "מורה" גדול. המטרות הרכות של המורה מכילות מידע עשיר יותר מאשר תוויות הגלומות, ומאפשר לתלמיד להשיג דיוק גבוה יותר מאשר אם מאומנים מאפס.טכניקה זו היא שימושית במיוחד כאשר המטרה יש מגבלות זיכרון חמורות - התלמיד יכול להיות מתוכנן בתוך 10, תוך שמירה על ביצועים של RAM של 10.

חיפוש אדריכלי ו-Efficient Op-Kernels

עיצוב רשת עצבית במיוחד עבור מכשירים קצה הולך מעבר דחיסה של אדריכלות קיימת. Neural אדריכלות חיפוש (NAS) יכול לגלות אבני בניין קל משקל (למשל, מהפכות מפוכחות עומק, צווארי בקבוק בלתי מאוישים) כי מאזן ספירת פרמטר ודיוק. בשילוב עם יישום C מותאם אישית של פעולות הליבה (convolution, בריכות, הפעלה) כי להימנע מעל פני ספריות גנריות, יכול להפיק ביצועים מקסימליים מן המפתח המוגבלים של חומרת של חומרת מוגבלת.

פיתוח מסגרות ושרשרת

הבאת האופטימיזציה למכשיר פיזי דורש ערימה של תוכנה חזקה.כמה מסגרות בוגרות עכשיו לכוון מיקרובקרים במפורש:

  • (FLT:0)TensorFlow Lite עבור Microcontrollers (TFLM): מסגרת קוד פתוח אשר מפעילה מודלים TensorFlow על 32 סיביות MCUs. זה מספק מתורגמן קל משקל, לפני bundled kernels, מערכת בנייה אוטומטית. LM תומך במודלים קוונטיים, יש זמן קצר ( ⁇ 20 KB), ועובד על פני ARM-Dax, CM-duino מטרות, 32.
  • (FLT:0) אימפולס:0; FLT:1 [הפלטפורמה המסחרית שמפשטת את כל זרימת העבודה של TinyML: איסוף נתונים, הנדסה תכונה, הכשרה מודל (עם שלה או להביא את עצמך), פריסה אוטומטית (כולל TFLM ו- ONNX Runtime), וביצועים בזמן אמת פרופטציה.זה משמש נרחב עבור יישומים מבוססי חיישן.
  • (FLT:0CMSIS-NN:FLT:1) A קבוצה של ליבות רשת עצביות מתקדמות ביותר עבור מעבדי ARM Cortex-M. זה מנף הוראות SIMD (כגון הרחבות DSP) כדי להאיץ את מהפכת, בריכות, ושכבות מחוברות לחלוטין.CMS-N משמש לעתים קרובות כגיבוי עבור TFLM או מסגרות אחרות, ומספקות מהירות C-5 ×5 .
  • (FLT:0)onNX Runtime for Embedded:03FLT:1) מנוע ה-platform של Microsoft תומך כעת מיקרו-בקרים באמצעות תצורה מיוחדת (ORTM) הוא יכול לרוץ מודלים קוונטיים על גבי ספקטרום חשוף או RTOS מבוסס MCUs.

פלטפורמות מיקרובקר מובילות ל-ML

הבחירה של MCU משפיעה במידה רבה על המורכבות של המודל האפשרי ואת מהירות הקצוץ. להלן הם פלטפורמות פופולריות הוכיחו מתאים עבור עומסי עבודה זעירים של ®SmallML.

Arduino Nano 33 BLE Sense

בהתבסס על NRF52840 (ARM Cortex-M4F עם 256 KB RAM, 1 MB Flash Flash), לוח זה כולל מערך של חיישנים (מיקרופוני, accelerometer, gyroscope, מגנטימטר, טמפרטורה, לחות, לחץ) מה שהופך אותו פלטפורמה אידיאלית לחיזוי.

ESP32 סדרה (Espressif)

ה- ESP32 (Xtensa LX6 כפול-core, עד 240 MHz, 520 KB SRAM) הוא ubiquitous בפרויקטים של IoT.זיכרון נדיב שלו ונבנה-in Wi-Fi/Bluetooth להפוך אותו אטרקטיבי עבור משימות קצה ML הדורשות עדכונים מדי פעם בענן. ESP-S3 החדש כולל הרחבה שיכולה להאיץ את הפעילות העצבית כמו ESP-Flow ל-T עבור מיקרו-Ls.

STM32 Family (STMicroelectronics)

STM32 MCUs מכסה ספקטרום רחב של כוח נמוך Cortex-M0+ (STM32L0) עד end Cortex-M7 (STM32H7) עם עד 2 MB של RAM. ST מספק את חבילת התוכנה X-CUBE-AI שהופכת את TensorFlow, PyTorch, או Keras לקוד C עבור STM, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ® ® , , ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ® ®

Raspberry Pi Pico (RP2040)

עם רק 264 KB RAM ו 2 MB פלאש, ה Pico הוא בקצה התחתון של הזיכרון; ה- כפול-core Cortex-M0+ פועל עד 133 MHz.זה מתאים לדגמים קטנים מאוד (למשל, זיהוי אנומלי על סדרות זמן חיישן). מכונות I/O של RP2040 ניתן לטעון נתונים, ומאפשר CPU להתמקד בהפרעה.

Ambiq אפולו4

MCUs של Ambiq נועדו לצריכה של חשמל אולטרה-נמוך (לעתים קרובות מתחת 5 μA / MHz) בעודם מספקים שפע של compute (Cortex-M4F עד 192 MHz, עד 1.8 MB RAM) הם פופולריים ב- תמיד על עוזרי קול ולבוש בריאות שבו חיי סוללה הם קריטיים.

מחקרים: TinyML in Action

העקרונות לעיל הוחלו על מנת ליצור מערכות עולם אמתיות מרשימים הפועלות לחלוטין על הדלפק.

שם הסרטון: Arduino Nano

ההדגמה של Google "נאום מיקרו" היא מודל 20-KB על Arduino Nano 33 BLE Sense כדי לזהות את המילים "כן" ו "לא" המודל משתמש בקונמהפכה ניתוק עמוק וניתן לכמת עד 8 סיביות בטטגרס.זה מעבד חלונות אודיו 30-מילימטריים ממיקרופון, והשגת דיוק של 90%+ עם עצלות מתחת ל-50 מ"מ וצריכת חשמל בטווח הנמוך של מערכות קול ללא שליטה.

גילוי אוטומטי לתחזוקה חיזוי

יצרנית גדולה של מנועים תעשייתיים פרוסה STM32 מבוסס חיישן נושג על רטט וטמפרטורה. aקומפקטי autoencoder ( ⁇ 30 KB של משקולות, קוונטית ל- t8) הוכשר על נתונים רגילים הפעלה.על device inference computes את השגיאה השחזור כל שנייה.אם השגיאה עולה על סף, הצומת שולח התראה מקומית.המודל בזמן אמת על STM4, רק הפחתה של 4J.

חקלאות חכמה עם חיישנים סולי

סטארט אפ agtech השתמש ב- Edge Impulse כדי להכשיר מקבץ נתונים מפני לחות אדמה, pH וחיישנים טמפרטורה.מודל הסופי ( ⁇ 25 KB) פועל על מיקרובקר ESP32.זה מגלה כאשר תנאי הקרקע הם אופטימליים עבור השקיה או תוספת תזונתית, וגורם שסתום מים ישירות - לא צריך מעופף ענן.

גבולות נוכחיים ואתגרים פתוחים

בעוד ש- TinyML עשתה התקדמות יוצאת דופן, נותרו כמה מחסומים.

  • (FLT:0) מורכבות מודל מבוססת מודלים: FLT:1 גם עם דחיסה, רבים ראיית מחשב המדינה- of-the-art או מודלים טבעיים עדיין גדולים מדי עבור MCUs. לדוגמה, הפעלת תקן ResNet-50 (25 MB) על מיקרובקר הוא בלתי אפשרי.
  • (FLT:0) פיצול לטול שרשרת: 1FLT:1 כל מוכר MCU או מסגרת עשויים להיות צינורות המרה משלהם, ו debugging inference mismatches בגרסאות כלי יכול להיות זמן-consuming.
  • (FLT:0) ל-Device Training:earFLT:1) רוב הפריסות של TinyML פועלות רק בהקצאה.הסתגלות לסחף חדש או לסביבות דורש חיבור ענן לאימון מחדש, אשר מביס כמה מהיתרונות של עיבוד קצה.
  • (FLT:0) סודיות ועוצמה יריבות: אנדרט 1 תוקף יכול להוציא מודלים פוטנציאל מהמכשיר או קלטות כלי רכב שגורמים לחיקוי שלילי.הרדיפת מודלים של מינוס מזערי נגד איומים כאלה היא עדיין שדה מתפתח.

כיוונים עתידיים

הגל הבא של TinyML יונע על ידי חומרה ואלגוריתם עיצוב משותף.

  • (FLT:0) מאיצים: MCUs משלבים מאיצים עצביים ייעודיים (למשל, eIQ של NXP עם אתוס-U55 מיקרו-NPU) יכול לבצע מהפכות בשבריר של האנרגיה של CPU קונבנציונלי.
  • (FLT:0) למידה מבוססת על הקצה: אבטיפוס מחקר 1 (FAVEFRELT:1) מאפשר ל- MCUs להחליף עדכונים מודל ללא שיתוף נתונים גולמיים, שמירה על פרטיות תוך מתן שיפור משותף של מודל גלובלי.
  • עיבוד:0 (Neuromorphic עיבוד: FIRLT:1 ; רשתות עצביות Spiking (SNNs) יכול לרוץ על שבבים מונעים אירוע כמו האקדה של אינטל או המוח של צ'יפ, צריכת מיקרווואט עבור משימות מסוימות בזמן מתמשך כגון הכרה או ניטור סיסמי.
  • (FLT:0)Auto-ML for TinyML:FreaLT:1 כלים אשר מחפשים באופן אוטומטי את ארכיטקטורת המודל הקטנה והמהירה ביותר שעדיין עומדת במגבלות דיוק הופכות לנגישות יותר, ומפחיתים את המחסום למומחים שאינם בתעשיית ה-AI.

להתחיל עם פרויקט ה- TinyML הראשון שלך

אם אתה מוכן לנסות ליישם ML על מיקרובקר, הנה זרימת עבודה המומלצת:

  1. (ב) ,0) בחר לוח: 1FLT:1 An Arduino Nano 33 BLE Sense או ESP32-DevKitC הוא נקודת התחלה נהדרת, כפי שיש להם זיכרון בשפע ומסגרות נתמכות היטב.
  2. (FLT:0) בחר בעיה: 1FLT מתחיל עם משימה קטנה המבוססת על חיישן (למשל, הכרה מחווה באמצעות מד תאוצה) כדי להימנע ממורכבות של אודיו או חזון.
  3. (ב) עיין:0) עיין בנתונים: 1FLT (ב) השתמש בדירקטוריון עצמו או בטלפון כדי לאסוף דוגמאות מתוייגות.
  4. (FLT:0) רכב מודל: 1FLT (השתמש ב- Edge Impulse או TensorFlow) כדי להכשיר מודל עם אימון קוונטיזציה-מודע.
  5. (ב) [13] [13] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

מסקנה

יישום אלגוריתמי למידת מכונה על פלטפורמות מיקרובקר כבר לא סקרנות תיאורטית - זה שדה מעשי, גדל המביא אינטליגנציה למיליארדי של מכשירים בעלי כוח נמוך.על ידי דחיסה של מודל זהירה, מסגרות מיוחדות, וייעוד בנוי, מהנדסים יכולים לפתוח בזמן אמת הקצוץ במקומות שבהם התלות בענן היא בלתי אפשרית או בלתי רצויה, כמו כלים ואדריכלות מתקדמות יגיעו, , , , , , קטן, יהפכו למרכיב של כל אחד מהם, כדי לספק כאן טכניקות מיקרו-קודמות, כדי לספק תכונות סטנדרטיות, כדי לספק.

מקור:0 (ב) מקורות:

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ,0) ,(ה) ,(ה) ,(ה) ,(ה) ,(ה) ,(ה) ,
  • (ב) ,0) ,2IS-NN תיעוד של Armentiph 1
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇