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 が応答性を維持するようにします。