ngxson/wllama
WebAssembly binding for llama.cpp - Enabling on-browser LLM inference
What it solves
wllama は、バックエンド サーバーや専用の GPU を必要とせずに、Web ブラウザ上で直接大規模言語モデル (LLM) を実行する方法を提供します。推論エンジンをクライアント側に持ってくることで、外部インフラストラクチャへの依存を解消します。
How it works
llama.cpp の WebAssembly (Wasm) バインディングとして機能し、C++ 推論エンジンをブラウザ環境で実行できるようにします。このプロジェクトは、CPU ベースの推論のために WebAssembly SIMD を、ハードウェア加速された GPU 推論のために WebGPU を活用しています。ブラウザのメモリ制限(特に 2GB ArrayBuffer 制限)に対処するため、大きな GGUF モデルファイルを小さなチャンクに分割して並列ダウンロードできるようにサポートしています。
Who it’s for
OpenAI 互換 API を使用してローカル LLM 機能をアプリケーションに統合したい Web 開発者、および、データがブラウザを離れないプライバシー重視型、またはオフライン対応の AI 体験を好むユーザー。
Highlights
- Hardware Acceleration: WebGPU による GPU オフロードと WebAssembly SIMD による CPU 推論の両方をサポートしています。
- Multimodal Capabilities: テキストに加えて、画像や音声ファイル入力もサポートしています。
- Developer Friendly: 型定義が完全な OpenAI 互換 API と、ビルド済みの npm パッケージを提供します。
- Performance Optimizations: モデルをより小さなファイルに分割して、並列ダウンロードを高速化し、メモリ制限を回避する機能を含んでいます。
- Non-blocking UI: Web Worker 内で推論を実行することで、ブラウザの UI が応答性を維持するようにします。