WebFPGA के साथ ब्राउज़र में TinyML को तेज़ करें

एक नया ओपन-सोर्स फ्रेमवर्क, WebFPGA, डेवलपर्स को 10 ms से भी कम समय में सीधे वेब पेज से TinyML इन्फरेंस (inference) चलाने की सुविधा देता है। यह एक USB-कनेक्टेड FPGA का उपयोग करता है जो केवल कुछ मिलीवाट (milliwatts) बिजली की खपत करता है और डेटा के हर बाइट को डिवाइस पर ही सुरक्षित रखता है।

TinyML मॉडल—छोटे न्यूरल नेटवर्क जो माइक्रोकंट्रोलर्स पर चलते हैं—अब ऑन-डिवाइस AI के लिए डिफ़ॉल्ट बन गए हैं। फिर भी, जब डेवलपर्स इन्फरेंस को ब्राउज़र पर ले जाते हैं, तो उन्हें गति, पावर और प्राइवेसी के बीच तालमेल बिठाना पड़ता है। पारंपरिक तरीके WebGPU पर निर्भर करते हैं, जो ग्राफिक्स प्रोसेसर पर चलता है, या क्लाउड सेवाओं पर, जो डेटा को डिवाइस से बाहर भेज देती हैं। ये दोनों ही लेटेंसी (latency) बढ़ाते हैं, अधिक ऊर्जा खर्च करते हैं, और रॉ इनपुट (raw inputs) को रिमोट सर्वर के सामने उजागर कर देते हैं।

WebFPGA इन समस्याओं को खत्म कर देता है। ब्राउज़र WebUSB API के माध्यम से सीधे FPGA से बात करता है। यह API एक FTDI USB-to-serial कंट्रोलर से बात करता है, जो Lattice iCE40-UP5K चिप को प्रोग्राम करता है। बिटस्ट्रीम (bitstream) लोड होने के बाद, FPGA एक TinyML रनटाइम चलाता है जो मॉडल को पूरी तरह से हार्डवेयर एक्सेलेरेटर पर निष्पादित (execute) करता है। डेवलपर के नज़रिए से, एक सिंगल JavaScript कॉल एक .bit फ़ाइल लोड करती है और इनपुट टेंसर (input tensors) को स्ट्रीम करती है।

आंकड़ों का तुलनात्मक विवरण

  • WebFPGA: 4 ms लेटेंसी, ~30 mW पावर, होस्ट से कोई डेटा बाहर नहीं जाता।
  • WebGPU: 12 ms लेटेंसी, ~200 mW, CPU/GPU अभी भी डेटा पाथ के कुछ हिस्से को संभालते हैं, इसलिए कुछ डेटा का जोखिम बना रहता है।
  • Cloud inference: 80 ms लेटेंसी, नेटवर्क स्टैक चलने पर ~500 mW, और हर सैंपल एक रिमोट सर्वर तक जाता है।

ये आंकड़े उन परिदृश्यों (scenarios) के लिए एक स्पष्ट मामला पेश करते हैं जहाँ हर मिलीसेकंड मायने रखता है और बैटरी लाइफ सीमित होती है।

वास्तविक दुनिया के परिदृश्य

  1. Voice assistants 6 ms से भी कम समय में प्रतिक्रिया देते हैं, और ऑडियो को कभी भी डिवाइस से बाहर नहीं भेजते।
  2. Industrial sensor monitoring विसंगतियों (anomalies) को उनके प्रकट होते ही पहचान लेता है, यहाँ तक कि बिना इंटरनेट वाली अलग-थलग मशीनों पर भी।
  3. On-the-fly image filters 10 ms से भी कम समय में लागू हो जाते हैं, जिससे UI रेंडरिंग के लिए CPU खाली रहता है।

शुरुआत कैसे करें

  1. ओपन-सोर्स टूलचेन इंस्टॉल करें: Yosys (synthesis), nextpnr-ice40 (place-and-route), और icepack (bitstream generation)।
  2. tinyml-conv यूटिलिटी के साथ TensorFlow Lite मॉडल (.tflite) को Verilog में बदलें।
  3. सिंथेसिस (synthesis) चलाएं और iCE40-UP5K के लिए .bit फ़ाइल जेनरेट करें।
  4. वेब पेज पर webfpga.js शामिल करें; एक सिंगल JavaScript कॉल WebUSB के माध्यम से बिटस्ट्रीम लोड करती है और इन्फरेंस डेटा को स्ट्रीम करती है।

यह वर्कफ़्लो मौजूदा FPGA डेवलपमेंट पाइपलाइनों के समान है, लेकिन अंतिम चरण के लिए केवल एक स्टैंडर्ड वेब ब्राउज़र और USB केबल की आवश्यकता होती है—किसी प्रोप्रायटरी ड्राइवर या भारी-भरकम SDK की नहीं।

कुछ डेवलपर्स अभी भी WebGPU या क्लाउड को क्यों चुन सकते हैं

WebGPU को लैपटॉप और डेस्कटॉप पर व्यापक हार्डवेयर सपोर्ट प्राप्त है, और इसका इकोसिस्टम पहले से ही परिपक्व (mature) ग्राफिक्स ड्राइवर और टूलिंग प्रदान करता है।

WebFPGA दिखाता है कि ब्राउज़र केवल एक UI लेयर से कहीं अधिक हो सकता है; यह अल्ट्रा-लो-लेटेंसी, प्राइवेसी-प्रिजर्विंग AI हार्डवेयर के लिए एक पोर्टल बन सकता है। उन एप्लिकेशन्स के लिए जहाँ हर मिलीसेकंड महत्वपूर्ण है और डेटा को स्थानीय (local) ही रहना चाहिए, यह फ्रेमवर्क GPU-केंद्रित या क्लाउड-केंद्रित इन्फरेंस पाइपलाइनों का एक दमदार विकल्प प्रदान करता है।