WebLLM项目介绍
WebLLM 是一个高性能的浏览器内大型语言模型(LLM)推理引擎,能够利用硬件加速技术,将语言模型的推理功能直接带入到网页浏览器中。这项技术使得所有的运算都可以在浏览器内部完成,无需服务器支持,并利用 WebGPU 进行加速。
项目概览
WebLLM 是完全兼容 OpenAI API 的,这意味着用户可以在本地针对任何开源模型使用与 OpenAI API 相同的功能,包括流式传输、JSON 模式和函数调用等(进行中)。因此,该项目能够为打造 AI 助手提供大量有趣的可能性,确保隐私,并同时享有 GPU 加速的好处。
开发者可以利用 WebLLM 作为基础的 npm 包,根据项目提供的示例,构建自己的网络应用程序。WebLLM 项目作为 MLC LLM 的配套项目,使得 LLM 的跨硬件环境通用部署成为可能。
关键特性
-
浏览器内推理: WebLLM 是一个高性能的浏览器内语言模型推理引擎,利用 WebGPU 实现硬件加速,在没有服务器端处理的情况下,直接在浏览器内启用强大的 LLM 操作。
-
全面兼容 OpenAI API: 使用 OpenAI API 与 WebLLM 无缝集成,在应用中实现如流式、JSON 模式、logit 级别控制、随机种子等功能。
-
结构化 JSON 生成: WebLLM 支持最先进的 JSON 模式结构化生成,实现于模型库的 WebAssembly 部分以实现最佳性能。
-
多样的模型支持: WebLLM 原生支持包括 Llama 3、Phi 3、Gemma、Mistral、Qwen(通义千问)等在内的一系列模型,可以适应各种 AI 任务。
-
自定义模型集成: 轻松集成并部署 MLC 格式的自定义模型,使得 WebLLM 能够根据特定需求和场景进行调整,增强模型部署的灵活性。
-
即插即用集成: 通过 NPM、Yarn 等包管理器,或直接通过 CDN 轻松将 WebLLM 集成到项目中,配套完整的示例和模块设计便于与 UI 组件连接。
-
流式和实时互动: 支持流式聊天完成,允许实时输出生成,增强如聊天机器人和虚拟助手等交互应用的效果。
-
Web Worker 与 Service Worker 支持: 通过将计算任务分配到独立的工作线程或服务工作者中,优化 UI 性能并高效管理模型生命周期。
-
Chrome 扩展支持: 通过使用 WebLLM 创建自定义的 Chrome 扩展,扩展网页浏览器的功能,拥有创建基础和高级扩展的示例。
内置模型
WebLLM 支持诸如 Llama、Phi、Gemma、Mistral,以及 Qwen(通义千问)等多个模型家族。开发者如需更多模型,可以通过提出问题请求新模型,或参考关于如何编译和使用自定义模型的相关文档。
快速入门示例
用户可通过简单的聊天机器人示例了解到如何在应用中集成大型语言模型并生成聊天完成。此外,项目中还提供了更多用于不同用例的示例和实践。
自定义模型
WebLLM 作为 MLC LLM 的配套项目,支持 MLC 格式的自定义模型。用户可以参考 MLC LLM 文档编译并部署新的模型权重和库至 WebLLM。项目中的 WebLLM 包含模型和模型库的 URL,这些都是可自定义的。
从源码构建 WebLLM 包
用户并不一定需要从源码构建,除非需要修改 WebLLM 包。然而,如果有此需求,项目中提供了完整的构建步骤,包括 Node.js 包的安装及构建步骤。
通过 WebLLM,用户不但能享受到在浏览器内进行高效、高性能的大型语言模型推理的好处,还能利用其强大的特性和兼容性,开发出更具隐私性且功能强大的 AI 应用。这个项目由众多开源社区的开发者共同推进和支持,因此能够不断向前发展和提供支持。这一切都因 Apache TVM 社区和其他开源技术的协作而得以实现。