Benchmarking Edge Inference Strategies for Deep Learning Models in Industrial Machine Vision
यह शोध पत्र विभिन्न औद्योगिक हार्डवेयर और मॉडल आर्किटेक्चर में चार इन्फरेंस फ्रेमवर्क (PyTorch, ONNX Runtime, OpenVINO, और TensorRT) का एक तुलनात्मक अध्ययन प्रस्तुत करता है, जो यह प्रकट करता है कि OpenVINO और TensorRT क्रमशः CPU और GPU प्रदर्शन के लिए सर्वश्रेष्ठ विकल्प हैं, हालांकि TensorRT हमेशा ट्रांसफॉर्मर-आधारित मॉडलों के लिए प्लेन PyTorch से बेहतर प्रदर्शन नहीं करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक मस्तिष्क (एक डीप लर्निंग मॉडल) से एक रोबोटिक हाथ (एक औद्योगिक मशीन) तक एक संदेश जितनी जल्दी हो सके पहुँचाने की कोशिश कर रहे हैं। औद्योगिक मशीन विजन की दुनिया में, गति ही सब कुछ है। यदि रोबोट बहुत धीमा है, तो वह कार के पुर्जे में दोष को मिस कर देगा या अंगूरों को सही ढंग से छांटने में विफल हो जाएगा। आमतौर पर, इस डेटा को एक विशाल क्लाउड सर्वर पर भेजना बहुत धीमा या जोखिम भरा होता है, इसलिए इंजीनियर इस "मस्तिष्क" को सीधे रोबोट के स्थानीय कंप्यूटर (जिसे "एज" कहा जाता है) पर चलाने की कोशिश करते हैं।
लेकिन यहाँ एक ट्विस्ट है: सिर्फ इसलिए कि आपके पास "मस्तिष्क" है, इसका मतलब यह नहीं है कि आपके पास सही डिलीवरी सर्विस भी है। यह शोध पत्र एक विशाल रेस ट्रैक टेस्ट की तरह कार्य करता है, जो चार अलग-अलग "डिलीवरी ट्रकों" (सॉफ्टवेयर फ्रेमवर्क) की तुलना करता है ताकि यह देखा जा सके कि कौन सा ट्रक संदेश को रोबोट तक सबसे तेज़ी से पहुँचाता है। वे चार ट्रक हैं: PyTorch (मानक, विश्वसनीय बेसलाइन), ONNX Runtime (लचीला ऑल-राउंडर), OpenVINO (Intel इंजनों के लिए विशेषज्ञ), और TensorRT (NVIDIA इंजनों के लिए स्पीड डेमन)।
शोधकर्ताओं ने केवल अनुमान नहीं लगाया; उन्होंने वास्तव में तीन प्रकार के "मस्तिष्क" को चार अलग-अलग "चेसिस" (कंप्यूटर) पर चलाया और समय को मिलीसेकंड तक मापा। यहाँ इस रेस का खुलासा हुआ:
CPU रेस: यह इंजन ब्रांड के बारे में है
जब कंप्यूटरों में मानक Intel प्रोसेसर (जो कई डेस्कटॉप में पाए जाते हैं) का उपयोग किया गया, तो परिणाम आश्चर्यजनक रूपستे सुसंगत थे। OpenVINO स्पष्ट विजेता था, जो उस इंजन के लिए विशेष रूप से डिज़ाइन किए गए टर्बोचार्जर की तरह काम कर रहा था।
- Intel डेस्कटॉप पर, OpenVINO द्वारा परीक्षण किए गए प्रत्येक मॉडल के लिए सबसे तेज़ था।
- YOLOv8 मॉडल (एक तेज़ ऑब्जेक्ट डिटेक्टर) के लिए, OpenVINO ने समय का एक बड़ा हिस्सा कम कर दिया। सबसे तेज़ Intel डेस्कटॉप (i9-9820X) पर, इसने केवल 10.9 ms में काम पूरा किया, जबकि मानक PyTorch को 28.7 ms लगे। यह एक बहुत बड़ी छलांग है!
- ONNX Runtime आमतौर पर दूसरे स्थान पर आया, और PyTorch सबसे धीमा था।
हालाँकि, जब उन्होंने Jetson AGX Orin (एक छोटा, शक्तिशाली कंप्यूटर जिसका उपयोग रोबोट में किया जाता है, जो ARM चिप्स का उपयोग करता है, Intel का नहीं) पर स्विच किया, तो रेस पूरी तरह बदल गई। अचानक, OpenVINO का जादू गायब हो गया।
- इस ARM-आधारित मशीन पर, ONNX Runtime ने स्वर्ण पदक जीता।
- Grounding DINO मॉडल (एक जटिल मॉडल जो टेक्स्ट और इमेज को समझता है) के लिए अंतर चौंकाने वाला था। Jetson CPU पर, OpenVINO ने 102,720 ms (100 सेकंड से अधिक!) का समय लिया, जबकि ONNX Runtime ने इसे मात्र 13,580 ms में पूरा कर लिया। यह सात गुना से भी अधिक तेज़ है! यह सुझाव देता है कि अपने विशिष्ट इंजन के लिए "गलत" डिलीवरी ट्रक का उपयोग करना विनाशकारी हो सकता है।
GPU रेस: CNN बनाम Transformer का मुकाबला
जब शोधकर्ताओं ने NVIDIA के शक्तिशाली ग्राफिक्स कार्ड (GPUs) का उपयोग किया, तो कहानी और भी दिलचस्प हो गई। उन्होंने दो प्रकार के "मस्तिष्क" का परीक्षण किया:
- CNNs (जैसे YOLOv8 और UNet): ये कंप्यूटर विजन के क्लासिक, भरोसेमंद वर्कहॉर्स हैं।
- Transformers (Grounding DINO): ये नए, फैंसी मॉडल हैं जो भाषा को समझ सकते हैं।
क्लासिक वर्कहॉर्स (YOLOv8 और UNet) के लिए:
TensorRT निर्विवाद चैंपियन था। यह ट्रैक पर एक फॉर्मूला 1 कार होने जैसा था।
- डेस्कटॉप GPUs पर, TensorRT ने प्रतियोगिता को पछाड़ दिया। YOLOv8 के लिए RTX 2080 Ti पर, TensorRT ने 2.100 ms में काम पूरा किया, जबकि PyTorch को 5.270 ms लगे।
- यहाँ तक कि छोटे Jetson GPU पर भी, TensorRT सबसे तेज़ था, जिसने YOLOv8 को PyTorch के 20.84 ms के मुकाबले 10.57 ms में पूरा किया।
- पेपर सुझाव देता है कि इन विशिष्ट प्रकार के मॉडलों के लिए, NVIDIA हार्डवेयर के लिए TensorRT सबसे अच्छा विकल्प है।
नए फैंसी मॉडल (Grounding DINO) के लिए:
यहाँ शोध पत्र एक अप्रत्याशित मोड़ देता है। "स्पीड डेमन" (TensorRT) नहीं जीता।
- डेस्कटॉप NVIDIA GPUs पर, मानक PyTorch वास्तव में सबसे तेज़ था, जिसने सभी परीक्षण किए गए मामलों में सबसे कम इन्फरेंस टाइम प्रदान किया।
- TensorRT वास्तव में PyTorch से धीमा था, जिसे काम पूरा करने में 1.6 से 2.1 गुना अधिक समय लगा।
- उदाहरण के लिए, RTX 6000 पर, PyTorch ने 7.780 ms लिए, जबकि TensorRT काफी धीमा था।
- एकमात्र अपवाद Jetson GPU था, जहाँ TensorRT ने PyTorch को थोड़ा पछाड़ा (1082.7 ms बनाम 1290.8 ms), लेकिन यह अभी भी डेस्कटॉप परिणामों की तुलना में बहुत धीमा था।
मुख्य निष्कर्ष
इस पेपर का मुख्य सबक यह है कि हर किसी के लिए कोई एक "सर्वश्रेष्ठ" सॉफ्टवेयर नहीं है। पेपर सुझाव देता है कि आपका चुनाव पूरी तरह से दो चीजों पर निर्भर करता है: आपके पास किस प्रकार का कंप्यूटर है और आप किस प्रकार का मॉडल चला रहे हैं।
- यदि आपके पास Intel CPU है, तो OpenVINO का उपयोग करें।
- यदि आपके पास ARM CPU (जैसे Jetson) है, तो ONNX Runtime का उपयोग करें।
- यदि आपके पास NVIDIA GPU है और आप एक क्लासिक मॉडल (जैसे YOLO या UNet) चला रहे हैं, तो TensorRT का उपयोग करें।
- लेकिन, यदि आपके पास NVIDIA GPU है और आप एक नया टेक्स्ट-आधारित मॉडल (जैसे Grounding DINO) चला रहे हैं, तो पेपर सुझाव देता है कि डेस्कटॉप GPUs पर आपको मानक PyTorch के साथ बने रहने में बेहतर हो सकता है, क्योंकि TensorRT में फैंसी अनुकूलन (optimizations) ने मदद नहीं की और वास्तव में चीज़ों को धीमा कर दिया।
शोधकर्ताओं ने इन परिणामों को सुनिश्चित करने के लिए बार-बार (प्रत्येक परीक्षण के लिए 1,000 रन!) मापा। उन्होंने केवल परिणामों का अनुकरण (simulate) नहीं किया; उन्होंने वास्तविक हार्डवेयर पर उन्हें चलाया। इसलिए, यदि आप एक औद्योगिक रोबोट बना रहे हैं, तो केवल उस "सबसे तेज़" सॉफ्टवेयर को न उठाएं जिसके बारे में आपने सुना है। पहले अपना इंजन और अपने ब्रेन का प्रकार जांच लें, अन्यथा आप एक ऐसे रोबोट के साथ समाप्त हो सकते हैं जो स्लो मोशन में चलता है!
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।