TinyML nedir
- TinyML, mikrodenetleyicilerde makine öğrenimi kullanımı anlamına gelir.
- Geleneksel ML'de kullanılan sistemlerden farklı olarak, CPU ve RAM'in çok az olduğu ve güç tüketiminin miliwatt veya mikrowatt seviyesinde olduğu sistemlerde kullanılır.
- Büyük modelleri küçülterek çok sınırlı kaynağa sahip cihazlarda ve mikrodenetleyicilerde kullanılabilir hale getirme çalışmasını kapsar.
- TinyML Vakfı'nın resmi web sitesi: https://www.tinyml.org/
- Harvard Üniversitesi tarafından ücretsiz sunulan 3 derslik bir seri vardır:
- TinyML'in temelleri (ne yapılır, neden yapılır ve hangi sorunlar vardır)
- TinyML uygulamaları (veri odaklılık, önyargı vb.)
- TinyML dağıtımı (modelin nereye yerleştirileceği, güvenlik ve gizlilik)
TinyML'in temel ilkeleri
- Mikrodenetleyici kullanan gömülü sistemler en fazla 256kB belleğe sahiptir; bu nedenle büyük modelleri çalıştıramazlar.
- Mikrodenetleyicilerle birlikte kullanılabilecek bazı işletim sistemi örnekleri:
- FreeRTOS
- Mbed OS
- Makine öğrenimi, verilerdeki örüntüleri bulan algoritmalardan oluşur.
- TinyML'de bu algoritmalar sıkıştırılarak verilerdeki örüntülerin etkili biçimde bulunması sağlanır.
- IoT'de her gün üretilen veri miktarı 5 kentilyon bayttır ve bunun %1'inden azı analiz edilir.
Algoritma sıkıştırma teknikleri
-
Budama (Pruning)
- Synapsis budaması: Modeldeki ağ bağlantıları kaldırılır. Bazen doğruluk düşebilir.
- Neurons budaması: Modelden tüm nöronlar kaldırılarak ağın hesaplama gereksinimi azaltılır.
-
Kuantizasyon (Quantization)
- Değerler küçük bir aralık içinde ayrıklaştırılır. Örneğin, kayan noktalı sayılar -128 ile 127 aralığına ayrıklaştırılırsa yalnızca 256 değer üzerinde arama yapmak gerekir.
- 4 baytta saklanan kayan noktalı değerleri 1 baytta saklanan tamsayı değerlere dönüştürmek boyutu 4 kat azaltır.
- Sınırlı kaynaklar nedeniyle TinyML'de kuantizasyon çok önemlidir.
-
Bilgi damıtma (Knowledge distillation)
- Bilgi ve uzmanlık uygulanarak model küçültülür.
Araçlar
- TensorFlow Lite kullanılır.
- TensorFlow ML araştırmacılarına odaklanırken, TensorFlow Lite uygulama geliştiricileri içindir.
TinyML kullanımı
- DIY, maker ve hacker dünyasına özel TinyML kullanım örnekleri bu web sitesinde bulunabilir.
Endüstride TinyML kullanımı
- Endüstride bakım süreçlerinde kullanılarak, titreşim oluştuğunda arıza uyarısı verip verimliliği artırır ve maliyetleri düşürür.
- Doğruluk sorunları nedeniyle yanlış alarmlar oluşabilir ve yanlış alarmların sorumluluğu operatöre veya sisteme ait olabilir.
Çevrede TinyML
- Veriler toplandıktan sonra işlemek yerine, TinyML ile çevresel değişimlere gerçek zamanlı yanıt alınabilir. Örneğin vahşi yaşamda meydana gelen değişiklikler anlık olarak fark edilebilir.
İnsanlar için TinyML
- Engelli bireylerin ellerini kullanmadan daha fazla işi yapabilmesine yardımcı olur.
- Uygulamaların UI ve UX'ini iyileştirerek kullanımı kolaylaştırır.
- Teknoloji, insan deneyimini geliştirmek için üretilir. Teknoloji insanlara yardımcı olmalıdır.
Riskler ve dezavantajlar
- Tüm nüfus gruplarında iyi çalışacak mı?
- Verilerin gizliliği garanti ediliyor mu?
- Bu veriler korunabilir mi?
- Teknoloji insan merkezli yapay zeka temel alınarak geliştirilmelidir. Tasarım, geliştirme ve dağıtım süreçlerinde bu dikkate alınmalıdır.
GN⁺ görüşü
- TinyML, kaynakların sınırlı olduğu ortamlarda bile makine öğrenimini mümkün kılan yenilikçi bir teknoloji olarak IoT cihazlarının verimliliğini ve zekasını önemli ölçüde artırabilir.
- Budama, kuantizasyon ve bilgi damıtma gibi algoritma sıkıştırma teknikleri, makine öğrenimi modellerini küçülterek düşük güç tüketimli cihazlarda çalıştırılabilir hale getiren temel unsurlardır.
- TinyML'in endüstriyel bakım, çevresel izleme ve engelli desteği gibi alanlardaki uygulamaları, insan yaşamını iyileştirmeye katkı sağlayabilir; bu da teknolojinin toplum üzerindeki olumlu etkisine iyi bir örnektir.
1 yorum
Hacker News görüşleri
Rust TinyML derleyicisi geliştirme
predict()fonksiyonu üretiliyor.TinyML alanının çekiciliği
LLM kullanan altyapı hedefli virüsler
Edge Impulse'un TinyML / Edge ML açıklaması
Hacker Box'ın ESP32, Tensor Flow Lite ve Edge Impulse kullanım örneği
TinyML'nin bugünü ve geleceği
TinyML hakkında çeşitli görüşler