ngxson/wllama

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

解决的问题

wllama 提供了一种无需后端服务器或专用 GPU 即可在浏览器中直接运行大型语言模型(LLMs)的方法。通过利用 WebAssembly(Wasm)和 WebGPU,它解决了在保持隐私、降低服务器成本并实现离线功能的同时将 AI 模型部署到 Web 的问题。

工作原理

它作为 llama.cpp 的 WebAssembly 绑定,使浏览器能够执行 GGUF 模型文件。该项目使用 WebAssembly SIMD 进行基于 CPU 的推理,使用 WebGPU 实现硬件加速的 GPU 推理。为应对浏览器内存限制并提升下载速度,它支持将大型模型文件拆分为较小的块,可并行加载。

适用人群

希望使用熟悉的 OpenAI 兼容 API 将 LLM 功能(如聊天、嵌入或多模态输入)集成到前端应用中的 Web 开发者。

主要亮点

  • 浏览器原生推理:使用 Wasm 和 WebGPU 在浏览器中本地运行模型,确保数据不会离开用户设备。
  • OpenAI 兼容 API:提供完全类型化的内置 API,便于集成。
  • 多模态与工具支持:支持图像和音频文件输入以及工具调用。
  • 高效加载:允许将模型拆分为更小的文件,以绕过 2GB ArrayBuffer 限制,并通过并行加载加快下载速度。
  • 非阻塞 UI:在 Web Worker 中执行推理,防止浏览器 UI 冻结。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目