Experimente mit der vorgeschlagenen Cross-Origin Storage API in Transformers.js
Hugging Face
Transformers.js hat ein Caching-Problem: Wenn dasselbe KI-Modell oder die Wasm-Laufzeit auf verschiedenen Websites verwendet wird, lädt der Browser sie aufgrund der origin-basierten Cache-Isolation wiederholt herunter und speichert sie zwischen. Die vorgeschlagene Cross-Origin Storage (COS) API behebt dies, indem sie Dateien anhand des kryptografischen Hashs anstatt der URL identifiziert, was eine sichere gemeinsame Nutzung von Ressourcen über verschiedene Ursprünge hinweg ermöglicht.
Transformers.js — eine Bibliothek zur Ausführung von Transformer-Modellen im Browser. Beim Laden eines Modells, beispielsweise Xenova/whisper-tiny.en, speichert der Browser es über die Cache-API zwischen. Wenn jedoch eine andere Website dasselbe Modell verwendet, lädt der Browser es erneut herunter (177 MB an doppelten Daten), da der HTTP-Cache nach Herkunft isoliert ist (der Network Isolation Key umfasst die Top-Level-Seite und die aktuelle Frame-Seite). Gleiches gilt für die Wasm-Laufzeitumgebung ort-wasm-simd-threaded.asyncify.wasm (4.733 kB), die von verschiedenen Modellen gemeinsam genutzt wird. Die vorgeschlagene Cross-Origin Storage (COS)-API führt navigator.crossOriginStorage ein, das Dateien anhand ihres Hashwerts (SHA-256) identifiziert. Entwickler können Dateien über requestFileHandle(hash) speichern und lesen. Die Dateien können global verfügbar sein (origins: '*'), auf eine Liste von Ursprüngen beschränkt oder nur für die gleiche Website zugänglich sein. Der Hash wird beim Schreiben überprüft, um die Integrität zu gewährleisten. Die Sichtbarkeit kann nur erweitert, nicht jedoch eingeschränkt werden. Aus Datenschutzgründen verhindert COS das Ausspähen durch Ursprünge und Hashwerte. Die API ist derzeit experimentell, aber über die Erweiterung Cross-Origin Storage verfügbar.
Quelle: Hugging Face blog —
Original
