تسريع TinyML في المتصفح باستخدام WebFPGA
يتيح إطار العمل الجديد مفتوح المصدر، WebFPGA، للمطورين تشغيل استدلال TinyML مباشرة من صفحة الويب في أقل من 10 مللي ثانية. وهو يستخدم FPGA متصل عبر USB يستهلك بضع عشرات الملي واط فقط ويحافظ على كل بايت من البيانات داخل الجهاز.
أصبحت نماذج TinyML — وهي شبكات عصبية صغيرة تعمل على المتحكمات الدقيقة — هي الخيار الافتراضي للذكاء الاصطناعي على الأجهزة. ومع ذلك، لا يزال المطورون يواجهون تحديات تتعلق بالسرعة والطاقة والخصوصية عند نقل عملية الاستدلال إلى المتصفح. تعتمد المسارات التقليدية على WebGPU، الذي يعمل على معالج الرسوميات، أو على الخدمات السحابية التي ترسل البيانات خارج الجهاز. وكلاهما يؤدي إلى زيادة زمن الاستجابة، واستهلاك المزيد من الطاقة، وتعريض المدخلات الخام للخوادم البعيدة.
يقضي WebFPGA على هذه المشكلات. حيث يتواصل المتصفح مباشرة مع FPGA عبر WebUSB API. ويتواصل هذا الـ API مع متحكم FTDI USB-to-serial، الذي يقوم ببرمجة شريحة Lattice iCE40-UP5K. وبعد تحميل الـ bitstream، يقوم الـ FPGA بتشغيل بيئة تشغيل TinyML التي تنفذ النموذج بالكامل على المسرع العتادي. ومن منظور المطور، يقوم استدعاء JavaScript واحد بتحميل ملف .bit وبث مصفوفات المدخلات (input tensors).
مقارنة الأرقام
- WebFPGA: زمن استجابة 4 مللي ثانية، استهلاك طاقة ~30 مللي واط، ولا تخرج أي بيانات من الجهاز المضيف.
- WebGPU: زمن استجابة 12 مللي ثانية، استهلاك طاقة ~200 مللي واط، ولا يزال الـ CPU/GPU يتعاملان مع جزء من مسار البيانات، مما يعني بقاء بعض احتمالات التعرض للبيانات.
- Cloud inference: زمن استجابة 80 مللي ثانية، استهلاك طاقة ~500 مللي واط عند تشغيل حزمة الشبكة، وكل عينة تنتقل إلى خادم بعيد.
توضح هذه الأرقام بوضوح أهمية هذا الحل في السيناريوهات التي تهم فيها كل مللي ثانية وتكون فيها عمر البطارية محدوداً.
سيناريوهات من العالم الحقيقي
- المساعدات الصوتية تستجيب في أقل من 6 مللي ثانية، دون إرسال الصوت أبداً خارج الجهاز.
- مراقبة المستشعرات الصناعية تكتشف الشذوذ فور ظهوره، حتى في الآلات المعزولة التي لا تتوفر فيها خدمة الإنترنت.
- مرشحات الصور الفورية تُطبق في أقل من 10 مللي ثانية، مما يفرغ الـ CPU لعمليات رندرة واجهة المستخدم (UI rendering).
البدء
- تثبيت سلسلة أدوات مفتوحة المصدر: Yosys (للتخليق/synthesis)، وnextpnr-ice40 (للتوزيع والمسارات/place-and-route)، وicepack (لتوليد الـ bitstream).
- تحويل نموذج TensorFlow Lite (.tflite) إلى Verilog باستخدام أداة tinyml-conv.
- تشغيل عملية التخليق (synthesis) وتوليد ملف .bit لشريحة iCE40-UP5K.
- تضمين
webfpga.jsفي صفحة الويب؛ حيث يقوم استدعاء JavaScript واحد بتحميل الـ bitstream عبر WebUSB وبث بيانات الاستدلال.
يحاكي سير العمل مسارات تطوير FPGA الحالية، لكن الخطوة النهائية لا تتطلب سوى متصفح ويب قياسي وكابل USB — دون الحاجة إلى برامج تشغيل مملوكة أو حزم تطوير برمجيات (SDKs) ضخمة.
لماذا قد يختار بعض المطورين WebGPU أو السحابة
يتمتع WebGPU بدعم أوسع للأجهزة عبر أجهزة الكمبيوتر المحمولة والمكتبية، كما يوفر نظامه البيئي بالفعل برامج تشغيل رسوميات وأدوات ناضجة.
يوضح WebFPGA أن المتصفح يمكن أن يكون أكثر من مجرد طبقة لواجهة المستخدم؛ بل يمكن أن يصبح بوابة لأجهزة ذكاء اصطناعي ذات زمن استجابة فائق الانخفاض وتحافظ على الخصوصية. بالنسبة للتطبيقات التي تهم فيها كل مللي ثانية ويجب أن تظل البيانات محلية، يوفر إطار العمل بديلاً مقنعاً لمسارات الاستدلال التي تركز على الـ GPU أو السحابة.
