Expériences avec l'API Cross-Origin Storage proposée dans Transformers.js
Hugging Face
Transformers.js est confronté à un problème de mise en cache : lorsque le même modèle d'IA ou le même runtime Wasm est utilisé sur différents sites web, le navigateur les télécharge et les met en cache de manière répétée en raison de l'isolement du cache basé sur l'origine. L'API Cross-Origin Storage (COS) proposée résout ce problème en identifiant les fichiers par leur empreinte cryptographique plutôt que par leur URL, permettant ainsi un partage sécurisé des ressources entre différentes origines.
Transformers.js — библиотека для запуска моделей трансформеров в браузере. При загрузке модели, например Xenova/whisper-tiny.en, браузер кэширует её через Cache API. Однако при посещении другого сайта, использующего ту же модель, браузер загружает её заново (177 МБ дублирующихся данных), так как HTTP-кэш изолирован по происхождению (Network Isolation Key включает top-level site и current-frame site). То же касается Wasm-рантайма ort-wasm-simd-threaded.asyncify.wasm (4,733 кБ), общего для разных моделей. Предлагаемый API Cross-Origin Storage (COS) вводит navigator.crossOriginStorage, который идентифицирует файлы по хэшу (SHA-256). Разработчики могут хранить и читать файлы через requestFileHandle(hash). Файлы могут быть глобально доступны (origins: '*'), ограничены списком origin'ов или только same-site. Хэш проверяется при записи, обеспечивая целостность. Видимость можно только расширять, но не сужать. Для конфиденциальности COS предотвращает зондирование через origins и хэши. API пока экспериментальный, но доступен через расширение Cross-Origin Storage.
Source: Hugging Face blog —
original
