جوجل جعلت TensorFlow.js شيئاً من الماضي (LiteRT.js)

BBetter Stack
컴퓨터/소프트웨어게임/e스포츠AI/미래기술

스크립트

00:00:00أصدرت جوجل للتو مكتبة وقت تشغيل جديدة تتيح لك تشغيل نماذج تعلم الآلة والذكاء الاصطناعي
00:00:05داخل المتصفح بسرعات تقارب السرعة الأصلية. تسمى LiteRT.js وهي مثيرة للإعجاب حقاً. لذا
00:00:12في هذا الفيديو سنلقي نظرة على LiteRT.js، ونرى كيف تعمل، وسنقوم باختبارها عن طريق
00:00:18بناء تطبيق لالتقاط الحركة ثلاثي الأبعاد في الوقت الفعلي يعمل بالكامل داخل المتصفح. سيكون الأمر
00:00:24ممتعاً للغاية، لذا دعونا نغوص فيه. فما هي LiteRT.js بالضبط؟ حسناً، إنها رابط JavaScript لـ
00:00:36LiteRT، وهي بيئة تشغيل الاستدلال على الجهاز، والتي تعمل على تشغيل النماذج على Android وiOS والأنظمة المدمجة
00:00:42لسنوات حتى الآن. لكن LiteRT.js تجلب بيئة التشغيل نفسها إلى المتصفح عبر WebAssembly باستخدام
00:00:50حزمة npm الأساسية لـ LiteRT.js. وإليك ما يجعل LiteRT.js مختلفة. جوجل لديها بالفعل
00:00:58مكتبة تعلم آلة للمتصفح، تسمى TensorFlow.js، وهي موجودة منذ سنوات. لكن
00:01:04TensorFlow.js تعمل على نواة تعتمد على JavaScript، وهذا يشكل عنق زجاجة كبيراً. كما ترى، نواة JavaScript
00:01:11لا يمكنها استغلال وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU) بالكامل كما تفعل بيئة التشغيل الأصلية. لذا تخلفت TensorFlow.js دائماً عن
00:01:19أداء التطبيقات الأصلية. لكن LiteRT.js تستخدم WebAssembly، وتأتي مع نواتها المحسنة الخاصة.
00:01:27لذا فإن بيئة التشغيل الأصلية نفسها التي تدعم الاستدلال على Android وiOS يتم تجميعها إلى WASM ثم تُكشف لـ
00:01:34LiteRT.js. لذا فأنت لا تحصل على طبقة تجريد بنكهة الويب بعد الآن، بل تحصل فعلياً على
00:01:40محرك بيئة تشغيل محسن حقاً. وهذا يظهر أيضاً في هندسة الواجهة الخلفية لديهم. تمتلك LiteRT.js
00:01:47ثلاث طبقات مختلفة تسمح لها بالأداء الجيد على وحدات المعالجة المركزية، ووحدات معالجة الرسومات، وحتى وحدات معالجة الشبكات العصبية (NPUs). لذا على جانب وحدة المعالجة المركزية،
00:01:55تستخدم XNNPack، وهي مكتبة نواة وحدة المعالجة المركزية المحسنة من جوجل، والتي تتميز بتعدد الخيوط مع دعم SIMD المرن.
00:02:04وهذا هو خيارك الاحتياطي الشامل الذي سيعمل في أي مكان، دون الحاجة إلى وحدة معالجة رسومات. ولكن بالنسبة لوحدات معالجة الرسومات،
00:02:11فهي تستخدم ML drift عبر Web GPU، وهنا يكمن الأداء الحقيقي. فهي تستخدم نواتها الأصلية لوحدة معالجة الرسومات
00:02:18لذا فإن أشياء مثل برامج التظليل (shaders) لم تعد تُعرض باستخدام نوع من تنسيق JavaScript. وبالنسبة لـ
00:02:24وحدات معالجة الشبكات العصبية، فهي تمتلك WebNN، والذي لا يزال تجريبياً في متصفحي Chrome وEdge، وهو يستهدف أجهزة
00:02:31معالجة عصبية مخصصة للاستدلال الموفر للطاقة. ووفقاً لمعايير الأداء الخاصة بجوجل، والتي أجروها
00:02:37على جهاز MacBook Pro لعام 2024 بمعالج M4، يبدو أنها تتمتع باستدلال أسرع بثلاث مرات من
00:02:45بيئات تشغيل الويب الأخرى على وحدة المعالجة المركزية ووحدة معالجة الرسومات عبر نماذج الرؤية والصوت. وعند تشغيل أعباء عمل مثل
00:02:53تتبع الأشياء، أو تحويل الصوت إلى نص، أو معالجة الصور على وحدة معالجة الرسومات أو وحدة معالجة الشبكات العصبية بدلاً من وحدة المعالجة المركزية،
00:03:00نحصل على تعزيزات في الأداء تقفز من خمس مرات وصولاً إلى 60 مرة أسرع في النتائج،
00:03:07اعتماداً على المهمة. ويجدر بالذكر أن ذلك يمثل أفضل سيناريو. كما تقر جوجل
00:03:13بذلك. لذا قد تختلف تجربتك، مع الأخذ في الاعتبار وحدة معالجة الرسومات الخاصة بك،
00:03:18والاختناق الحراري، وجودة برنامج التشغيل. وهناك شيء آخر يهم حقاً في بيئة التشغيل هذه.
00:03:24إذا كان لديك بالفعل نماذج تستخدمها للتشغيل على PyTorch أو TensorFlow، إذا كان لديك ملف
00:03:30TF Lite موجود، فيمكن لـ LiteRT.js تشغيله مباشرة. وإذا كنت تستخدم PyTorch، فهناك أيضاً LiteRT
00:03:38Torch، وهو مسار تحويل يأخذ نموذجك مباشرة إلى صيغة .TF Lite. بالإضافة إلى ذلك، هناك أيضاً أداة
00:03:44Quantizer للذكاء الاصطناعي على الحافة لتقليل أحجام النماذج دون الحاجة إلى إعادة كتابة كاملة. لذا يمكن بسهولة نقل سير العمل القديم الذي كنت تستخدمه على
00:03:50TensorFlow.js إلى LiteRT.js الجديد، وهو أمر رائع جداً. ولكن ماذا يمكنك
00:03:58أن تفعل به فعلياً؟ حسناً، لدى جوجل بعض العروض التوضيحية الرائعة، والتي تعطيك فكرة عن
00:04:03النطاق. لذا يمكنك القيام باكتشاف الأشياء باستخدام YOLO في الوقت الفعلي، وتقدير العمق الأحادي مع
00:04:09مكتبة “depth anything” التي تحول بث كاميرا الويب الخاص بك إلى سحابة نقاط ثلاثية الأبعاد حية. ويمكنها أيضاً إجراء تحسين لدقة الصور
00:04:16باستخدام مكتبة ESR GAN الحقيقية. وتعمل كل هذه العروض التوضيحية بالكامل من جانب العميل مع
00:04:23عدم وجود واجهات خلفية، أو واجهات برمجة تطبيقات، مباشرة داخل متصفحك. وقد أعلنوا بالفعل عما هو قادم،
00:04:29LiteRT.LM.js. وسيكون هذا لتشغيل نماذج لغوية كاملة محلياً في المتصفح.
00:04:36لذا هذا ليس مخصصاً لرؤية الحاسوب فقط. قريباً سيوفر أيضاً استدلالاً للنماذج اللغوية الكبيرة محلياً.
00:04:42حسناً، كل ذلك يبدو رائعاً، لكنني أردت اختباره بنفسي لأرى مدى قوته فعلياً.
00:04:48لذا بالنسبة لهذا العرض التوضيحي، قررت إنشاء تطبيق حركة حقيقي يستخدم كاميرا الويب الخاصة بك لـ
00:04:55تقدير الوضعية في الوقت الفعلي. وهو يعمل أيضاً بالكامل على متصفحك، من جانب العميل، وبدون اتصال بالإنترنت دون أي
00:05:03شروط. لذا قمت ببرمجة هذا التطبيق على cloud code باستخدام نموذج Fable 5 الجديد. وإليك النتيجة النهائية.
00:05:10وبالمناسبة، إذا كنت ترغب في تنزيل هذا المستودع وتجربته بنفسك، فقد أضفت أيضاً رابطاً إلى
00:05:15المشروع في الوصف أدناه. لذا هنا تعمل LiteRT.JS عبر المتصفح باستخدام نموذج blaze pose
00:05:23مع 33 علامة للجسم، مما يحرك شخصية ثلاثية الأبعاد في الوقت الفعلي باستخدام 3.js. لا يوجد خادم خلفي و
00:05:31كل ما تراه يحدث على هذا الجهاز الآن تماماً دون اتصال. لذا يمكننا أن نرى هنا أنه على
00:05:38وحدة المعالجة المركزية، نحن نحقق متوسطاً يبلغ حوالي 38 إطاراً في الثانية مع استدلال يبلغ 23.3 مللي ثانية. ويمكننا أيضاً رؤية أن تقدير
00:05:47الوضعية يتأخر قليلاً. ولكن الآن إذا قمنا بالتبديل إلى نسخة Web GPU، يمكننا أن نرى أننا نحصل الآن على
00:05:54120 إطاراً في الثانية بثبات مع استدلال يبلغ 8.4 مللي ثانية. كما أن تقدير الوضعية أسرع
00:06:02قليلاً. وهذا يمثل قفزة تقريبية بثلاث مرات في معدل الإطارات وانخفاضاً بمقدار 2.8 مرة في وقت الاستدلال، وهو ما
00:06:10يتماشى مع أرقام جوجل الخاصة، على الرغم من أنه في الجانب المتواضع مما نشروه. ولكن يجب أن
00:06:16نأخذ في الاعتبار أن blaze pose هو نموذج صغير حقاً. لذا هناك قدرة حوسبة خام أقل لوحدة معالجة الرسومات
00:06:23لتحليلها. ولكن حتى مع ذلك، فإن نقل عمليات التنسور الحسابية من وحدة المعالجة المركزية إلى Web GPU يقلل من زمن الوصول
00:06:30بما يكفي ليكون التأخير أقل بشكل ملحوظ. وقد أضفت أيضاً ميزة حيث يمكنك تسجيل الرسوم المتحركة لالتقاط وضعيتك
00:06:36وتصديرها كـ JSON أو كملف التقاط حركة حيوي، ثم فتح ذلك في
00:06:44برنامج مثل Blender وإعادة توجيه تلك الرسوم المتحركة إلى شخصيتك المخصصة. وكما ترون هنا،
00:06:49الأمر ليس مثالياً. الحركات ليست مفصلة أو محسنة جداً. لذا لا يزال هذا عملاً قيد
00:06:56التطوير. لكن من الرائع جداً أنني تمكنت من جعل هذا الإصدار الأولي يعمل في 10 دقائق فقط
00:07:01باستخدام LiteRT.js الجديد. إذن ها هي، يا رفاق. هذه هي LiteRT.js باختصار. إنه
00:07:08أمر مذهل حقاً أن نرى إلى أي مدى دفعت WebAssembly قدرات تشغيل التطبيقات المعقدة
00:07:14على المتصفح. وتثبت مكتبة LiteRT.js الجديدة هذه حقاً أن JavaScript في بعض الأحيان يمكن أن
00:07:21تكون عنق زجاجة حقيقياً للوصول إلى تلك السرعات التي تقارب الأداء الأصلي. لذا أنا معجب جداً بهذه
00:07:27المكتبة ولا أطيق الانتظار لتجربة LiteRT.js عندما يتم إطلاقها أخيراً في وقت لاحق من هذا العام. ولكن ما رأيك
00:07:35في LiteRT.js؟ هل جربتها؟ هل ستستخدمها؟ أخبرنا في التعليقات أدناه. ويا رفاق،
00:07:40إذا أعجبتكم هذه الأنواع من التحليلات التقنية، يرجى إخباري عن طريق الضغط على زر الإعجاب
00:07:45أسفل الفيديو. وأيضاً لا تنسوا الاشتراك في قناتنا. كان معكم أندريس من
00:07:50BetterStack وسأراكم في الفيديوهات القادمة.

핵심 요약

تستخدم LiteRT.js تقنيتي WebAssembly وWeb GPU لتشغيل نماذج تعلم الآلة محلياً في المتصفح، مما يحقق مكاسب في الأداء تصل إلى 60 ضعفاً مقارنة ببيئات التشغيل التقليدية مثل TensorFlow.js.

하이라이트

  • تجلب LiteRT.js بيئات تشغيل تعلم الآلة الأصلية لنظامي Android وiOS إلى المتصفح عبر WebAssembly، متجاوزة اختناقات أداء نواة JavaScript.

  • يؤدي تنفيذ أعباء عمل نماذج الرؤية والصوت على وحدات معالجة الرسومات أو وحدات معالجة الشبكات العصبية إلى نتائج أسرع بمقدار 5 إلى 60 مرة مقارنة بالطرق السابقة.

  • تنفذ بيئة التشغيل نماذج .TF Lite الحالية مباشرة وتدعم تحويل نماذج PyTorch عبر أداة LiteRT Torch.

  • أدى تبديل تطبيق التقاط الحركة ثلاثي الأبعاد يعتمد على نموذج Blaze Pose من وحدة المعالجة المركزية إلى Web GPU إلى زيادة معدل الإطارات من 38 إطاراً في الثانية إلى 120 إطاراً في الثانية.

타임라인

هندسة LiteRT.js وتجاوز قيود TensorFlow.js

  • تقوم LiteRT.js بتشغيل نماذج تعلم الآلة داخل المتصفح بسرعات تقارب السرعة الأصلية بالاعتماد على WebAssembly.
  • تحد نواة JavaScript المستخدمة في TensorFlow.js من الاستغلال الكامل لقدرات وحدة المعالجة المركزية ووحدة معالجة الرسومات.
  • تُجمع المكتبة الجديدة محرك الاستدلال الأصلي الخاص بالأنظمة المدمجة مباشرة ليعمل على الويب.

تتخلف TensorFlow.js عن التطبيقات الأصلية بسبب اختناق الأداء المرتبط بنواة JavaScript. تزيل LiteRT.js طبقة التجريد هذه الخاصة بالويب. وتوفر محرك بيئة تشغيل محسن من خلال تجميع بيئة التشغيل الأساسية لأنظمة الأجهزة المحمولة إلى تنسيق WebAssembly. يسمح هذا التغيير الهيكلي بالوصول المباشر إلى موارد الأجهزة التي كان يتعذر استغلالها بالكامل من خلال تقنيات المتصفح القياسية.

طبقات المعالجة ومقاييس الأداء وتحويل النماذج

  • توزع الهندسة مهام المعالجة عبر ثلاث طبقات: XNNPack لوحدات المعالجة المركزية، وML drift لوحدات معالجة الرسومات، وWebNN لوحدات معالجة الشبكات العصبية.
  • تسجل معايير الأداء على جهاز MacBook Pro لعام 2024 بمعالج M4 زيادة في سرعة الاستدلال بمقدار 3 أضعاف مقارنة ببيئات تشغيل الويب البديلة.
  • يستخدم المطورون أداة AI Edge Quantizer لتقليص أحجام النماذج الحالية دون الحاجة إلى إعادة كتابة الشفرة البرمجية بالكامل.

تعزل الواجهة الخلفية مهام المعالجة لزيادة كفاءة أجهزة محددة. توفر طبقة XNNPack معالجة متعددة الخيوط مع دعم SIMD على وحدة المعالجة المركزية. تنفذ تقنية Web GPU برامج التظليل الأصلية مباشرة دون المرور بتنسيقات JavaScript. ينتج عن نقل مهام تتبع الأشياء إلى وحدات معالجة الرسومات أوقات استدلال أسرع بكثير، وتتأثر هذه النتائج بالاختناق الحراري وجودة برنامج تشغيل الجهاز. تنتقل مسارات العمل القديمة بسهولة إلى البيئة الجديدة لتوحيد استخدام النماذج الحالية.

قدرات جانب العميل ومعالجة النماذج اللغوية

  • تعمل تقنية YOLO لاكتشاف الأشياء وأدوات تحسين دقة الصور بالكامل من جانب العميل دون استدعاء واجهات برمجة تطبيقات خارجية.
  • تقوم نماذج تقدير العمق بتحويل بث كاميرا الويب إلى سحابة نقاط ثلاثية الأبعاد حية داخل المتصفح مباشرة.
  • ستقوم مكتبة LiteRT.LM.js القادمة بمعالجة النماذج اللغوية الكبيرة محلياً في المتصفح.

تعتمد التطبيقات الحالية حصرياً على قوة الحوسبة المحلية لمعالجة البيانات المرئية. لا توجد خوادم خلفية تتلقى أو تعالج معلومات المستخدم. يتجاوز نطاق المكتبة مهام الرؤية الحاسوبية البصرية. يوسع إصدار النماذج اللغوية المخطط له قدرات المتصفح لتشمل مهام الذكاء الاصطناعي القائمة على النصوص بشكل مستقل تماماً.

مقاييس الأداء لتطبيق التقاط الحركة ثلاثي الأبعاد

  • يقوم تطبيق مخصص بتعيين 33 علامة للجسم عبر نموذج Blaze Pose لتحريك شخصية ثلاثية الأبعاد محلياً.
  • تحقق معالجة وحدة المعالجة المركزية 38 إطاراً في الثانية بمتوسط وقت استدلال يبلغ 23.3 مللي ثانية.
  • يؤدي التبديل إلى Web GPU إلى استقرار الأداء عند 120 إطاراً في الثانية مع انخفاض وقت الاستدلال إلى 8.4 مللي ثانية.
  • يُصدر النظام الرسوم المتحركة الملتقطة كملفات JSON أو BVH للاستخدام في برامج التصميم مثل Blender.

يؤدي نقل عمليات الحساب من وحدة المعالجة المركزية إلى Web GPU إلى خفض زمن الوصول، مما يضاعف معدل الإطارات ثلاث مرات تقريباً ويقلص وقت الاستدلال بمقدار 2.8 مرة. تتوافق مقاييس التطبيق الفعلي هذه مع معايير الأداء الموثقة للبيئة. يضمن تسريع الأجهزة الحد الأدنى من التأخير في تقدير الوضعية المكانية. تتيح ملفات الإخراج الناتجة دمج الحركات المسجلة مع شخصيات مخصصة في بيئات عمل ثلاثية الأبعاد احترافية.

커뮤니티 글

모든 글 보기