Edge Intelligence Yükselişi: Mikrokontroller Neden Önemli

Makine öğrenimi geleneksel olarak bulutta yaşadı, GPU ve yüksek performanslı CPU'lar tarafından desteklendi. Ancak bağlantılı cihazlar sayısı patladı - 30 milyardan fazla IoT uç noktalarına ulaşmak için 2030 - veri merkezinden doğrudan küçük fişlere ve tıbbi implantlara kadar uzanan bir büyüme ihtiyacı var.

Mikrokontrollü Çevrenin Temel Kıtlamaları

Çözümleri keşfetmeden önce, mikro kontrol edici manzarayı tanımlayan yıldız kaynak sınırlamalarını anlamak önemlidir. Bir akıllı telefon veya Raspberry Pi çalıştır Linux, tipik bir MCU ciddi kısıtlamalar altında çalışır:

  • [FONT:0)Memory: [Dönetici için] Flash depolama ( kod ve veriler için) genellikle 16 KB'den 2 MB'ye kadar aralıklar yapılırken, SRAM (işe zaman işlemleri için) daha da sıkıdır - 2 KB ve 512 KB arasında tek bir yüzen ağırlık 4 tane totes bu bütçeyi hızla çıkarabilirsiniz.
  • [FONT:0)Compute power:[Dönetici:[Dönetici: 0) Saat hızları genellikle onlarda birkaç yüz megahertz'da ölçülmektedir. Birçok MCUs, yüzen uçlu bir birim (FPU) oluşturmaz.
  • [FONT:0)Power tüketimi:[Dönetici:0) Battery-işletilmiş cihazlar genellikle bir para hücresinde aylarca veya yıllar boyunca çalıştırılmalıdır. Bu, her bir çıkarımın mikrojoul veya daha az tüketilmesini gerektirir.
  • [FONT=0)Software ekosistemi: [Dönetici: [Dönetici: 0,4] İşletim sistemi, dosya sistemi yok ve dinamik hafıza tahsisi garantileri yok. C veya C++ kodu statik olarak tahsis edilmeli ve son derece deterministik olmalıdır.

Bu kısıtlamalar, ML boru hattının her yönünü yeniden düşünmek için geliştiricilere güç verir, model mimarisinden sayısal temsile.

Mikrokontrolörler üzerine Modeller için Zorunlu Teknikler

Birkaç anahtar optimizasyonlar, ML modellerini kısıtlanmış donanım üzerinde çalıştırmaya başladı. Bu teknikler genellikle her iki boyutta ve hız hedeflerine ulaşmak için bir araya geliyor.

Model Sayıizasyon

En etkili teknik ölçümleme: Model parametrelerinin sayısal boyutunu azaltmak. 32-bit yüzen ağırlıkları ile eğitilmiş bir model genellikle 8-bit tamsalara, dinamik diziler için ayarlandığında ihmal edilebilir doğruluk kaybı ile dönüştürülebilir.Bu, 10- yönlü bir hız artırma ve özellikle de FPU'dan yoksun olan MCU'larda otomatik olarak ölçümleme işlemine izin verilen 4 kat daha iyi bir hız azaltılabilir.QAT'ta (belgede bazı katmanlar) QAT'a göre daha iyi performansa sahip olabilir.

Model Pruning ve Sparsity

Pruning, eğitimli bir sinir ağında (kürücü) eğitimli bir sinir ağında kırmızı veya düşük ücretli bağlantıları kaldırır. Örnek olarak, küçük bir anahtarlama modelinde doğrudan bağlantılı bir katman oluşturabilir.Instruct pruning setleri bireysel ağırlıklar sıfıra kadar, özel çekirdekler tarafından sömürülebilecek sparsity oluşturmak, benzer bir faktör tarafından tekrarlanabilir. Örneğin, küçük bir anahtarlama modeli ile tamamen bağlantılı bir tabakayı tamamen bağlantılı bir tabakayı tamamen birbirine bağlamak için.

Bilgi Distillation

Orijinal veri kümesinde doğrudan küçük bir model eğitimi yerine, öğrencinin eğitimden daha yüksek bir “student” modeli, büyük bir “öğrenme” modelinin çıktı olasılıklarını taklit etmek için kompakt bir “öğrenme modelidir. Öğretmenin yumuşak hedefleri, öğretmenin performansının çoğunu korurken, öğrencinin daha yüksek doğruluk elde etmesine izin verir.

Mimari Arama ve Verimli Op-Kernels

Belirli bir mimariye sahip bir sinir ağı tasarımı, mevcut bir mimariye daha da baskı altında kalır.Neural Architecture Search (NAS), genel kütüphanelerden gelen hafif bina blokları (örneğin, geliştiriciler sınırlı donanımdan maksimum performans çıkarabilirler.

Geliştirme Çerçeveleri ve Toolchains

Bu optimizasyonları fiziksel bir cihaza getirmek sağlam bir yazılım yığını gerektirir. Birkaç olgun çerçeve şimdi mikrokontrolü açıkça hedef alır:

  • [FONT:0) Mikrokontrolörler için TensorFlow Lite (TFLM): ), TensorFlow modellerini 32-bit MCU'da çalışan bir açık kaynak çerçevesi. hafif bir tercüman, önceden ayrıştırılmış bir yapı sistemi sağlar.
  • [FONTNT:0)Edge Impulse:[Dönetici: [Dönetici: 0,0] Tüm Minik Hesap akışı basitleştiren bir ticari platform: veri toplama, özellik mühendisliği, model eğitimi (kendi veya kendi başına veya getir-kendinizi) otomatik dağıtım (geçmiş ve BÜTÜNCÜCEL ve YÜK Runtime dahil) ve gerçek zamanlı performans profili için yaygın olarak kullanılır.
  • [FONT=0]CMSIS-NN:[Dönetici: [DFLT:1] ARM Cortex-M işlemcileri için son derece optimize edilmiş bir dizi sinir ağı çekirdeği kullanılır.Spekt C uygulamaları üzerinden 4-5× hızlar sağlar.
  • [FONT:0]ONNX Runtime for Protectored: Microsoft'un çapraz platformda yer alan, mikro kontrolleri uzman bir yapılandırma aracılığıyla destekliyor (ORTM) .

MLD'ler için lider Microkontroller Platforms for ML

MCU'nun seçimi, olası model karmaşıklığını ve çıkarım hızını etkiler. Aşağıda, TinyML iş yükleri için uygun kanıtlanmış popüler platformlar vardır.

Arduino Nano 33 BLE Sense

nRF52840 (ARM Cortex-M4F ile 256 KB RAM, 1 MB Flash), bu yönetim, anahtarlama ve jiroskop, magnetometre, sıcaklık, nem, baskı) ile ilgili birkaç resmi TFLM örneği yayınladı.

ESP32 Serisi (Espressif)

ESP32 (Xtensa LX6 çift çekirdek, 240 MHz'e kadar 520 KB SRAM) IoT projelerindeki benzersiz bir işarettir.

STM32 Aile (STMikroelektronik)

STM32 MCUs, 10sorFlow'i dönüştüren X-CUBE-AI yazılım paketini üst düzeye çıkarmak için geniş bir spektrumu kaplar.STM32 MCUs cover a wide spektrum from low-power Cor-texM0+ (STM32L0) to high-end CortexM7 (STM32H7) ile 2 MB RAM'ye kadar desteklemektedir. ST, test etmek için en sevdiğiniz X-CUBE-AI software paketini sağlar.

Raspberry Pi Pi Pico (RP2040)

Sadece 264 KB RAM ve 2 MB Flash ile, Pico hafızanın alt ucundadır; çift çekirdekli Cortex-M0+ 133 MHz'e kadar çalışır. Çok küçük modeller (örneğin, sensör zamanı serisine bir anomali tespit edilir). RP2040'ın programlanabilir I/O devlet makineleri yük veri satın alma işlemine odaklanabilir, yüklemeye odaklanmanıza izin verir.

Ambiq Apollo4

Ambiq'ın MCUs ultra sağdaki güç tüketimi için tasarlanmıştır (örneğin 5 μA/MHz) hala geniş bir hesaplama sağlarken (Cortex-M4F'ye 192 MHz'ye kadar, 1.8 MB RAM'a kadar). Her zaman ses yardımcıları ve sağlık değerlendirmeleri, batarya hayatının kritik olduğu yerde popülerdir.

Vaka Çalışmaları: ActionP'de TinyML

Yukarıdaki ilkeler tamamen-device üzerinde çalışan etkileyici gerçek dünya sistemleri oluşturmak için uygulanır.

Anahtar Kelime Bir Arduino Nano Spotting

Google'ın “mikro konuşma” demo, Arduino Nano 33 BLE Sense'in “evet” ve “hayır” kelimeleri tespit etmek için 20-KB modeli çalışır ve 8 bit tamsayı ile ölçümlenir.Bu tür sistem ses güçleri ve eller yüksek çözünürlükte 10 mil uzunluğundaki ses pencereleri şarj eder.

Tahmin edici Bakım için Anomaly Tespit

STM32 tabanlı sensör düğümleri, vibrasyon ve sıcaklıkları izleyen büyük bir endüstriyel motor üreticisi STM32-düşükücük, normal işletim verileri üzerinde eğitilmiştir.In-device inference, her saniye bir hatanın bir eşiği aştığında, hiçbir şey yerel uyarı gönderir.

Soil Sensörleri ile Akıllı Tarım

Bir agtech startup, Edge Impulse'yi toprak nemden, pH'dan ve sıcaklık sensörlerinden bir sınıflandırıcı trene yönlendirmek için kullandı. son model ( ⁇ 25 KB) ESP32 mikro kontrolcü üzerinde çalışır. Toprak koşulları sulama veya besin eki için en uygun olduğunda algılanır ve bir su valfi doğrudan - hiçbir bulut turu gerekli değildir. Çiftçiler eki yapmadan su kullanımında% 30 azalma bildirdi.

Mevcut Sınırlar ve Açık Meydan Meydanlar

TinyML olağanüstü ilerleme kaydettiğinde, birkaç engel kalır.

  • [FONT:0]Limited model karmaşıklığı: [Dönetici: [Dönetici:0]Bir mikro kontrol cihazı üzerinde bile çok büyük, örneğin, bir standart ResNet-50 (25 MB) mikro kontrol cihazı çalıştırın.
  • [[FONT:0)Toolchaination:[Dönetici:[Dönetici:0)[FONTD][/FONT=0)[FONT=0)Toolchaination:[[FONTT:0)[FONT|ITR][/FONT=0)|IFT|FONT|STR][/FONT=0)|IOTIFONT=0)|STRNT=0}|STRNT=0)|S FONT=0|STRNT=FONT=FONT=FONT=FONT=FONT=0)|I=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=0)|STRNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=0)|STRNT=[FONT=FONT=[FONT=[FONT=FONT=FONT
  • [FONT:0]Lack of on-device eğitimi:) Çoğu küçükML dağıtımları sadece yeni sensör sürükleme veya ortamlara uyum sağlamak, kenar işlemenin bazı faydalarını yenerek bulut bağlantısı gerektirir.
  • [FONT:0) Güvenlik ve muhalif sağlamlığı: Saldırıcılar, yanlış sınıflamaya karşı küçük hesap modellerini potansiyel olarak çıkarabilirler. Bu tür tehditlere karşı küçükML modellerini zorlayan küçük girişler hala ortaya çıkıyor.

Future Yol Tarifi

Bir sonraki TinyML dalgası donanım ve algoritma co-design tarafından yönlendirilecektir. Biz zaten görüyoruz:

  • [FONT=0)Zizleyiciler: [FONTS:0)Zizleyiciler: [FONTSTR][FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=TRNT=FONT=FONT=TRNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=TRNT=FONT=FONT=FONT=TRNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=TRNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FO
  • [FONT:0) kenarda öğrenme:) Araştırma prototipleri, ham verileri paylaşmadan model güncellemelerini sağlamak, küresel bir modelin işbirliğine izin verirken mahremiyeti korumak için MCU'lar etkinleştirir.
  • [FONT:0]Neuromorphic processing:[Dönetici: [Döneticiler) Spiking sinir ağları (SNNs) Intel'in Loihi veya BrainChip's Akida gibi olay odaklı çipler üzerinde çalıştırabilir, jiz tanıma veya sismik izleme gibi bazı sürekli görevleri tüketebilir.
  • [FONT:0) Minik için otomatik olarak: Araçlar otomatik olarak en küçük, en hızlı model mimarisi için otomatik olarak doğru kısıtlamalarla karşı karşıya olan en hızlı model mimarisi daha erişilebilir hale geliyor, olmayan uzmanlar için bariyeri azaltır.

İlk TinyML Project ile başlayın

ML'yi mikrokontroller üzerinde uygulamaya hazırsanız, burada önerilen bir iş akışı:

  1. [FONT:0] Bir yönetim kurulunu seçin:[DDevKitC) bir Arduino Nano 33 BLE Sense veya ESP32-DevKitC, çok sayıda hafıza ve iyi desteklenen çerçeveler olduğu için harika bir başlangıç noktasıdır.
  2. [FONT:0) Bir problemin çözümü: [Dönetici: [Dönetici:0] Küçük, sensör bazlı sınıflandırma görevi (örneğin, bir hız veya görme karmaşıklığından kaçınmak için bir yetenek veya vizyon kullanarak elde etmek için jestometre kullanarak)
  3. [FONT:0)Köpek verileri:[Dönetici:[Dönetici:0) Kurul'un kendisini veya bir telefonu listeleyen örnekler toplamak için kullanın.
  4. [FONT:0) Bir modele göre:[Dönetici:[Dönetici:0) Bir modele sahip olmak için Edge Impulse veya TensorFlow'ı bir modele niceleştirme-aware eğitimi ile eğitmek için kullanın.
  5. [FONT:0]İş ve test: [Dönetici: [Dönetici: 0] Flash, tahtaya dönüştürülen ve geç kalmışlık, doğruluk ve güç tüketimi ölçür. Model çok yavaş veya büyükse, mimariye karar verir.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Mikrokontrol platformlarında makine öğrenimi algoritmalarının uygulanması artık teorik bir merak değildir - olgun araçlar ve yeni hızlandırıcı mimariler getiren pratik bir alandır.Dikkatli modelleme ile, özel çerçeveler ve amaçlanmış donanımlar, mühendisler bir sonraki mikro kontrol tabanlı projeye ekleyebileceklerdir.

[FONT:0]Dönemli kaynaklar:[Dönemli:[Dönemli)

  • [0]TensorFlow Mikrokontrolcüler için Lite ).
  • [FONT=0)Edge Impulse platformu TinyML).
  • [FONT:0)CMSIS-NN belgelerinden Arm).
  • [FONT:0)TinyML: A Systematic Review ve Mevcut Araştırmanın Synthesis (arXiv)).