ngxson/wllama

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

何を解決するか

wllama は、バックエンドサーバーや専用GPUを必要とせずに、Webブラウザ内で大規模言語モデル(LLM)を直接実行する方法を提供します。WebAssembly(Wasm)とWebGPUを活用することで、プライバシーを守り、サーバーコストを削減し、オフライン運用を可能にするAIモデルのWebデプロイ問題を解決します。

動作方法

llama.cpp 用のWebAssemblyバインディングとして機能し、ブラウザでGGUFモデルファイルを実行できます。CPUベースの推論にはWebAssembly SIMDを使用し、ハードウェアアクセラレーションによるGPU推論にはWebGPUを使用します。ブラウザのメモリ制限を回避し、ダウンロード速度を向上させるために、大きなモデルファイルを小さなチャンクに分割して並列で読み込むサポートも提供しています。

対象ユーザー

チャット、埋め込み、マルチモーダル入力などのLLM機能を、なじみのあるOpenAI互換APIを使ってフロントエンドアプリに統合したいWeb開発者。

特徴

  • ブラウザネイティブ推論: WasmとWebGPUを使用して、モデルをユーザーのデバイス上でローカルに実行し、データがユーザーのデバイスから外に出ることはありません。
  • OpenAI互換API: シンプルな統合を可能にする完全型付けされた組み込みAPIを提供。
  • マルチモーダル & ツールサポート: 画像や音声ファイルの入力、ツール呼び出しをサポート。
  • 効率的な読み込み: モデルを小さなファイルに分割することで、2GBのArrayBuffer制限を回避し、並列読み込みでダウンロードを高速化。
  • UIのブロッキングなし: 推論をWeb Worker内で実行し、ブラウザのUIがフリーズすることを防ぎます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト