모바일 웹 환경에서 인공지능(AI) 모델을 실행할 때 사용자 인터페이스(UI)가 멈추는 불편함을 해결하기 위한 경량 스타터 키트 'Tiny ONNX Runtime Web Worker Starter'가 공개되었습니다. 이 프로젝트는 ONNX 런타임 웹(ONNX Runtime Web)을 웹 워커(Web Worker) 내부에서 실행하는 패턴을 제공하여, AI 추론 작업을 메인 UI 스레드로부터 분리합니다. 이를 통해 모델 로딩이나 추론(inference)과 같은 무거운 작업이 진행되는 동안에도 웹 애플리케이션의 UI는 부드럽게 작동할 수 있습니다.
이 스타터 키트는 재사용 가능한 핵심 구성 요소를 제공합니다. 'public/onnx-worker/onnxWorker.js'는 ONNX 런타임을 로드하는 클래식 워커 스크립트이며, 'src/lib/OnnxWorkerClient.js'는 메시지 기반 통신을 위한 프라미스(Promise) 기반 래퍼입니다. 또한, 리액트(React) 개발자를 위한 'src/hooks/useOnnxWorker.js' 훅(hook)도 포함되어 있어 쉽게 통합할 수 있습니다. 특히, 워커 스크립트와 ONNX 런타임 파일들을 'public' 폴더에 직접 배치하는 방식을 채택했는데, 이는 Next.js와 같은 프레임워크에서 빌드 환경에 따른 URL 해싱 문제나 클래식 워커가 파싱할 수 없는 코드 주입 문제를 피하기 위함입니다. 개발자는 이 스타터 키트에 자신의 모델과 전처리 로직, UI만 추가하면 됩니다.
이러한 접근 방식은 웹 기반 AI 애플리케이션의 사용자 경험을 혁신할 잠재력을 가집니다. 특히 모바일 기기에서는 데스크톱보다 리소스가 제한적이므로, AI 모델 추론이 UI를 방해하는 경우가 잦습니다. 추론 작업을 웹 워커로 옮기면, 사용자는 AI가 백그라운드에서 작동하는 동안에도 웹 페이지를 스크롤하거나 다른 요소를 조작하는 등 끊김 없는 상호작용을 경험할 수 있습니다. 이는 온디바이스(on-device) AI의 활용도를 높이고, 개인 정보 보호에 강점을 가지는 브라우저 기반 AI 스튜디오와 같은 새로운 서비스의 등장을 촉진할 수 있습니다. 다만, 웹 워커가 모델을 마법처럼 가볍게 만드는 것은 아니므로, 이미지 처리 시 추론 전에 크롭(crop) 및 리사이즈(resize)와 같은 전처리 작업을 수행하는 것이 여전히 중요합니다.