आर्किटेक्चर वास्तव में क्या है
एक विज़न ट्रांसफॉर्मर, जिसे ONNX में बदला गया और लगभग 40 MB तक कंप्रेस किया गया, जिसे दो भागों में विभाजित किया गया ताकि प्रत्येक होस्टिंग प्लेटफ़ॉर्म की फ़ाइल आकार सीमा के भीतर रहे। ब्राउज़र में इसे फिर से जोड़ा जाता है और कुछ भी चलने से पहले इसके चेकसम का सत्यापन किया जाता है।
इन्फरेंस WebAssembly के माध्यम से होता है, जो एक कंपाइल किए गए रनटाइम को ब्राउज़र टैब के अंदर लगभग नेटिव गति पर निष्पादित करने की अनुमति देता है। रनटाइम स्वयं वेट्स के साथ लोड की गई एक कंप्रेस की गई WASM बाइनरी है।
अब इसमें कुछ भी असामान्य नहीं है। जो 2021 में एक शोध प्रदर्शन था, वह अब मॉडल शिप करने का एक सामान्य तरीका है, और अधिकांश काम ब्राउज़रों ने किया है।
यह क्या प्रदान करता है
| प्रॉपर्टी | ब्राउज़र में | सर्वर पर |
|---|---|---|
| छवि आपके डिवाइस से बाहर जाती है | No असंभव | Yes आवश्यक |
| प्रति जांच लागत | Yes शून्य | No वास्तविक कंप्यूट |
| डेटा प्रोसेसिंग समझौते की आवश्यकता | No | Yes |
| लोड होने के बाद बिना नेटवर्क के काम करता है | Yes | No |
| मॉडल को निजी रखा जा सकता है | No यह डाउनलोड हो जाता है | Yes |
| पहली जांच तुरंत होती है | No मॉडल एक बार डाउनलोड होता है | Yes |
पहली पंक्ति वह कारण है जिससे बाकी मौजूद हैं। चूंकि कोई अपलोड एंडपॉइंट नहीं है, इसलिए अन्य लोगों की तस्वीरों का कोई बकेट नहीं है, लिखने के लिए कोई प्रतिधारण नीति नहीं है, खुलासा करने के लिए कोई उल्लंघन नहीं है और अनुरोध पर सौंपने के लिए कुछ भी नहीं है।
दूसरी पंक्ति वह कारण है कि यह उपयोग मीटर के बिना मुफ़्त क्यों हो सकता है। एक जांच को प्रोसेस करने में कुछ भी खर्च नहीं होता है, इसलिए वसूलने के लिए कोई प्रति-छवि लागत नहीं है, जो मूल्य निर्धारण के स्वरूप को बदल देता है।
इसकी क्या लागत है
तीन वास्तविक समझौते, स्पष्ट रूप से कहे गए, क्योंकि केवल लाभों को सूचीबद्ध करने वाला पृष्ठ विज्ञापन है।
- पहली जांच धीमी होती है। कुछ भी होने से पहले चालीस मेगाबाइट का आना आवश्यक है। तेज़ कनेक्शन पर यह कुछ सेकंड का होता है; खराब कनेक्शन पर यह अधिक लंबा होता है। बाद की जांच कैश्ड मॉडल का पुन: उपयोग करती हैं और तुरंत शुरू होती हैं।
- पुराने डिवाइस संघर्ष करते हैं। इन्फरेंस के लिए मेमोरी और प्रोसेसिंग की आवश्यकता होती है जो पांच साल पुराने फोन में आसानी से उपलब्ध नहीं हो सकती है। सर्वर को इस बात से कोई फर्क नहीं पड़ेगा कि आपके पास कौन सा डिवाइस है।
- मॉडल सार्वजनिक है। ब्राउज़र में डाउनलोड की गई किसी भी चीज़ को रखा जा सकता है। सर्वर-साइड मॉडल मालिकाना हो सकता है; यह नहीं हो सकता, और वैसे भी इसके वेट्स एक ओपन रिसर्च चेकपॉइंट हैं।
तीसरे बिंदु के बारे में प्रत्यक्ष होना उचित है। क्लाइंट को मॉडल भेजने का मतलब है इसे सार्वजनिक करना। यह यहाँ एक स्वीकार्य समझौता है क्योंकि वेट्स पहले ही प्रकाशित हो चुके हैं, और जो काम टूल को उपयोगी बनाता है वह है कैलिब्रेशन, टाइलिंग और उनके चारों ओर बनाया गया इंटरप्रिटेशन।
इंजीनियरिंग संबंधी समस्याएं जिनके बारे में जानना उपयोगी है
एक बड़ी फ़ाइल को विभाजित करना
स्टेटिक होस्टिंग प्लेटफ़ॉर्म अलग-अलग फ़ाइल आकारों को सीमित करते हैं। एक 40 MB का मॉडल सीमा से अधिक था, इसलिए इसे दो निश्चित भागों के रूप में शिप किया जाता है जिन्हें ब्राउज़र में फिर से जोड़ा जाता है और उपयोग से पहले मैनिफ़ेस्ट हैश के विरुद्ध जाँचा जाता है। एक दूषित या प्रतिस्थापित भाग चुपचाप गलत स्कोर देने के बजाय स्पष्ट रूप से विफल हो जाता है।
ज़रूरत पड़ने तक कुछ भी लोड न करना
मॉडल, रनटाइम और क्रेडेंशियल रीडर पेज लोड होने पर नहीं लाए जाते हैं। वे पहली बार इंटरैक्ट करने पर आते हैं, ताकि कोई लेख पढ़ने वाला व्यक्ति इनमें से कुछ भी डाउनलोड न करे। यह उन अधिकांश आगंतुकों के लिए पेजों को तेज़ रखता है जो कभी कोई जांच नहीं चलाते हैं।
असामान्य प्रारूपों को डिकोड करना
iPhones से HEIC, AVIF, TIFF और JPEG XL सभी को स्कोरिंग से पहले डिकोडिंग की आवश्यकता होती है। ब्राउज़र अब इनमें से अधिकांश को नेटिव रूप से संभालते हैं, जो इस तरह के टूल में क्लाइंट-साइड काम के सबसे बड़े हिस्से को हटा देता है।
जब यह आर्किटेक्चर गलत विकल्प हो
यह सार्वभौमिक रूप से बेहतर नहीं है। सर्वर तब अधिक समझ में आता है जब मॉडल मालिकाना हो और सुरक्षित रखने योग्य हो, जब यह शिप करने के लिए बहुत बड़ा हो, जब आपको किसी व्यक्ति के सामने के बजाय बैकएंड पाइपलाइन में परिणामों की आवश्यकता हो, या जब आपको डिवाइस की परवाह किए बिना गारंटीकृत प्रतिक्रिया समय की आवश्यकता हो।
किसी ऐसे टूल के लिए जिसे कोई संदिग्ध तस्वीर जांचने के लिए खोलता है, इनमें से कोई भी लागू नहीं होता है, और गोपनीयता की विशेषता सर्वर द्वारा जोड़ी जाने वाली हर चीज़ से अधिक मूल्यवान है।
यह किन चीज़ों को बाहर करता है
क्लाइंट को चुनने के गोपनीयता से परे भी परिणाम होते हैं, और उनमें से कुछ सीमाओं के नाम देने लायक हैं, न कि सुविधाएँ।
कोई इतिहास नहीं है। एक परिणाम केवल उसी टैब में मौजूद होता है जिसने इसे तैयार किया है, इसलिए जब तक इसे निर्यात नहीं किया गया हो, बाद में कुछ भी नहीं देखा जा सकता है। यह खाता न होने की प्रत्यक्ष लागत है, और यह सबसे अधिक अनुरोध की जाने वाली चीज़ है जिसे आर्किटेक्चर कठिन बना देता है।
कोई साझा स्थिति नहीं है। दो लोग एक ही कतार नहीं देख सकते, और एक टीम एक-दूसरे की जांच की समीक्षा नहीं कर सकती। एक साझा लिंक केवल एक परिणाम ले जाता है, जो एक बातचीत को कवर करता है न कि वर्कफ़्लो को।
कोई API नहीं है। ब्राउज़र टैब में चलने वाली किसी भी चीज़ को बैकएंड पाइपलाइन से कॉल नहीं किया जा सकता है, जो उच्चतम-मात्रा वाले उपयोगों को पूरी तरह से बाहर करता है। ये वास्तविक कमियां हैं, और ईमानदार स्थिति यह है कि वे उस विशेषता की कीमत हैं जो अधिक मायने रखती है।