Ders 15: Uç Bilişim ve Model Dağıtımı
1. Giriş: Köyde İnternet Yok, Traktörde Bulut Yok
Önceki derslerde ResNet-152, ViT-Large, YOLOv8-X gibi güçlü modellerin tarımsal görevlerde yüksek doğruluk sağladığını gördük. Ancak bu modellerin büyük bir kısmı bulut sunucularda çalışır: görüntünün sunucuya gönderilmesi, işlenmesi ve sonuçun geri dönmesi gerekir. Bu yaklaşım, laboratuvar koşullarında mükemmel çalışır, ama gerçek tarım ortamında ciddi engeller vardır:
- İnternet Erişimi: Türkiye'de kırsal bölgeler dahil birçoğu ülkede tarım arazilerinin büyük bölümünde stabil internet yoktur. Bir drone görüntüsü 50-100 MB olabilir ve yüklenmesi dakikalar alabilir.
- Gecikme (Latency): Gerçek zamanlı yabani ot ilaçlama veya hasat robotları için milisaniye seviyesinde karar gerekir. Bulut gidip-dönüşü 200-500ms gecikme ekler; bu, saniyede 5 metre hızla ilerleyen bir traktör için 1-2.5 metrelik hata demektir.
- Maliyet: Bulut işlem ücretleri, küçük çiftçiler için karşılanabilir değildir.
- Gizlilik: Çiftçiler, tarla verilerinin buluta gönderilmesinden çekinebilir.
Bu nedenle modellerin uç cihazlarda (edge devices) -- yani doğrudan tarlada, traktör üzerinde, drone içinde veya çiftçinin cep telefonunda -- çalışabilmesi gerekir. Ancak uç cihazların kaynakları sınırlıdır:
| Cihaz | RAM | GPU/NPU | Depolama | Güç |
|---|---|---|---|---|
| Cep telefonu (orta segment) | 4-8 GB | Mobile GPU | 64-128 GB | Batarya |
| Raspberry Pi 4 | 4-8 GB | Yok (CPU) | SD kart | 5V/3A |
| NVIDIA Jetson Nano | 4 GB | 128 CUDA çekirdek | 16 GB eMMC | 5-10W |
| NVIDIA Jetson Orin Nano | 8 GB | 1024 CUDA | 16 GB eMMC | 7-15W |
| Google Coral | 1 GB + TPU | Edge TPU | USB/M.2 | 2W |
Bu ders, büyük modelleri bu sınırlı kaynaklara sığdırmak için kullanılan teknikleri ve tarımsal uygulamalarını kapsar.
2. Model Sıkıştırma Teknikleri
2.1 Kuantalama (Quantization)
Temel Fikir: Sinir ağı ağırlıkları normalde 32-bit kesirli sayılarla (FP32) depolanır. Kuantalama, bu değerleri daha düşük bit genişliğine (INT8 veya INT4) dönüştürerek model boyutunu ve hesaplama maliyetini azaltır.
Matematik:
$$q = \text{round}\left(\frac{r}{\Delta}\right) + z$$
Burada: - $r$: Orijinal FP32 değer - $\Delta$: Ölçek faktörü (scale) = $\frac{r_{max} - r_{min}}{q_{max} - q_{min}}$ - $z$: Sıfır noktası (zero point) - $q$: Kuantize edilmiş tamsayı değer
Tarımsal Örnek: Bir yaprak hastalığı CNN modeli FP32 ile 25 MB ise, INT8 kuantalama ile yaklaşık 6.25 MB'a düşer -- cep telefonuna rahatlıkla sığar. Doğruluk kaybı genellikle %0.5-1 arasındadır.
Kuantalama Türleri:
| Tür | Açıklama | Doğruluk Kaybı | Hız Kazancı |
|---|---|---|---|
| Eğitim sonrası (PTQ) | Eğitilmiş modele doğrudan uygulanır | Orta | 2-4x |
| Kuantalama-farkındalık eğitimi (QAT) | Eğitim sırasında kuantalama simüle edilir | Düşük | 2-4x |
| Karışık hassasiyet | Bazı katmanlar FP16, bazıları INT8 | Çok düşük | 1.5-3x |
2.2 Budama (Pruning)
Temel Fikir: Sinir ağındaki tüm bağlantılar eşit derecede önemli değildir. Budama, düşük ağırlıklı (öneme az katkı yapan) bağlantıları veya tüm nöronları kaldırarak modeli küçültür.
Türleri: - Yapılandırılmamış budama: Tekil ağırlıkları sıfırlar (seyrek matris oluşturur) - Yapılandırılmış budama: Tüm filtreleri veya kanalları kaldırır (gerçek hızlanma sağlar)
Tarımsal Bağlamda: Bir YOLOv8 nesne tespiti modelinde, yabani ot tespiti için gereksiz olan filtreler (örneğin insan yüzü tanıma için eğitilmiş ImageNet filtreleri) budanarak model boyutu %30-50 oranında azaltılabilir.
2.3 Bilgi Damıtma (Knowledge Distillation)
Temel Fikir: Büyük ve güçlü bir "öğretmen" modeli (teacher), küçük bir "öğrenci" modeline (student) bilgi aktarır. Öğrenci, öğretmenin çıktı dağılımlarını (soft labels) taklit ederek, sınıf etiketlerinden öğrenemeyeceği ince bilgileri kazanır.
Matematik:
$$\mathcal{L} = \alpha \cdot \mathcal{L}{CE}(y, \hat{y}}) + (1-\alpha) \cdot T^2 \cdot \text{KL}\left(\frac{\hat{y{teacher}}{T}, \frac{\hat{y}\right)$$}}{T
Burada: - $\mathcal{L}_{CE}$: Standart çapraz entropi kaybı (gerçek etiketlerle) - $\text{KL}$: Kullback-Leibler diverjans (öğretmen ile öğrenci soft dağılımları arasında) - $T$: Sıcaklık parametresi (yüksek T, soft dağılımları daha pürüzsüz yapar) - $\alpha$: İki kaybın dengelenmesi
Tarımsal Örnek: ResNet-152 öğretmen modeli (%97 doğruluk, 230 MB) ile MobileNetV3 öğrenci modeli (eğitim sonrası %92 -> damıtma sonrası %95 doğruluk, 15 MB). Öğrenci, öğretmenin "domates erken yanıklılık %78, sağlıklı %15, geç yanıklılık %7" gibi ince olasılık dağılımlarından öğrenebilir.
3. Hafif Mimariler
3.1 MobileNet Ailesi
MobileNet, derinlemesine ayrılabilir evrişim (depthwise separable convolution) kullanan hafif bir CNN ailesidir. Standart evrişim işlemini iki aşamaya ayırarak hesaplamaları büyük ölçüde azaltır:
- Derinlemesine evrişim (Depthwise): Her kanalda ayrı ayrı filtreleme
- Noktasal evrişim (Pointwise): 1x1 filtreyle kanallar arası bilgi karıştırma
Hesaplama Tasarrufu: Standart evrişimin $D_K^2 \cdot M \cdot N \cdot D_F^2$ hesaplama maliyetine karşı, ayrılabilir evrişim $D_K^2 \cdot M \cdot D_F^2 + M \cdot N \cdot D_F^2$ maliyet getirir. Bu, tipik olarak 8-9 kat azalma sağlar.
3.2 EfficientNet-Lite
EfficientNet'in uç cihazlara optimize edilmiş versiyonudur. Orijinal EfficientNet'teki Swish aktivasyon fonksiyonu (hesaplama açısından pahalı) ReLU6 ile değiştirilmiş, squeeze-and-excitation blokları kaldırılmıştır.
3.3 YOLOv8-Nano
YOLOv8 ailesinin en küçük üyesi, nesne tespiti için optimize edilmiştir: - Parametre sayısı: ~3.2M (YOLOv8x'in ~68M'ına karşı) - FLOPs: ~8.7G (YOLOv8x'in ~257G'sine karşı) - Gerçek zamanlı tespiti cep telefonunda bile mümkün kılar
3.4 Araştırma Örneği: CDDLite-YOLO ile Pamuk Hastalığı Tespiti
Pan ve arkadaşları (2024), kaynak kısıtlı cihazlarda pamuk hastalığı tespiti için CDDLite-YOLO modelini geliştirmişlerdir. Model, YOLOv8n üzerine dört önemli yenilik eklenmesiyle oluşturulmuştur:
Yenilikler: 1. C2f-Faster modülü: Kısmi evrişim (partial convolution) kullanarak, girdi kanallarının yalnızca 1/4'ünü evrişiyor, geri kalan 3/4'ünü dokunulmadan bırakıyor. Bu, gereksiz hesaplamaları ortadan kaldırır.
-
Slim-neck yapısı: Boyun (neck) ağında GSConv ve VoVGSCSP modülleri kullanılarak, standart evrişimin parametre yükünden kurtulunmuş ancak özellik çıkarma ve birleştirme kapasitesi korunmuştur.
-
MPDIoU kayıp fonksiyonu: Tahmin edilen ve gerçek sınırlandırma kutuları arasındaki fark, minimum nokta mesafesi tabanlı olarak hesaplanır. Bu, özellikle benzer en-boy oranlı farklı boyutlu kutularda CIoU'nun yakalayamadığı nüansları yakalar.
-
PCDetect tespit başı: PConv tabanlı tespit başı, CBS modüllerinin bir kısmını değiştirerek, FLOPs oranını 1/5-1/6'ya düşürür.
Deneysel Sonuçlar:
| Model | mAP@0.5 (%) | Parametre (M) | FLOPs (G) | Model Boyutu (MB) | FPS |
|---|---|---|---|---|---|
| YOLOv5s | 86.3 | 7.2 | 16.5 | 14.1 | 78 |
| YOLOv8n | 87.1 | 3.2 | 8.7 | 6.3 | 125 |
| YOLOv8s | 87.8 | 11.2 | 28.6 | 22.5 | 89 |
| CDDLite-YOLO | 88.5 | 2.1 | 5.3 | 4.2 | 156 |
CDDLite-YOLO, diğer tüm modellerden daha yüksek mAP elde ederken, en az parametreye, en düşük FLOPs'a ve en küçük model boyutuna sahiptir. 156 FPS hızı, gömülü GPU çiplerinde gerçek zamanlı tespiti mümkün kılar.
Veri seti, doğal tarla koşullarında toplanan pamuk hastalığı görüntüleri içermektedir: vertisilliyum solgunluğu, fuzaryum solgunluğu ve antrakoz. Modelin doğal ortamda (değişken ışık, karmaşık arka plan, farklı büyüme aşamaları) çalışabilmesi için özel olarak Mosaic veri artırma tekniği uygulanmıştır.
3.5 Araştırma Örneği: IoT Cihazları için Hafif Meta-Ensemble
Maurya ve arkadaşları (2024), IoT tabanlı ortamlarda bitki hastalığı tespiti için MLP-Mixer ve LSTM'den oluşan hafif bir meta-ensemble önermişlerdir. Bu yaklaşım, büyük CNN ve ViT modellerinin kaynak kısıtlı mikrodenetleyicilere (MCU) dağıtılamayacağı gerçeğinden yola çıkmıştır.
Model Yapısı: - 1. Seviye: MLP-Mixer (görüntülerin yama seviyesinde ilişkilerini öğrenir) + LSTM (MobileNet, DenseNet121, DenseNet169, DenseNet201'den çıkarılan birleşik özellikleri işler) - 2. Seviye: SVM meta-sınıflandırıcı, her iki modelin olasılık çıktılarını birleştirir
Sonuçlar (3 veri setinde):
| Veri Seti | Sınıf Sayısı | Doğruluk (%) | Toplam Parametre |
|---|---|---|---|
| Pamuk hastalıkları | 4 | 99.01 | < 0.5M |
| Mısır yaprak hastalıkları | 4 | 98.81 | < 0.5M |
| Domates/Patates/Biber | 15 | 99.37 | < 0.5M |
Toplam eğitilebilir parametre sayısı 0.5 milyonun altında kalmıştır, bu da modelin IoT mikrodenetleyicilerine dağıtılabilecek kadar hafif olduğunu göstermektedir.
4. Model Dağıtım Araçları
4.1 TensorFlow Lite (TFLite)
TFLite, TensorFlow modellerini mobil ve gömülü cihazlar için optimize eden bir araçtır. Desteklediği cihazlar: Android/iOS telefonlar, Raspberry Pi, Coral Edge TPU, mikrodenetleyiciler.
Dağıtım Süreci:
import tensorflow as tf
# Modeli TFLite formatına dönüştürme
converter = tf.lite.TFLiteConverter.from_saved_model('saved_model/')
converter.optimizations = [tf.lite.Optimize.DEFAULT] # INT8 kuantalama
converter.target_spec.supported_types = [tf.int8]
# Kalibrasyon verisi (kuantalama için)
def representative_dataset():
for img in calibration_images:
yield [img]
converter.representative_dataset = representative_dataset
tflite_model = converter.convert()
with open('model_int8.tflite', 'wb') as f:
f.write(tflite_model)
4.2 ONNX (Open Neural Network Exchange)
ONNX, farklı derin öğrenme çerçeveleri (PyTorch, TensorFlow, Keras) arasında model taşımacılığı sağlayan açık bir formattır. Bir modeli PyTorch'ta eğitip ONNX Runtime ile herhangi bir platformda çalıştırmak mümkündür.
Avantajları: - Çerçeve bağımsız: PyTorch modeli TensorFlow ortamında çalışabilir - ONNX Runtime: CPU, GPU, NPU için optimize edilmiş çıkarım motoru - Geniş donanım desteği: Intel, AMD, ARM, Qualcomm
4.3 TensorRT (NVIDIA)
NVIDIA GPU'ları için optimize edilmiş çıkarım motorudur. Katman birleştirme, çekirdek otomatik ayarı ve karışık hassasiyet gibi tekniklerle 2-5x hızlanma sağlar. Özellikle Jetson platformunda (traktör üzerinde GPU modülü) oldukça yararlı olabilir.
4.4 Dağıtım Aracı Karşılaştırması
| Araç | Hedef Platform | Kuantalama | Hız Kazancı | Karmaşıklık |
|---|---|---|---|---|
| TFLite | Mobil, MCU, Coral TPU | INT8, FP16 | 2-4x | Düşük |
| ONNX Runtime | CPU/GPU/NPU (geniş) | INT8, FP16 | 1.5-3x | Orta |
| TensorRT | NVIDIA GPU (Jetson) | INT8, FP16, FP32 | 2-5x | Yüksek |
| Core ML | Apple cihazlar | FP16 | 2-3x | Düşük |
| OpenVINO | Intel CPU/GPU/VPU | INT8, FP16 | 2-4x | Orta |
5. Tarımsal Uç Bilişim Mimarileri
5.1 Tipik Senaryo: Tarladan Karara
[Sensör/Kamera] -> [Uç Cihaz (Jetson/Telefon)] -> [Yerel Karar]
|
[Opsiyonel: Özetlenmiş veri buluta]
- Veri Toplama: Drone kamerası veya traktöre monteli kamera görüntü toplar
- Yerinde Çıkarım: Uç cihazdaki hafif model, gerçek zamanlı tahmin yapar (hastalık tespiti, yabani ot sınıflandırması)
- Anında Eylem: Tespit edilen yabani ota ilaç püskürtülür veya hastalıklı bölge işaretlenir
- Veri Özeti: Yalnızca sonuçlar (koordinat + sınıf + güven skoru) buluta gönderilir
5.2 Uç-Bulut İşbirliği
Tüm işlem uç cihazda yapılmak zorunda değildir. Hibrit bir yaklaşım: - Uç: Hızlı ön-işleme, kolay kararlar (sağlıklı/hasta) - Bulut: Zor vakalar (düşük güvenli tahminler), model güncelleme, veri analitiği
6. Pratik Uygulama: Cep Telefonunda Bitki Hastalığı Tespiti
Bir Android uygulamasında TFLite modeli çalıştırma:
// Android'de TFLite modeli yükleme
val interpreter = Interpreter(loadModelFile("plant_disease_int8.tflite"))
// Görüntü ön-işleme
val inputBuffer = ByteBuffer.allocateDirect(1 * 224 * 224 * 3)
// ... görüntü yükle ve normalize et
// Çıkarım
val output = Array(1) { FloatArray(10) } // 10 hastalık sınıfı
interpreter.run(inputBuffer, output)
// En yüksek olasılıklı sınıf
val predictedClass = output[0].indices.maxByOrNull { output[0][it] }
7. Özet ve Önemli Noktalar
-
Uç bilişim, tarımda AI'nın gerçek dünyada çalışması için çoğu pratik senaryoda kritik bir rol oynar; internet erişimi, gecikme ve maliyet kısıtlamaları bulut-yalnız yaklaşımları önemli ölçüde sınırlar.
-
Kuantalama (INT8/INT4), model boyutunu 4x küçültür ve çıkarım hızını 2-4x artırır; doğruluk kaybı tipik olarak %1'in altındadır.
-
Budama ve bilgi damıtma, modelleri hem küçültüp hem performanslarını korumak için tamamlayıcı tekniklerdir.
-
CDDLite-YOLO, pamuk hastalığı tespitinde 2.1M parametreyle %88.5 mAP elde etmiş ve 156 FPS hızına ulaşmıştır; bu, gömülü GPU'larda gerçek zamanlı tespiti mümkün kılar.
-
TFLite, ONNX ve TensorRT, modelleri farklı uç cihazlara dağıtmak için temel araçlardır; her birinin farklı platform ve optimizasyon avantajları vardır.
Kaynaklar
- Pan, P., et al. (2024). Lightweight cotton diseases real-time detection model for resource-constrained devices in natural environments. Frontiers in Plant Science.
- Maurya, R., et al. (2024). A Lightweight Meta-Ensemble Approach for Plant Disease Detection Suitable for IoT-based Environments. IEEE Access.
- Howard, A., et al. (2019). Searching for MobileNetV3. ICCV 2019.
- Tan, M. & Le, Q. (2021). EfficientNetV2: Smaller models and faster training. ICML 2021.
- Ultralytics (2023). YOLOv8 documentation.
- Jacob, B., et al. (2018). Quantization and training of neural networks for efficient integer-arithmetic-only inference. CVPR 2018.