WebFPGA ile Tarayıcıda TinyML'i Hızlandırın
Yeni bir açık kaynaklı çerçeve olan WebFPGA, geliştiricilerin TinyML çıkarımını (inference) doğrudan bir web sayfasından 10 ms'nin altında bir sürede çalıştırmasına olanak tanır. Sadece birkaç on miliwatt güç tüketen ve her bir veri baytını cihaz üzerinde tutan, USB bağlantılı bir FPGA kullanır.
Mikrodenetleyiciler üzerinde çalışan küçük sinir ağları olan TinyML modelleri, artık cihaz içi yapay zekanın (on-device AI) varsayılanı haline geldi. Ancak geliştiriciler, çıkarımı tarayıcıya taşıdıklarında hız, güç tüketimi ve gizlilik dengesini kurmakta hâlâ zorlanıyorlar. Geleneksel yöntemler, grafik işlemcisinde çalışan WebGPU'ya veya verileri cihaz dışına gönderen bulut hizmetlerine dayanır. Her iki yöntem de gecikmeyi artırır, daha fazla enerji tüketir ve ham girdileri uzak sunuculara açığa çıkarır.
WebFPGA bu sorunları ortadan kaldırır. Tarayıcı, WebUSB API aracılığıyla doğrudan bir FPGA ile iletişim kurar. API, bir Lattice iCE40-UP5K çipini programlayan bir FTDI USB-to-serial kontrolcüsü ile konuşur. Bitstream yüklendikten sonra FPGA, modeli tamamen donanım hızlandırıcı üzerinde çalıştıran bir TinyML çalışma zamanı (runtime) yürütür. Bir geliştirici açısından bakıldığında, tek bir JavaScript çağrısı bir .bit dosyasını yükler ve girdi tensörlerini (input tensors) akış olarak gönderir.
Rakamlar ne söylüyor?
- WebFPGA: 4 ms gecikme, ~30 mW güç, hiçbir veri ana bilgisayardan (host) ayrılmaz.
- WebGPU: 12 ms gecikme, ~200 mW, CPU/GPU veri yolunun bir kısmını hâlâ yönetir, bu nedenle bir miktar veri açığa çıkar.
- Bulut çıkarımı (Cloud inference): 80 ms gecikme, ağ yığını (network stack) çalıştığında ~500 mW ve her örnek uzak bir sunucuya iletilir.
Bu rakamlar, her milisaniyenin önemli olduğu ve pil ömrünün kısıtlı olduğu senaryolar için net bir gerekçe sunmaktadır.
Gerçek dünya senaryoları
- Sesli asistanlar 6 ms'nin altında tepki verir ve sesi asla cihaz dışına göndermez.
- Endüstriyel sensör izleme, internet bağlantısı olmayan izole makinelerde bile anomalileri anında tespit eder.
- Anlık görüntü filtreleri 10 ms'nin altında uygulanır ve CPU'yu kullanıcı arayüzü (UI) oluşturma için serbest bırakır.
Başlangıç
- Açık kaynaklı araç zincirini (toolchain) kurun: Yosys (sentez), nextpnr-ice40 (yerleştirme ve yönlendirme) ve icepack (bitstream oluşturma).
- tinyml-conv yardımcı programı ile bir TensorFlow Lite modelini (.tflite) Verilog'a dönüştürün.
- Sentezi çalıştırın ve iCE40-UP5K için .bit dosyasını oluşturun.
- Bir web sayfasına
webfpga.jsdosyasını dahil edin; tek bir JavaScript çağrısı bitstream'i WebUSB üzerinden yükler ve çıkarım verilerini akış olarak gönderir.
İş akışı mevcut FPGA geliştirme süreçlerini yansıtır, ancak son adım için yalnızca standart bir web tarayıcısı ve bir USB kablosu yeterlidir; özel sürücülere veya ağır SDK'lara gerek yoktur.
Bazı geliştiriciler neden hâlâ WebGPU veya bulutu tercih edebilir?
WebGPU, dizüstü ve masaüstü bilgisayarlarda daha geniş donanım desteğine sahiptir ve ekosistemi halihazırda olgun grafik sürücüleri ve araçları sunmaktadır.
WebFPGA, tarayıcının bir kullanıcı arayüzü (UI) katmanından daha fazlası olabileceğini gösteriyor; ultra düşük gecikmeli, gizliliği koruyan yapay zeka donanımına açılan bir portal haline gelebilir. Her milisaniyenin önemli olduğu ve verilerin yerel kalması gereken uygulamalar için bu çerçeve, GPU veya bulut merkezli çıkarım süreçlerine karşı ikna edici bir alternatif sunmaktadır.
