Transformers.js, 웹 브라우저 캐시 효율성 높이는 COS API 테스트
- •Transformers.js가 서로 다른 웹사이트 간 AI 모델 공유를 위한 Cross-Origin Storage(COS) API를 테스트 중이다.
- •현재 브라우저는 출처별로 캐시를 격리하여 대규모 AI 모델과 4,733 kB 크기의 WASM 런타임 파일을 중복 다운로드하게 만든다.
- •COS는 SHA-256 해시를 키로 사용하여 브라우저 보안과 개인정보를 유지하면서 안전한 리소스 공유를 구현한다.
웹 브라우저에서 머신러닝 모델을 구동하는 라이브러리인 Transformers.js가 현대 브라우저의 보안 정책으로 인한 캐싱 문제에 직면했다. 사용자가 동일한 AI 모델이나 WASM 런타임을 사용하는 여러 웹사이트를 방문할 때, 브라우저는 현재 이러한 리소스를 출처별로 분리하여 처리한다. 이로 인해 동일한 리소스가 반복적으로 다운로드되어 대역폭과 디스크 공간이 낭비된다. 예를 들어, Xenova/whisper-tiny.en 같은 흔한 모델이나 4,733 kB 규모의 ort-wasm-simd-threaded.asyncify.wasm 파일은 사이트를 방문할 때마다 매번 재다운로드해야 한다. 이러한 격리 정책은 브라우저가 사용자의 탐색 기록을 추적할 수 있는 부채널 공격을 방지하기 위해 캐시를 출처별로 분할 관리하면서 발생한다.
제안된 Cross-Origin Storage(COS) API는 이를 해결하기 위해 URL이나 출처가 아닌 암호학적 해시를 기반으로 파일을 식별하는 navigator.crossOriginStorage 인터페이스를 도입한다. SHA-256 해시를 고유 키로 사용하면 브라우저는 서로 다른 웹사이트가 같은 파일을 요청하고 있음을 인식하여 단일 캐시 복사본을 공유할 수 있다. 개발자는 origins 옵션을 통해 가시성을 제어할 수 있으며, 빈 값('')으로 설정하면 전역적으로 공유되고, 허용된 목록을 지정하여 특정 사이트에서만 접근하도록 제한할 수도 있다. API는 기록된 데이터가 선언된 해시와 일치하는지 검증함으로써 파일 무결성을 보장한다.
개인정보 보호를 위해 브라우저는 특정 파일이 일정 수 이상의 서로 다른 출처에서 발견되지 않은 경우 해당 파일의 존재 여부 확인을 차단하여, 희귀한 파일을 추적 도구로 악용하는 것을 방지할 수 있다. 개발자는 검색 오류 발생 시 이를 캐시 누락으로 간주하고 네트워크 다운로드로 전환하도록 권고받는다. 현재 Transformers.js는 실험용 캐시 백엔드를 통해 이 API를 시범 운영하고 있다. env.experimental_useCrossOriginStorage 설정을 활성화하면 라이브러리는 모델 파일의 해시를 사용해 COS 인터페이스와 상호작용한다. 성공 시 AI 기반 웹 애플리케이션의 시작 지연 시간을 줄이고, 서로 다른 웹 출처 전반에서 대규모 모델 가중치와 공유 런타임 파일의 중복 저장을 제거하는 효과를 거둘 수 있다.