Rendimiento Web
La nueva API de Chrome podría ahorrarte 177 MB al permitir que los modelos de IA compartan caché entre sitios web
La propuesta de API de almacenamiento entre orígenes de Google busca eliminar descargas redundantes de modelos de IA y entornos de ejecución Wasm mediante la identificación de recursos por hash SHA-256 en lugar de URL. Transformers.js, WebLLM y wllama ya están experimentando con ella, y solo Whisper ahorra más de 177 MB por carga duplicada.

Aquí está el problema: construyes una aplicación web impulsada por IA con Transformers.js. En la primera visita, el navegador descarga los pesos del modelo y los archivos del entorno de ejecución de WebAssembly, almacenándolos en caché localmente. Luego cargas una segunda aplicación en un origen diferente que utiliza exactamente el mismo modelo, por ejemplo, el popular modelo de reconocimiento de voz Whisper. El navegador descarga y almacena en caché esos mismos megabytes otra vez. Para modelos grandes, esa duplicación puede desperdiciar cientos de megabytes de ancho de banda y espacio en disco por usuario. Es más que una molestia; es un verdadero desperdicio. minimax-speech-28-brings-human-warmth-to-ai-voices-with-native-filler-words-and-high-fidelity-cloning
El equipo de Chrome de Google está trabajando en una solución. La propuesta API de almacenamiento entre orígenes (COS) es una especificación en etapa temprana que introduce una interfaz dedicada navigator.crossOriginStorage. En lugar de indexar los recursos en caché por URL y origen (el modelo actual, que divide los cachés por razones de seguridad), COS identifica los archivos por su hash criptográfico SHA-256. Eso significa que, ya sea que un recurso haya sido obtenido primero por https://site-a.com o https://site-b.com, si los bytes son idénticos, el navegador puede servirlos desde un almacén compartido único. the-specialization-revolution-how-smaller-models-are-redefining-ais-future
Cómo funciona COS
La API está deliberadamente modelada sobre el Sistema de Archivos Privado de Origen (OPFS), ya familiar para los desarrolladores web. Para recuperar un archivo, una aplicación llama a navigator.crossOriginStorage.requestFileHandle(hash), donde hash es un objeto que contiene el algoritmo (actualmente SHA-256) y el valor hexadecimal. Si el archivo ya está almacenado, el método devuelve un FileSystemFileHandle para lectura. Si no, la aplicación puede recurrir a una descarga de red y luego almacenar el resultado con { create: true, origins: '*' } para que esté disponible globalmente.
El control sobre la visibilidad es granular: los desarrolladores pueden establecer origins en '*' para recursos públicos, una lista explícita de orígenes permitidos para activos propietarios, o omitirlo por completo para compartir solo dentro del mismo sitio. Una decisión de diseño deliberada evita degradar la visibilidad. Una vez que un archivo se almacena globalmente, un intento posterior de restringir sus orígenes se ignora silenciosamente, frustrando posibles abusos.
Integridad por defecto
Cada escritura en COS se verifica automáticamente contra el hash declarado. Si los bytes no coinciden, la escritura falla. Esto brinda a los consumidores una garantía de integridad implícita que las descargas actuales basadas en HTTP no proporcionan de forma rutinaria. Para modelos de IA descargados desde redes de entrega de contenido, eso significa que los desarrolladores y usuarios pueden confiar en que están obteniendo exactamente los pesos previstos. why-generating-an-article-on-command-misses-the-point-of-journalism
Protecciones de privacidad
El almacenamiento entre orígenes inevitablemente plantea el espectro del rastreo entre sitios. COS aborda esto con dos mecanismos. Primero, el campo explícito origins anima a los desarrolladores a limitar la visibilidad solo a aquellos orígenes que necesitan acceso. Segundo, incluso para archivos declarados globalmente, el navegador puede suprimir la confirmación de la presencia de un archivo si se ha encontrado en muy pocos orígenes distintos, devolviendo un error en lugar de confirmar que el archivo existe. Los miembros del equipo de Chrome señalan que esta mitigación aún se está refinando. Se recomienda a los desarrolladores que siempre manejen un error recurriendo a la red.
Transformers.js pilotea COS
La biblioteca Transformers.js, que permite a los desarrolladores web ejecutar modelos transformer directamente en el navegador mediante ONNX Runtime, ya ha introducido soporte experimental para COS. Una sola línea de código activa la opción:
import { env } from "https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.2.0";
env.experimental_useCrossOriginStorage = true;Cuando está habilitada, la biblioteca resuelve el hash SHA-256 para cada archivo de modelo rastreado por Xet y verifica COS antes de descargar. En pruebas, esto elimina descargas duplicadas de modelos como Xenova/whisper-tiny.en y el entorno de ejecución Wasm compartido, ahorrando más de 177 MB solo en el caso del modelo ASR Whisper. Las mismas mejoras se aplican a WebLLM y wllama, que también han integrado soporte para COS. kog-laneformer-2b-the-latency-first-model-that-redefines-small-scale-inference
Pruébalo hoy
Ningún navegador implementa aún la API COS de forma nativa, pero los desarrolladores pueden instalar la extensión de almacenamiento entre orígenes para Chrome, que inyecta un polyfill de navigator.crossOriginStorage. Con la extensión activa, visitar dos aplicaciones demo diferentes que usan el mismo modelo muestra que la segunda aplicación carga instantáneamente desde COS en lugar de volver a descargar los pesos.
El equipo de Chrome está solicitando activamente comentarios sobre la propuesta a través del repositorio de almacenamiento entre orígenes. La implementación en el propio navegador traería estos ahorros de rendimiento y almacenamiento a todos los usuarios web sin necesidad de una extensión. how-local-llms-like-gemma-and-qwen-are-taming-open-source-repository-triage-at-scale