구글 크롬팀의 Thomas Steiner가 Transformers.js에 제안 단계 API인 Cross-Origin Storage(COS)를 적용한 실험을 소개했다. 브라우저는 보안상 캐시를 오리진별로 분리(Network Isolation Key)하기 때문에, 같은 AI 모델이나 Wasm 런타임이라도 사이트가 다르면 매번 다시 내려받는다. 예시에서는 Whisper 모델 177MB와 ONNX 런타임 파일 4,733kB가 오리진마다 중복 다운로드·저장됐다. COS는 파일을 URL이 아닌 SHA-256 해시로 식별해, 어느 오리진이 받았든 동일 바이트면 한 번만 받아 공유하며 쓰기 시 해시를 검증해 무결성도 보장한다. env.experimental_useCrossOriginStorage = true 한 줄로 옵트인할 수 있어, 옵트인하는 사이트가 늘수록 모든 웹 사용자의 모델 로딩이 빨라지고 저장공간 낭비가 줄어든다.
- •브라우저 캐시는 타이밍 공격 방지를 위해 오리진별로 분리되어, 동일한 모델·Wasm 파일도 사이트가 다르면 중복 다운로드·저장된다
- •Cross-Origin Storage(COS)는 파일을 URL이 아닌 SHA-256 암호 해시로 식별해 오리진 경계를 넘어 공유 저장한다
- •origins 옵션으로 가시성 제어: '*'는 전역 공유, 특정 목록은 지정 사이트 한정, 생략 시 같은 사이트 한정(가시성은 상향만 가능, 하향 불가)
- •쓰기 시 선언한 해시와 데이터가 일치하지 않으면 실패시켜 무결성을 자동 검증하고, 가용성 게이팅으로 프라이버시 누출을 완화한다
- •Transformers.js는 PR #1549로 실험 백엔드를 도입했으며 env.experimental_useCrossOriginStorage = true 한 줄로 옵트인 가능, WebLLM·wllama도 COS를 실험 중이다
Experimenting with the proposed Cross-Origin Storage API in Transformers.js
- 1.Chrome 팀이 제안한 Cross-Origin Storage(COS) API를 Transformers.js에 실험 적용한 사례 소개
- 2.브라우저 캐시가 origin별로 격리돼 whisper-tiny.en 177MB·ort-wasm 4,733kB가 사이트마다 중복 다운로드됨
- 3.COS는 파일을 URL 대신 SHA-256 해시로 식별해 origin 간 공유하고, 쓰기 시 해시 무결성을 자동 검증
- 4.Transformers.js가 experimental_useCrossOriginStorage 플래그로 COS 캐시 백엔드 opt-in 도입
왜 중요한가?
동일한 AI 모델·Wasm 런타임을 방문 사이트마다 다시 받던 브라우저 캐시 파티셔닝의 비효율을, 해시 기반 교차 출처 공유로 해소하려는 시도다. 모델 용량이 클수록 절감 효과가 커 Transformers.js·WebLLM·wllama 같은 브라우저 온디바이스 AI의 로딩 속도와 저장 비용을 실질적으로 개선할 수 있고, opt-in이라 미지원 시 기존 Cache API로 안전하게 폴백된다.
🏷️ 언급 프로젝트
전체 내용이 궁금하다면?
원문을 직접 읽어보세요