ExecuTorch, WebGPU로 브라우저에서 PyTorch 모델 실행
개요
브라우저에서 PyTorch 모델을 실행하려면 지금까지 다른 추론 프레임워크의 형식으로 변환한 뒤 브라우저용 런타임에 올리는 경우가 많았다. ExecuTorch의 새 WebGPU 백엔드는 이 과정을 단순화한다. 개발자는 torch.export로 모델을 ExecuTorch의 .pte 파일로 내보내고, WebGPU를 지원하는 브라우저에서 같은 파일을 로드할 수 있다.
핵심 내용
- PyTorch 도구 체계를 유지한다.
WebGPUPartitioner가 지원 연산을 WebGPU 백엔드로 배치하고, WGSL 컴퓨트 셰이더가 이를 실행한다. ONNX, GGUF, TFLite 같은 별도 형식을 주 배포 형식으로 삼을 필요가 없다. - 탭 내부에서 GPU 추론이 가능하다. 동적 C++ 런타임은 Emscripten을 통해 WebAssembly로 컴파일되며, emdawnwebgpu가 브라우저의 WebGPU JavaScript API와 연결한다. 플랫폼에 따라 Metal, Vulkan, D3D12를 활용할 수 있다.
- 다양한 작업을 대상으로 한다. Llama, Qwen, Gemma 같은 언어 모델뿐 아니라 SmolVLM, 깊이 추정, SAM 2 분할, 객체 탐지, 초해상도, Whisper 음성 인식, 음성 합성까지 검증됐다. 일부 언어 모델에서는 기기 내 LoRA와 DiReFT 미세 조정도 시연됐다.
- CPU 경로보다 빠른 결과를 보였다. Apple M1 Pro의 Chrome에서 양자화된 Llama 3.2 1B와 Qwen3-0.6B를 비교한 결과, 다중 스레드 Wasm/XNNPACK 경로보다 WebGPU가 prefill에서 약 4
7배, decode에서 210배 빠른 것으로 측정됐다. 이는 특정 브라우저와 하드웨어에서의 결과이며 모든 환경을 보장하는 수치는 아니다.
설계와 한계
동적 형상은 최대 크기의 버퍼를 미리 할당하고, 각 디스패치마다 workgroup을 다시 계산하는 방식으로 처리한다. 실행 시 형상에 따라 특화된 WGSL 커널을 선택해 배치 prefill도 지원한다. 하나의 .pte 파일을 여러 브라우저와 기기에서 사용할 수 있다는 점도 장점이다.
그러나 백엔드는 아직 초기 단계다. 연산자와 데이터 형식, 모델 호환성, 안정성, 성능은 계속 개선돼야 한다. 실제 사용성은 브라우저의 WebGPU 지원 여부, GPU 성능, 모델 크기, 최초 다운로드 시간, 메모리 사용량에 따라 달라진다.
의미와 영향
브라우저는 가장 넓은 소프트웨어 배포 환경 중 하나다. 추론을 기기에서 처리하면 네트워크 지연과 서버 추론 비용을 줄이고, 오프라인에 가까운 사용 경험을 제공할 수 있다. 프롬프트, 이미지, 카메라 프레임, 오디오가 기기 밖으로 나가지 않으므로 개인정보 보호가 중요한 비서와 미디어 애플리케이션에도 의미가 있다.
다만 모든 모델이 브라우저에 적합한 것은 아니다. ExecuTorch WebGPU는 PyTorch 모델을 브라우저 GPU로 가져가는 직접적인 경로를 제시했다는 데 의미가 있으며, 장기적인 경쟁력은 호환성 확대와 실제 기기에서의 일관된 성능에 달려 있다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…