TinyML
TinyML, makine öğrenimini kilobaytlarca belleğe ve miliwattlarca güce sahip mikrodenetleyicilerde çalıştırır. Modellerin sığacak şekilde nasıl küçültüldüğünü, kullanım alanlarını ve araçları ele alır.
TinyML (küçük makine öğrenimi), makine öğrenimi modellerini mikrodenetleyicilerde ve genellikle birkaç yüz kilobayt belleğe, işletim sistemi bulunmayan ve miliwatt düzeyinde güç bütçesine sahip diğer ultra düşük güç tüketimli yongalarda çalıştırma uygulamasıdır. Algılayıcının hemen yanındaki bir yongada çıkarım yürütmek, pille çalışan cihazların çevrelerini aylarca veya yıllarca sürekli dinlemesini, izlemesini ya da algılamasını; ham veriler yerine yalnızca "anahtar sözcük duyuldu" veya "makine anormal titreşiyor" gibi sonuçlar göndermesini sağlar. Bu, gecikmeyi düşük, verileri gizli tutar ve sürekli yayın yapmanın gerektireceği radyo gücünden tasarruf sağlar. Alanın topluluk kuruluşu EDGE AI FOUNDATION, daha önce tinyML Foundation olarak adlandırılıyordu.
Modeller Mikrodenetleyiciye Nasıl Sığar?#
Mikrodenetleyici, bir modelin ağırlıklarını programla birlikte flash bellekte saklar ve hesaplanan aktivasyonları genellikle daha kısıtlı olan SRAM'de tutar. Model nicelemesi, 8 bitlik tam sayılar kullanarak ağırlıkları FP32 boyutlarının dörtte birine indirir ve kayan nokta işlemlerini küçük çekirdeklerin verimli biçimde yürütebildiği tamsayı aritmetiğiyle değiştirir. Derinlik ayrılabilir evrişimlerden, model budamadan ve daha düşük giriş çözünürlüklerinden yararlanan kompakt mimariler geri kalanını küçültür; nöral mimari arama ise belirli bir yonganın belleği için ağlar tasarlayabilir. MCUNet, bu tür bir aramayı belleği gözeten bir çalışma zamanıyla birleştirerek hazır bir mikrodenetleyicide %70'in üzerinde ImageNet ilk-1 doğruluğuna ulaştı. Tamamlanan model üretici yazılımına derlenir ve küçük bir yorumlayıcı veya derlenmiş kod tarafından yürütülür:
Bütçe, herhangi bir donanım kullanılmadan önce tahmin edilebilir. Bu anahtar sözcük bulma ağı, ses özelliklerinden konuşma komutlarını tanımak için kullanılan türden derinlik ayrılabilir bir CNN'dir; flash bellek için her INT8 ağırlığını bir bayt, SRAM içinse en büyük girdi ve çıktı aktivasyonu çiftini sayar:
import torch
from torch import nn
# A depthwise-separable CNN for keyword spotting on 49x10 MFCC audio features
model = nn.Sequential(
nn.Conv2d(1, 64, (10, 4), stride=2, padding=(5, 1)),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.Conv2d(64, 64, 3, padding=1, groups=64),
nn.Conv2d(64, 64, 1),
nn.ReLU(),
nn.AdaptiveAvgPool2d(1),
nn.Flatten(),
nn.Linear(64, 12),
)
# At INT8, flash stores one byte per weight and SRAM holds activations in flight
weights = sum(p.numel() for p in model.parameters())
x, peak = torch.randn(1, 1, 49, 10), 0
for layer in model:
y = layer(x)
peak = max(peak, x.numel() + y.numel()) # a layer's input and output coexist
x = y
print(f"Flash: {weights / 1024:.1f} KB, peak SRAM: {peak / 1024:.1f} KB")12,7 KB flash bellek ve 15,6 KB tepe SRAM kullanımı çıktısını verir. Bu değerler, Arduino Nano 33 BLE Sense'in nRF52840 mikrodenetleyicisindeki 1 MB flash belleğin ve 256 KB RAM'in küçük bir bölümüdür; ses iş hattı ve çalışma zamanının kendisi için yer bırakır.
Çalışma Zamanları ve Donanım#
- Mikrodenetleyiciler için LiteRT: Daha önce TensorFlow Lite for Microcontrollers olarak adlandırılan Google yorumlayıcısı; işletim sistemi, standart kitaplık veya dinamik bellek ayırma gerektirmez ve temel çalışma zamanı Arm Cortex-M3'te 16 KB yer kaplar.
- ExecuTorch: PyTorch'un cihaz üzerinde çalışma zamanı. Arm Ethos-U arka ucu, düşük güç tüketimli birçok yongada Cortex-M çekirdeklerinin yanında bulunan Arm Ethos-U NPU'larında niceleştirilmiş modelleri çalıştırır.
- Arm Cortex-M: Birkaç kilobayt RAM'e sahip Cortex-M0+ parçalarından makine öğrenimi için vektör komutları içeren Cortex-M55 ve Cortex-M85'e kadar, TinyML çalıştıran çoğu mikrodenetleyicide bulunan işlemci ailesidir.
- Coral NPU: Google'ın Ekim 2025'te sürekli çalışan giyilebilir cihazlar için duyurduğu açık kaynaklı bir RISC-V hızlandırıcı tasarımıdır; birkaç miliwatt güç tüketirken saniyede yaklaşık 512 milyar işlem gerçekleştirmeyi hedefler.
TinyML ve Edge AI karşılaştırması#
Uç AI, Raspberry Pi gibi tek kartlı bilgisayarlar ve gigabaytlarca belleğe sahip olup watt düzeyinde güç çeken NVIDIA Jetson gibi gömülü GPU modülleri de dahil olmak üzere, verinin üretildiği cihaz üzerindeki tüm çıkarımları kapsar. TinyML bunun en küçük katmanıdır ve modeller kilobaytlarla ölçülür. Mikrodenetleyicilere hızlandırıcılar eklendikçe sınır sürekli değişir: ST'nin STM32N6 modeli, Cortex-M55'i 600 GOPS'lik bir nöral işlem birimi ve 4,2 MB RAM ile birleştirir. En küçük Ultralytics YOLO26 algılayıcısının 2,4 milyon parametresi vardır; INT8'de yaklaşık 2,4 MB yer kaplar. Bu nedenle INT8 LiteRT dışa aktarımı (format="litert", quantize=8), klasik TinyML'nin üstündeki katmanı hedefler: telefonlar, tek kartlı bilgisayarlar ve hızlandırıcı donanımlı kartlar.
TinyML Uygulamaları#
- Anahtar sözcük bulma: Telefonlardaki, kulaklıklardaki ve akıllı hoparlörlerdeki sürekli çalışan uyandırma sözcüğü algılayıcıları düşük güç tüketimli bir çekirdekte tek bir ifadeyi dinler ve ana işlemciyi yalnızca bu ifadeyi duyduklarında uyandırır.
- Kestirimci bakım: Motorlara ve pompalara takılan titreşim ve ses algılayıcıları normal çalışmayı öğrenir, arızalardan önce gelen anormallikleri belirler ve pille yıllarca çalışır.
- Yaban hayatı ve çevre izleme: Güneş enerjisiyle veya pille çalışan akustik algılayıcılar, ücra ormanlarda hayvan çağrılarını ya da motorlu testereleri tanır ve uzun menzilli telsiz üzerinden kısa uyarılar gönderir.
- Görsel uyandırma sözcükleri: Mikrodenetleyicilerdeki düşük çözünürlüklü kameralar görüş alanında bir kişinin olup olmadığına karar verir ve yalnızca kişi varsa daha büyük bir sistemi uyandırır.
MLPerf Tiny, MLCommons'ın bu donanım sınıfı için hazırladığı kıyaslama testidir; anahtar sözcük bulma, görsel uyandırma sözcükleri, CIFAR-10 görüntü sınıflandırma ve makine seslerinde anomali tespiti gibi bu uygulamalardan alınan görevlerde doğruluğu, gecikmeyi ve enerji tüketimini ölçer.










