ngxson/wllama
WebAssembly binding for llama.cpp - Enabling on-browser LLM inference
해결하는 문제
wllama는 백엔드 서버나 전용 GPU가 필요 없이 브라우저 내에서 대규모 언어 모델(LLM)을 직접 실행할 수 있는 방법을 제공합니다. WebAssembly(Wasm)과 WebGPU를 활용함으로써, 개인정보 보호를 유지하고 서버 비용을 줄이며 오프라인 기능을 가능하게 하면서 AI 모델을 웹에 배포하는 문제를 해결합니다.
작동 방식
llama.cpp에 대한 WebAssembly 바인딩으로 작동하여 브라우저에서 GGUF 모델 파일을 실행할 수 있습니다. CPU 기반 추론에는 WebAssembly SIMD를, 하드웨어 가속 GPU 추론에는 WebGPU를 사용합니다. 브라우저 메모리 제한을 극복하고 다운로드 속도를 향상시키기 위해, 큰 모델 파일을 더 작은 청크로 나누어 병렬로 로드할 수 있도록 지원합니다.
대상 사용자
채팅, 임베딩, 멀티모달 입력 등의 LLM 기능을 익숙한 OpenAI 호환 API를 사용해 프론트엔드 애플리케이션에 통합하고자 하는 웹 개발자.
주요 특징
- 브라우저 내 추론: Wasm과 WebGPU를 사용해 모델을 사용자 기기에서 로컬로 실행하여 데이터가 사용자 장치를 벗어나지 않도록 보장.
- OpenAI 호환 API: 간편한 통합을 위한 완전 타입 지정된 내장 API 제공.
- 멀티모달 및 도구 지원: 이미지 및 오디오 파일 입력과 도구 호출을 지원.
- 효율적인 로딩: 2GB ArrayBuffer 제한을 회피하고 병렬 로딩을 통해 다운로드 속도를 빠르게 하기 위해 모델을 작은 파일로 분할 가능.
- UI 차단 없음: 추론을 웹 워커 내에서 실행하여 브라우저 UI가 멈추는 것을 방지.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트