Июнь 2026   |   В фокусе

Google представила Cross-Origin Storage API для устранения дублирования загрузки ИИ-моделей в браузере

Текущая архитектура браузеров заставляет пользователей скачивать идентичные модели ИИ весом до 177 МБ при каждом переходе на новый сайт, расходуя трафик и замедляя запуск приложений. Google предлагает устранить эти потери через общее хранилище, где файлы идентифицируются криптографическим хешем, а не адресом ресурса, делая повторную загрузку мгновенной.

Google представила экспериментальное решение Cross-Origin Storage API (COS), призванное устранить дублирование загрузки тяжелых файлов искусственного интеллекта в веб-браузерах. Проблема заключается в том, что современные стандарты безопасности изолируют кэш для каждого сайта, заставляя пользователя скачивать одни и те же модели ИИ (например, для распознавания речи) заново при переходе на другой ресурс. В примере с библиотекой Transformers.js это приводит к повторной загрузке 177 МБ данных, хотя файлы идентичны. Предложенный механизм позволяет хранить файлы в общем хранилище, идентифицируя их не по адресу сайта, а по криптографическому хешу, что делает загрузку мгновенной при повторном обращении к ресурсу.

Механика проблемы и предлагаемое решение

Текущая архитектура браузеров, в частности Chrome, использует ключи изоляции сети (Network Isolation Key) для защиты от утечек данных через тайминг запросов. Это означает, что даже если два сайта обращаются к одному и тому же файлу на сервере Hugging Face или jsDelivr, браузер считает их разными ресурсами.

В результате возникают следующие последствия:

  • Дублирование трафика: Пользователь скачивает один и тот же файл ort-wasm-simd-threaded.asyncify.wasm (весом 4,733 КБ) каждый раз, когда заходит на новый сайт, использующий ИИ.
  • Перерасход места: На жестком диске накапливаются копии одинаковых моделей, так как кэш не объединяет их.
  • Замедление работы: При каждом новом визите приложение тратит время на загрузку, вместо того чтобы использовать уже имеющиеся данные.

API Cross-Origin Storage меняет логику работы. Вместо привязки к URL файл сохраняется под уникальным хешем SHA-256. Если приложение А скачало модель и записало её в хранилище, приложение Б, работающее на совершенно другом домене, сможет найти этот файл по хешу и использовать его без повторной загрузки.

Важный нюанс: Система работает на основе хешей, а не ссылок. Это гарантирует, что файл будет распознан как идентичный, даже если он был загружен с разных серверов или зеркал, при условии, что его содержимое не изменилось ни на бит.

Управление доступом и безопасность

Разработчики получили инструменты для тонкой настройки видимости файлов, чтобы балансировать между эффективностью и безопасностью. При сохранении файла можно указать параметр origins, определяющий, кто имеет право его читать:

  • *Глобальный доступ (`origins: «»`):** Файл виден всем сайтам в интернете. Это оптимальный выбор для общедоступных моделей ИИ и библиотек, где выгода от общей кэшизации максимальна.
  • Ограниченный доступ: Можно указать конкретный список доменов (например, [«site1.com», «site2.com»]). Это подходит для проприетарных моделей, которые компания хочет использовать на своих ресурсах, но не хочет делать общедоступными.
  • Внутренний доступ: Если параметр не указан, файл доступен только сайтам внутри одного домена.

Существует важное правило безопасности: права доступа можно расширять, но нельзя сужать. Если файл был сохранен как общедоступный, попытка ограничить доступ к нему позже будет проигнорирована. Это предотвращает сценарий, когда злоумышленник может скрыть общедоступный ресурс, пересохраняя его с ограничениями.

Для защиты конфиденциальности пользователей браузер может скрывать факт наличия файла, если он встречается слишком редко. Если ресурс есть только на одном-двух сайтах, его использование может стать цифровым идентификатором пользователя. В таких случаях браузер вернет ошибку, как будто файла нет, заставляя приложение загрузить его заново. Это предотвращает отслеживание истории посещений через наличие кэшированных файлов.

Стоит учесть: Ошибка при попытке получить файл из кэша не всегда означает его отсутствие. Это может быть защитная мера браузера. Приложения должны быть готовы обработать такую ошибку и автоматически переключиться на загрузку из сети.

Практическое применение в экосистеме ИИ

Библиотека Transformers.js уже интегрировала поддержку этого API в виде экспериментального режима. Для его активации разработчикам достаточно добавить одну строку кода перед инициализацией модели:

env.experimental_useCrossOriginStorage = true

После этого библиотека автоматически вычисляет хеш для каждого файла модели (например, весов Xenova/whisper-tiny.en) и пытается найти его в общем хранилище. Если файл найден, он подгружается мгновенно. Если нет — происходит обычная загрузка с последующим сохранением в общее хранилище для будущих обращений.

Этот подход также открывает возможности для гибкого выбора моделей. Приложение может проверить, какие версии модели (например, легкая или тяжелая версия Whisper) уже есть в кэше пользователя, и выбрать наиболее подходящую, не тратя время на загрузку.

На фоне этого: Внедрение технологии делает работу с тяжелыми ИИ-моделями в браузере экономически выгоднее и быстрее для всех участников рынка, так как снижает нагрузку на каналы связи и устройства пользователей.

Операционные последствия и скрытые нюансы

  • Требование к инфраструктуре: Для тестирования и использования функционала на текущем этапе требуется установка специального расширения браузера, так как нативная поддержка в браузерах еще не реализована.
  • Верификация целостности: При записи файла в хранилище браузер автоматически проверяет соответствие хеша содержимому. Это исключает риск подмены данных при загрузке с ненадежных источников, так как несоответствие приведет к ошибке записи.
  • Риск для разработчиков: Использование флага experimental_ означает, что API может измениться без предупреждения. Код, зависящий от текущей реализации, может потребовать доработки после стандартизации.
  • Влияние на пользовательский опыт: Пользователи, посещающие множество сайтов с ИИ-функциями, получат заметное ускорение работы приложений после первой загрузки моделей, так как последующие запуски будут использовать общее хранилище.

Данное решение находится на ранней стадии, и команда Chrome приветствует обратную связь для доработки спецификации перед внедрением в ядро браузера.

Коротко о главном

Почему современные браузеры, включая Chrome, повторно загружают один и тот же файл ИИ?

Использование ключей изоляции сети (Network Isolation Key) заставляет браузер считать файлы с разных доменов разными ресурсами, что приводит к перерасходу трафика и места на диске, даже если файлы идентичны.

Как механизм Cross-Origin Storage API идентифицирует файлы для их совместного использования?

Вместо привязки к URL система сохраняет файлы под уникальным криптографическим хешем SHA-256, что позволяет приложению на другом домене найти и использовать уже скачанную модель без повторной загрузки.

Какие параметры доступа к файлам доступны разработчикам в новой системе?

Разработчики могут выбрать глобальный доступ для всех сайтов, ограниченный доступ для конкретного списка доменов или внутренний доступ только для ресурсов одного домена, чтобы балансировать эффективность и безопасность.

Почему права доступа к файлу в общем хранилище можно расширять, но нельзя сужать?

Это правило предотвращает сценарий, когда злоумышленник может скрыть общедоступный ресурс, пересохраняя его с ограничениями, что гарантирует сохранение открытости данных.

Как браузер защищает конфиденциальность пользователей от отслеживания через кэш?

Если файл встречается слишком редко (на одном-двух сайтах), браузер может вернуть ошибку и скрыть факт его наличия, чтобы предотвратить использование кэшированных данных в качестве цифрового идентификатора пользователя.

Как библиотека Transformers.js интегрирует поддержку нового API?

Для активации режима достаточно добавить одну строку кода, после чего библиотека автоматически вычисляет хеш для весов модели и проверяет наличие файла в общем хранилище перед загрузкой.

Какое требование к инфраструктуре необходимо для использования технологии на текущем этапе?

Поскольку нативная поддержка еще не реализована в браузерах, для тестирования и работы функционала требуется установка специального расширения.

Какой риск несет использование флага experimental_ для разработчиков?

Наличие этого префикса означает, что спецификация API может измениться без предупреждения, что потребует доработки кода после стандартизации технологии.

Инфографика событий

Открыть инфографику на весь экран


Участники и связи

Отрасли: ИТ и программное обеспечение; Искусственный интеллект (AI); Передовые технологии

Материалы по теме