Your browser is downloading the same 177MB AI model twice—and that's by design
Curated by the Inblix editorial team
Here’s a maddening quirk of browser security that’s quietly wasting your bandwidth and disk space. If two different websites use the exact same popular AI model—say, Xenova/whisper-tiny.en for speech recognition—your browser doesn’t share the cached files. It downloads the entire 177 MB package all over again. I confirmed this by running the same Transformers.js demo from two different origins. Chrome’s DevTools showed the model files sitting in cache for the first site, then a completely separate, duplicate cache entry for the second. That’s 177 MB of redundant storage for one tiny model.
The problem compounds fast. Add a sentiment analysis pipeline using the default DistilBERT model, and you introduce a 4,733 kB WebAssembly runtime file from ONNX Runtime. That Wasm file is identical across all models that use Transformers.js, but it still gets fetched and stored fresh for every new domain. The root cause is cache partitioning, a privacy feature rolled out years ago to prevent timing attacks. As Google’s own documentation explains, caches are isolated by origin using a Network Isolation Key, so one site can’t sniff that you’ve visited another based on how fast a resource loads. Good for privacy, terrible for efficiency.
What’s particularly frustrating is that these resources often come from the same public CDNs—Hugging Face or jsDelivr—so the final URLs are literally identical. The browser just can’t treat them that way. The Cross-Origin Storage API is being floated as a potential fix to let sites opt into shared storage for these kinds of non-sensitive, versioned assets, but it’s still experimental. Until that ships, every new web app running inference client-side will keep hoarding its own private copy of the same bits.
💡 Key Takeaways
- Cache partitioning forces browsers to re-download identical AI models and Wasm runtimes for each origin, even when files come from the same CDN URLs.
- A simple two-model demo consumed 177 MB of duplicate storage just by running Whisper from two different domains.
- The proposed Cross-Origin Storage API aims to solve this by allowing shared caching for non-sensitive, versioned assets like ML model weights.
Keep reading: See related articles below for more coverage on this topic.
Get smarter about AI
The sharpest AI news, curated daily. Delivered free to your inbox.