WebLLM: A High-Performance In-Browser LLM Inference Engine
作者: Charlie F. Ruan, Yucheng Qin, Xun Zhou, Ruihang Lai, Hongyi Jin, Yixin Dong, Bohan Hou, Meng-Shiun Yu, Yiyan Zhai, Sudeep Agarwal, Hangrui Cao, Siyuan Feng, Tianqi Chen
分类: cs.LG, cs.AI
发布日期: 2024-12-20
🔗 代码/项目: GITHUB
💡 一句话要点
WebLLM:一个高性能的浏览器内LLM推理引擎
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 浏览器内推理 大型语言模型 WebGPU WebAssembly 本地部署 JavaScript框架 MLC-LLM
📋 核心要点
- 现有LLM部署依赖服务器GPU和云端推理,成本高昂且存在隐私问题,小型开源模型和消费级设备性能提升为本地部署提供了可能。
- WebLLM通过JavaScript框架,利用WebGPU和WebAssembly技术,在浏览器内实现高性能LLM推理,提供OpenAI风格API方便集成。
- 实验表明,WebLLM在浏览器内推理性能可达本地性能的80%,为隐私保护、个性化和本地驱动的Web应用开辟了新途径。
📝 摘要(中文)
大型语言模型(LLMs)的进步释放了卓越的能力。虽然部署这些模型通常需要服务器级别的GPU和基于云的推理,但最近涌现的较小开源模型和日益强大的消费设备使得设备上的部署成为可能。Web浏览器作为一个设备上部署的平台,具有普遍的可访问性,提供了一个自然的代理环境,并方便地抽象了来自不同设备供应商的不同后端。为了抓住这个机会,我们推出了WebLLM,这是一个开源JavaScript框架,它能够在Web浏览器中实现高性能的LLM推理。WebLLM提供了一个OpenAI风格的API,可以无缝集成到Web应用程序中,并利用WebGPU实现高效的本地GPU加速,利用WebAssembly实现高性能的CPU计算。借助机器学习编译器MLC-LLM和Apache TVM,WebLLM利用优化的WebGPU内核,克服了缺乏高性能WebGPU内核库的问题。评估表明,WebLLM可以在同一设备上保持高达80%的本地性能,并且有进一步缩小差距的空间。WebLLM为Web浏览器中普遍可访问、保护隐私、个性化和本地驱动的LLM应用程序铺平了道路。代码可在https://github.com/mlc-ai/web-llm获取。
🔬 方法详解
问题定义:现有大型语言模型(LLM)的部署通常依赖于服务器级别的GPU和云端推理,这带来了高昂的成本、网络延迟以及潜在的隐私泄露风险。虽然小型开源LLM和消费级设备的计算能力不断提升,但缺乏一个高效、通用的浏览器内LLM推理框架,使得在Web应用中直接利用这些资源变得困难。
核心思路:WebLLM的核心思路是利用Web浏览器作为通用平台,通过JavaScript框架实现LLM的本地推理。它充分利用WebGPU进行GPU加速,WebAssembly进行CPU计算,并提供OpenAI风格的API,方便Web应用集成。通过机器学习编译器(MLC-LLM和Apache TVM)优化WebGPU内核,克服了WebGPU内核库的不足。
技术框架:WebLLM的整体架构包括以下几个主要模块:1) 模型加载模块:负责加载预训练的LLM模型;2) 推理引擎:利用WebGPU或WebAssembly执行模型推理;3) API接口:提供OpenAI风格的API,方便Web应用调用;4) 优化器:使用MLC-LLM和Apache TVM对WebGPU内核进行优化。整个流程是从Web应用调用API,WebLLM加载模型,利用GPU或CPU进行推理,最后将结果返回给Web应用。
关键创新:WebLLM最重要的技术创新点在于它能够在Web浏览器中实现高性能的LLM推理,而无需依赖服务器或云端资源。这得益于以下几个方面:1) 利用WebGPU进行GPU加速,充分利用消费级设备的计算能力;2) 使用WebAssembly进行CPU计算,保证在没有GPU的情况下也能进行推理;3) 通过MLC-LLM和Apache TVM优化WebGPU内核,提升推理效率。与现有方法的本质区别在于,WebLLM将LLM推理从服务器端转移到了客户端,实现了真正的本地化部署。
关键设计:WebLLM的关键设计包括:1) 使用WebGPU的compute shader进行矩阵乘法等计算密集型操作;2) 利用WebAssembly的SIMD指令进行向量化计算;3) 通过MLC-LLM和Apache TVM进行图优化和代码生成,生成高效的WebGPU内核;4) 提供OpenAI风格的API,包括文本生成、对话等功能。
🖼️ 关键图片
📊 实验亮点
WebLLM的实验结果表明,在同一设备上,WebLLM的推理性能可以达到本地性能的80%。这表明WebLLM能够有效地利用消费级设备的计算资源,实现高性能的LLM推理。此外,WebLLM还提供了OpenAI风格的API,方便Web应用集成,降低了开发成本。这些优势使得WebLLM成为一个有竞争力的浏览器内LLM推理引擎。
🎯 应用场景
WebLLM的应用场景广泛,包括:1) 隐私保护的本地化AI助手;2) 个性化的教育应用,例如语言学习和写作辅助;3) 离线可用的AI应用,例如旅行助手和健康监测;4) 降低AI应用部署成本,无需依赖昂贵的服务器GPU资源。WebLLM有望推动AI技术在Web端的普及,并促进更多创新应用的出现。
📄 摘要(原文)
Advancements in large language models (LLMs) have unlocked remarkable capabilities. While deploying these models typically requires server-grade GPUs and cloud-based inference, the recent emergence of smaller open-source models and increasingly powerful consumer devices have made on-device deployment practical. The web browser as a platform for on-device deployment is universally accessible, provides a natural agentic environment, and conveniently abstracts out the different backends from diverse device vendors. To address this opportunity, we introduce WebLLM, an open-source JavaScript framework that enables high-performance LLM inference entirely within web browsers. WebLLM provides an OpenAI-style API for seamless integration into web applications, and leverages WebGPU for efficient local GPU acceleration and WebAssembly for performant CPU computation. With machine learning compilers MLC-LLM and Apache TVM, WebLLM leverages optimized WebGPU kernels, overcoming the absence of performant WebGPU kernel libraries. Evaluations show that WebLLM can retain up to 80% native performance on the same device, with room to further close the gap. WebLLM paves the way for universally accessible, privacy-preserving, personalized, and locally powered LLM applications in web browsers. The code is available at: https://github.com/mlc-ai/web-llm.