Experiments with the Proposed Cross-Origin Storage API in Transformers.js
Hugging Face
Transformers.js faces a caching issue: when using the same AI model or Wasm runtime across different websites, the browser downloads and caches them repeatedly due to origin-based cache isolation. The proposed Cross-Origin Storage (COS) API addresses this by identifying files by cryptographic hash rather than URL, enabling secure resource sharing across different origins.
Transformers.js — यह लाइब्रेरी ब्राउज़र में ट्रांसफॉर्मर मॉडल चलाने के लिए है। जब कोई मॉडल लोड होता है, जैसे Xenova/whisper-tiny.en, तो ब्राउज़र इसे Cache API के ज़रिए कैश करता है। हालांकि, जब उसी मॉडल का उपयोग करने वाली किसी दूसरी साइट पर जाते हैं, तो ब्राउज़र इसे फिर से डाउनलोड करता है (177 MB डुप्लिकेट डेटा), क्योंकि HTTP कैश मूल स्रोत (Network Isolation Key, जिसमें top-level site और current-frame site शामिल हैं) के आधार पर अलग-अलग होता है। यही बात Wasm रनटाइम ort-wasm-simd-threaded.asyncify.wasm (4,733 kB) पर भी लागू होती है, जो विभिन्न मॉडलों के लिए सामान्य है। प्रस्तावित Cross-Origin Storage (COS) API navigator.crossOriginStorage का परिचय देता है, जो फ़ाइलों को SHA-256 हैश से पहचानता है। डेवलपर्स requestFileHandle(hash) के ज़रिए फ़ाइलों को स्टोर और पढ़ सकते हैं। फ़ाइलें वैश्विक रूप से उपलब्ध हो सकती हैं (origins: '*'), कुछ मूल स्रोतों (origin) की सूची तक सीमित, या केवल same-site के लिए। लिखते समय हैश की जाँच की जाती है, जिससे अखंडता सुनिश्चित होती है। दृश्यता को केवल बढ़ाया जा सकता है, घटाया नहीं जा सकता। गोपनीयता के लिए, COS origins और हैश के माध्यम से पता लगाने (probing) को रोकता है। API अभी प्रयोगात्मक है, लेकिन Cross-Origin Storage एक्सटेंशन के ज़रिए उपलब्ध है।
स्रोत: Hugging Face blog —
मूल
