Percepatkan TinyML dalam Pelayar dengan WebFPGA
Satu rangka kerja sumber terbuka baharu, WebFPGA, membolehkan pembangun menjalankan inferens TinyML terus daripada halaman web dalam masa kurang daripada 10 ms. Ia menggunakan FPGA yang disambungkan melalui USB yang hanya menggunakan beberapa puluh miliwatt dan mengekalkan setiap bait data pada peranti tersebut.
Model TinyML—rangkaian neural kecil yang berjalan pada mikropengawal—kini menjadi pilihan utama untuk AI pada peranti. Namun, pembangun masih perlu mengimbangi kelajuan, kuasa, dan privasi apabila mereka memindahkan inferens ke pelayar. Kaedah tradisional bergantung pada WebGPU, yang berjalan pada pemproses grafik, atau pada perkhidmatan awan yang menghantar data keluar daripada peranti. Kedua-duanya meningkatkan kependaman (latency), menggunakan lebih banyak tenaga, dan mendedahkan input mentah kepada pelayan jauh.
WebFPGA menghapuskan masalah tersebut. Pelayar berkomunikasi secara terus dengan FPGA melalui API WebUSB. API tersebut berkomunikasi dengan pengawal USB-ke-serial FTDI, yang memprogram cip Lattice iCE40-UP5K. Selepas bitstream dimuatkan, FPGA menjalankan masa larian (runtime) TinyML yang melaksanakan model sepenuhnya pada pemecut perkakasan. Dari sudut pandangan pembangun, satu panggilan JavaScript sahaja memuatkan fail .bit dan menyalurkan tensor input.
Perbandingan angka
- WebFPGA: kependaman 4 ms, kuasa ~30 mW, tiada data meninggalkan hos.
- WebGPU: kependaman 12 ms, ~200 mW, CPU/GPU masih mengendalikan sebahagian daripada laluan data, jadi pendedahan data masih berlaku.
- Inferens awan: kependaman 80 ms, ~500 mW apabila timbunan rangkaian (network stack) berjalan, dan setiap sampel dihantar ke pelayan jauh.
Angka-angka tersebut menunjukkan keperluan yang jelas bagi senario di mana setiap milisaat adalah penting dan jangka hayat bateri adalah terhad.
Senario dunia nyata
- Pembantu suara bertindak balas dalam masa kurang daripada 6 ms, tanpa pernah menghantar audio keluar daripada peranti.
- Pemantauan sensor industri menandakan anomali sebaik sahaja ia muncul, walaupun pada mesin terpencil tanpa internet.
- Penapis imej secara langsung (on-the-fly) diaplikasikan dalam masa kurang daripada 10 ms, membebaskan CPU untuk perenderaan UI.
Langkah permulaan
- Pasang rangkaian alatan (toolchain) sumber terbuka: Yosys (sintesis), nextpnr-ice40 (place-and-route), dan icepack (penjanaan bitstream).
- Tukar model TensorFlow Lite (.tflite) kepada Verilog dengan utiliti tinyml-conv.
- Jalankan sintesis dan jana fail .bit untuk iCE40-UP5K.
- Sertakan
webfpga.jspada halaman web; satu panggilan JavaScript sahaja memuatkan bitstream melalui WebUSB dan menyalurkan data inferens.
Aliran kerja ini menyerupai saluran pembangunan FPGA sedia ada, tetapi langkah terakhir hanya memerlukan pelayar web standard dan kabel USB—tanpa pemacu proprietari atau SDK yang berat.
Mengapa sesetengah pembangun mungkin masih memilih WebGPU atau awan
WebGPU mempunyai sokongan perkakasan yang lebih luas merentasi komputer riba dan desktop, dan ekosistemnya sudah menawarkan pemacu grafik serta rangkaian alatan yang matang.
WebFPGA menunjukkan bahawa pelayar boleh menjadi lebih daripada sekadar lapisan UI; ia boleh menjadi portal kepada perkakasan AI dengan kependaman ultra-rendah yang memelihara privasi. Bagi aplikasi di mana setiap milisaat adalah penting dan data mesti kekal setempat, rangka kerja ini menawarkan alternatif yang menarik kepada saluran inferens berpusatkan GPU atau berpusatkan awan.
