Google ने TensorFlow.js को पुराना बना दिया (LiteRT.js)

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

스크립트

00:00:00Google ने अभी एक नई रनटाइम लाइब्रेरी जारी की है जो आपको मशीन लर्निंग और AI मॉडल चलाने देती है
00:00:05ब्राउज़र के अंदर लगभग नेटिव स्पीड पर। इसे LiteRT.js कहते हैं और यह बहुत प्रभावशाली है। तो
00:00:12इस वीडियो में हम LiteRT.js पर एक नज़र डालेंगे, देखेंगे कि यह कैसे काम करता है, और हम इसे
00:00:18पूरी तरह से ब्राउज़र में चलने वाला एक रियल-टाइम 3D मोशन कैप्चर एप्लिकेशन बनाकर टेस्ट करेंगे। यह
00:00:24काफी मजेदार होने वाला है, तो चलिए शुरू करते हैं। तो LiteRT.js आखिर क्या है? खैर, यह LiteRT के लिए एक JavaScript बाइंडिंग है,
00:00:36उनका ऑन-डिवाइस इन्फरेंस रनटाइम, जो वर्षों से Android, iOS और एम्बेडेड
00:00:42हार्डवेयर पर मॉडल चला रहा है। लेकिन LiteRT.js उसी रनटाइम को WebAssembly का उपयोग करके
00:00:50LiteRT.js कोर npm पैकेज के माध्यम से ब्राउज़र में लाता है। और यहाँ बताया गया है कि क्या LiteRT.js को अलग बनाता है। तो Google के पास पहले से ही एक
00:00:58ब्राउज़र मशीन लर्निंग लाइब्रेरी है, इसे TensorFlow.js कहते हैं, और यह वर्षों से मौजूद है। लेकिन
00:01:04TensorFlow.js JavaScript-आधारित कर्नेल पर चलता है, और यह एक बड़ी बाधा है। देखिए, JavaScript कर्नेल
00:01:11CPU या 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तीन अलग-अलग स्तर हैं जो इसे CPUs, GPUs और यहां तक कि NPUs पर भी अच्छा प्रदर्शन करने की अनुमति देते हैं। तो CPU साइड पर,
00:01:55यह XNNPack का उपयोग करता है, जो Google की अनुकूलित CPU कर्नेल लाइब्रेरी है, जो रिलैक्स्ड SIMD सपोर्ट के साथ मल्टी-थ्रेडेड है।
00:02:04और यह आपका यूनिवर्सल फॉलबैक है जो कहीं भी चलेगा, किसी GPU की आवश्यकता नहीं है। लेकिन GPUs के लिए,
00:02:11यह वेब GPU पर ML ड्रिफ्ट का उपयोग करता है, और यहीं पर वास्तविक प्रदर्शन होता है। यह नेटिव GPU
00:02:18कर्नेल का उपयोग करता है, इसलिए शेडर्स जैसी चीजें अब किसी प्रकार के JavaScript आर्केस्ट्रेशन का उपयोग करके रेंडर नहीं की जाती हैं। और
00:02:24MPUs के लिए, इसमें WebNN है, जो Chrome और Edge में अभी भी प्रयोगात्मक है, और यह समर्पित न्यूरल
00:02:31प्रोसेसिंग हार्डवेयर को पावर-कुशल इन्फरेंस के लिए लक्षित करता है। और Google के अपने बेंचमार्क के अनुसार,
00:02:37जो उन्होंने M4 सिलिकॉन वाले 2024 MacBook Pro पर किए, ऐसा लगता है कि इसमें अन्य वेब रनटाइम्स की तुलना में
00:02:45विज़न और ऑडियो मॉडल के मामले में CPU और GPU पर तीन गुना तेज़ इन्फरेंस है। और जब ऑब्जेक्ट ट्रैकिंग,
00:02:53ऑडियो ट्रांसक्रिप्शन, या इमेज मैनिपुलेशन जैसे वर्कलोड CPU के बजाय GPU या MPU पर चलाते हैं,
00:03:00तो हमें प्रदर्शन में बढ़ावा मिलता है जो पाँच गुना से लेकर 60 गुना तेज़ परिणामों तक पहुँच जाता है,
00:03:07कार्य के आधार पर। और यह उल्लेख करना उचित है कि यह सबसे अच्छा मामला है। और Google भी
00:03:13इसे स्वीकार करता है। इसलिए आपके परिणाम भिन्न हो सकते हैं, अपने विशिष्ट GPU,
00:03:18थर्मल थ्रॉटलिंग, और ड्राइवर गुणवत्ता को ध्यान में रखते हुए। और एक और चीज है जो इस रनटाइम के लिए वास्तव में मायने रखती है।
00:03:24यदि आपके पास पहले से ही मॉडल हैं जिनका आप PyTorch या TensorFlow पर उपयोग करते हैं, यदि आपके पास मौजूदा
00:03:30TF Lite फ़ाइल है, तो LiteRT.js वास्तव में इसे सीधे चला सकता है। और यदि आप PyTorch पर हैं, तो LiteRT भी है
00:03:38Torch, एक रूपांतरण पथ जो आपके मॉडल को सीधे .TF Lite में ले जाता है। साथ ही, एक AI Edge
00:03:44Quantizer भी है जो पूर्ण रीराइट के बिना मॉडल के आकार को छोटा करता है। तो पुराने वर्कफ़्लो जिनका आप उपयोग कर रहे हैं
00:03:50TensorFlow.js को आसानी से नए LiteRT.js पर पोर्ट किया जा सकता है, जो बहुत अच्छा है। लेकिन आप इसके साथ
00:03:58वास्तव में क्या कर सकते हैं? खैर, Google के पास कुछ बहुत अच्छे डेमो हैं, जो आपको रेंज का एहसास कराते हैं।
00:04:03तो आप रियल-टाइम YOLO ऑब्जेक्ट डिटेक्शन कर सकते हैं, मोनोकुलर डेप्थ एस्टिमेशन
00:04:09डेप्थ एनीथिंग लाइब्रेरी के साथ जो आपके वेबकैम फ़ीड को लाइव 3D पॉइंट क्लाउड में बदल देती है। और यह इमेज
00:04:16अपस्केलिंग भी कर सकता है रियल ESR GAN लाइब्रेरी के साथ। और ये सभी डेमो बिना किसी
00:04:23बैकएंड, बिना किसी API के सीधे आपके ब्राउज़र के अंदर पूरी तरह से क्लाइंट साइड पर चल रहे हैं। और उन्होंने पहले ही घोषणा कर दी है कि आगे क्या आ रहा है,
00:04:29LiteRT.LM.js. और यह ब्राउज़र में स्थानीय रूप से पूर्ण भाषा मॉडल चलाने के लिए होगा।
00:04:36तो यह सिर्फ कंप्यूटर विज़न के लिए नहीं है। जल्द ही यह स्थानीय LLM इन्फरेंस भी प्रदान करेगा।
00:04:42ठीक है, यह सब सुनने में अच्छा लगता है, लेकिन मैं खुद इसे टेस्ट करना चाहता था कि यह वास्तव में कितना शक्तिशाली है।
00:04:48तो इस डेमो के लिए, मैंने एक वास्तविक मोशन कैप्चर एप्लिकेशन बनाने का फैसला किया जो आपके वेबकैम का उपयोग करता है
00:04:55रियल-टाइम पोज़ एस्टिमेशन के लिए। और यह पूरी तरह से आपके ब्राउज़र पर, क्लाइंट साइड पर, और बिना किसी
00:05:03शर्तों के ऑफलाइन भी चलता है। तो मैंने इस ऐप को Fable 5 मॉडल का उपयोग करके क्लाउड कोड पर बनाया है। और यहाँ अंतिम परिणाम है।
00:05:10और वैसे, यदि आप इस रेपो को डाउनलोड करना चाहते हैं और खुद इसके साथ खेलना चाहते हैं, तो मैंने नीचे डिस्क्रिप्शन में
00:05:15प्रोजेक्ट का लिंक भी जोड़ दिया है। तो यहाँ LiteRT.js ब्राउज़र के माध्यम से एक ब्लेज़ पोज़ मॉडल का उपयोग करके चल रहा है
00:05:2333 बॉडी लैंडमार्क के साथ, जो 3.js का उपयोग करके रियल-टाइम में 3D कैरेक्टर को चला रहा है। कोई बैकएंड सर्वर नहीं है और
00:05:31जो कुछ भी आप देख रहे हैं वह इस मशीन पर अभी पूरी तरह से ऑफलाइन हो रहा है। तो हम यहाँ देख सकते हैं कि
00:05:38CPU पर, हम 23.3 मिलीसेकंड के इन्फरेंस के साथ लगभग 38 FPS का औसत निकाल रहे हैं। और हम यह भी देख सकते हैं कि पोज़
00:05:47एस्टिमेशन थोड़ा पीछे चल रहा है। लेकिन अब यदि हम वेब GPU वर्शन पर स्विच करें, तो हम देख सकते हैं कि हम अब
00:05:548.4 मिलीसेकंड इन्फरेंस के साथ 120 फ्रेम प्रति सेकंड का ठोस प्रदर्शन प्राप्त कर रहे हैं। और पोज़ एस्टिमेशन भी थोड़ा
00:06:02तेज़ है। और यह फ्रेम रेट में लगभग तीन गुना उछाल और इन्फरेंस समय में 2.8 गुना गिरावट है, जो
00:06:10Google के अपने नंबरों के साथ मेल खाता है, हालाँकि यह उनके द्वारा प्रकाशित डेटा के मामूली छोर पर है। लेकिन हमें
00:06:16ध्यान में रखना होगा कि ब्लेज़ पोज़ वास्तव में एक छोटा मॉडल है। तो GPU के लिए कम रॉ कंप्यूट है
00:06:23जिसे प्रोसेस करना है। लेकिन इसके बावजूद, टेंसर मैथ को CPU से हटाकर वेब GPU पर ले जाने से लेटेंसी
00:06:30इतनी कम हो जाती है कि लैग काफी कम है। और मैंने एक फीचर भी जोड़ा है जहाँ आप अपने पोज़
00:06:36कैप्चर एनिमेशन को रिकॉर्ड कर सकते हैं और इसे JSON या बायो विज़न मोशन कैप्चर फ़ाइल के रूप में एक्सपोर्ट कर सकते हैं, और फिर उसे blender
00:06:44जैसी किसी चीज़ में खोलकर उस एनिमेशन को अपने खुद के कस्टम कैरेक्टर पर रिटारगेट कर सकते हैं। और जैसा कि आप यहाँ देख सकते हैं,
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:35LiteRT.js के बारे में? क्या आपने इसे आज़माया है? क्या आप इसका उपयोग करेंगे? हमें नीचे कमेंट्स में बताएं। और दोस्तों,
00:07:40अगर आपको इस प्रकार के तकनीकी विश्लेषण पसंद हैं, तो कृपया वीडियो के नीचे
00:07:45लाइक बटन दबाकर मुझे बताएं। और हमारे चैनल को सब्सक्राइब करना न भूलें। मैं हूँ Andres
00:07:50BetterStack से और मैं आपको अगले वीडियो में देखूँगा।

핵심 요약

LiteRT.js ब्राउज़र के अंदर WebAssembly और अनुकूलित कर्नेल का उपयोग करके AI मॉडल को नेटिव रनटाइम के समान गति और प्रदर्शन पर चलाने में सक्षम बनाता है।

하이라이트

  • LiteRT.js मशीन लर्निंग इन्फरेंस के लिए WebAssembly का उपयोग करता है, जिससे ब्राउज़र के अंदर नेटिव-स्पीड प्रदर्शन प्राप्त होता है।

  • TensorFlow.js की तुलना में, LiteRT.js विज़न और ऑडियो मॉडल के लिए CPU और GPU पर 3 गुना तेज़ इन्फरेंस गति प्रदान करता है।

  • वेब GPU का उपयोग करने पर इन्फरेंस समय में 2.8 गुना गिरावट और फ्रेम रेट में 3 गुना उछाल दर्ज किया गया है।

  • यह रनटाइम XNNPack (CPU), ML Drift (GPU), और WebNN (NPU) जैसे अनुकूलित बैक-एंड का उपयोग करता है।

  • मौजूदा PyTorch या TensorFlow मॉडल को .tflite प्रारूप में परिवर्तित करके सीधे LiteRT.js में चलाया जा सकता है।

타임라인

LiteRT.js का परिचय और तकनीकी अंतर

  • LiteRT.js ब्राउज़र में ऑन-डिवाइस इन्फरेंस के लिए LiteRT की JavaScript बाइंडिंग है।
  • TensorFlow.js के विपरीत, यह JavaScript-आधारित कर्नेल के बजाय WebAssembly और अनुकूलित नेटिव कर्नेल का उपयोग करता है।

LiteRT.js वही रनटाइम इंजन ब्राउज़र में लाता है जिसका उपयोग Android और iOS पर किया जाता है। JavaScript एब्स्ट्रैक्शन लेयर को हटाने और सीधे WASM में कंपाइल करने से प्रदर्शन में बाधाएं कम हो जाती हैं, जिससे यह नेटिव रनटाइम के अधिक करीब पहुंच जाता है।

प्रदर्शन बेंचमार्क और आर्किटेक्चर

  • LiteRT.js तीन स्तरों—CPU, GPU, और NPU—पर प्रदर्शन को अनुकूलित करने के लिए बैक-एंड का उपयोग करता है।
  • विज़न और ऑडियो मॉडल के लिए यह रनटाइम अन्य वेब लाइब्रेरी की तुलना में 3 गुना अधिक तेज़ इन्फरेंस देता है।

CPU के लिए XNNPack, GPU के लिए वेब GPU पर ML Drift, और NPU के लिए WebNN का उपयोग किया जाता है। विभिन्न वर्कलोड और हार्डवेयर के आधार पर प्रदर्शन में 5 गुना से लेकर 60 गुना तक का सुधार देखा गया है।

मॉडल पोर्टेबिलिटी और ब्राउज़र एप्लिकेशन

  • मौजूदा TensorFlow Lite फ़ाइलों को बिना किसी रूपांतरण के सीधे चलाया जा सकता है।
  • भविष्य में, यह लाइब्रेरी ब्राउज़र में स्थानीय रूप से पूर्ण भाषा मॉडल (LLMs) चलाने के लिए LiteRT.LM.js का समर्थन करेगी।

PyTorch उपयोगकर्ताओं के लिए Torch पाथ उपलब्ध है जो मॉडल को .tflite प्रारूप में बदलता है। ब्राउज़र में सीधे चलने वाले डेमो में YOLO ऑब्जेक्ट डिटेक्शन और मोनोकुलर डेप्थ एस्टिमेशन जैसे जटिल कार्य शामिल हैं।

रियल-टाइम मोशन कैप्चर टेस्ट

  • वेब GPU पर स्विच करने से पोज़ एस्टिमेशन का प्रदर्शन 38 FPS से बढ़कर 120 FPS हो गया।
  • मोशन कैप्चर डेटा को JSON या बायो विज़न मोशन कैप्चर फ़ाइलों के रूप में एक्सपोर्ट किया जा सकता है।

एक वेबकैम आधारित पोज़ एस्टिमेशन ऐप ने 33 बॉडी लैंडमार्क के साथ 3D कैरेक्टर को नियंत्रित किया। GPU उपयोग ने न केवल इन्फरेंस समय को 23.3ms से घटाकर 8.4ms किया, बल्कि पोज़ एस्टिमेशन में लैग को भी काफी कम कर दिया।

커뮤니티 글

모든 글 보기