Experimenten met de voorgestelde Cross-Origin Storage API in Transformers.js
Hugging Face
Transformers.js heeft een cacheprobleem: wanneer hetzelfde AI-model of Wasm-runtime op verschillende websites wordt gebruikt, downloadt de browser deze herhaaldelijk vanwege de op oorsprong gebaseerde cache-isolatie. De voorgestelde Cross-Origin Storage (COS) API lost dit op door bestanden te identificeren op basis van cryptografische hash in plaats van URL, waardoor veilig delen van bronnen tussen verschillende oorsprongen mogelijk wordt.
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.
Bron: Hugging Face blog —
origineel
