ngxson/wllama

WebAssembly binding for llama.cpp - Enabling on-browser LLM inference

What it solves

wllama는 백엔드 서버나 전용 GPU 없이 웹 브라우저에서 대규모 언어 모델(LLM)을 직접 실행할 수 있는 방법을 제공합니다. 추론 엔진을 클라이언트 측으로 가져옴으로써 외부 인프라에 대한 의존성을 제거합니다.

How it works

llama.cpp의 WebAssembly (Wasm) 바인딩으로 작동하여, C++ 추론 엔진이 브라우저 환경에서 실행될 수 있도록 합니다. 이 프로젝트는 CPU 기반 추론을 위해 WebAssembly SIMD를 사용하고, 하드웨어 가속 GPU 추론을 위해 WebGPU를 사용합니다. 브라우저 메모리 제한(특히 2GB ArrayBuffer 제한)을 처리하기 위해, 대규모 GGUF 모델 파일을 더 작은 청크로 분할하여 병렬로 다운로드할 수 있도록 지원합니다.

Who it’s for

OpenAI 호환 API를 사용하여 로컬 LLM 기능을 애플리케이션에 통합하려는 웹 개발자, 그리고 데이터가 브라우저를 떠나지 않는 개인정보 보호 중심 또는 오프라인 기능의 AI 경험을 선호하는 사용자.

Highlights

  • Hardware Acceleration: WebGPU를 통한 GPU 오프로딩과 WebAssembly SIMD를 통한 CPU 추론을 모두 지원합니다.

  • Multimodal Capabilities: 텍스트 외에도 이미지 및 오디오 파일 입력을 지원합니다.

  • Developer Friendly: 완전한 타입이 지정된 OpenAI 호환 API와 사전 빌드된 npm 패키지를 제공합니다.

  • Performance Optimizations: 모델을 더 작은 파일로 분할하여 더 빠른 병렬 다운로드와 메모리 제한을 피할 수 있는 기능을 포함합니다.

  • Non-blocking UI: 웹 워커(web worker) 내에서 추론을 실행하여 브라우저 UI가 응답성을 유지하도록 보합니다.