WebLLM是一个高性能的浏览器端大语言模型推理引擎,支持在浏览器中直接运行AI模型,无需服务器支持。该项目已发布NPM包,并提供在线聊天演示和社区支持。
正文
好的,这是根据您的要求,对原文进行中文重述和精简后的版本:
WebLLM:高性能浏览器端大语言模型推理引擎
WebLLM 是一个高性能的浏览器端大语言模型(LLM)推理引擎。它利用 WebGPU 技术实现硬件加速,让强大的 LLM 运算完全在浏览器内部进行,无需服务器支持。
核心特性
- 浏览器内推理:直接在浏览器中运行 LLM,利用 WebGPU 加速,无需服务器端处理。
- 完整 OpenAI API 兼容:可无缝集成 OpenAI API,支持流式输出、JSON 模式、种子控制等功能。
- 结构化 JSON 生成:支持先进的 JSON 模式生成,在模型库的 WebAssembly 部分实现,性能优异。
- 广泛模型支持:原生支持 Llama 3、Phi 3、Gemma、Mistral、Qwen(通义千问)等多种模型。
- 自定义模型集成:可轻松集成和部署 MLC 格式的自定义模型。
- 即插即用集成:支持通过 NPM、Yarn 或 CDN 快速集成到项目中。
- 流式与实时交互:支持流式聊天补全,实现实时输出,增强交互应用体验。
- Web Worker 与 Service Worker 支持:可将计算任务卸载到独立线程或 Service Worker,优化 UI 性能。
- Chrome 扩展支持:可使用 WebLLM 构建 Chrome 扩展。
快速开始
- 安装:通过
npm install @mlc-ai/web-llm或 CDN 导入。 - 创建引擎:使用
CreateMLCEngine()函数创建MLCEngine实例并加载模型。 - 聊天补全:通过
engine.chat.completions.create()接口,使用 OpenAI 风格的 API 进行聊天。 - 流式输出:在调用时设置
stream: true即可启用流式输出。
高级用法
- 使用 Worker:可将计算任务放入 Web Worker 或 Service Worker 中,避免阻塞 UI 或重复加载模型。
- Chrome 扩展:提供了构建 Chrome 扩展的示例。
自定义模型
WebLLM 支持 MLC 格式的自定义模型。您需要提供模型权重和元数据的 URL(model),以及包含计算可执行文件的 WebAssembly 库 URL(model_lib)。
完整性验证
WebLLM 支持使用 SRI 哈希对下载的模型文件进行可选的完整性验证,确保文件未被篡改。
从源码构建
如需修改 WebLLM 包本身,可克隆仓库后运行 npm install 和 npm run build 进行构建。
项目背景
该项目由 CMU Catalyst、UW SAMPL、SJTU、OctoML 及 MLC 社区的成员发起,并得到了 Apache TVM 社区、PyTorch、Hugging Face 等开源生态系统的支持。
评论
根据评论内容,用户对WebLLM项目的评价呈现两极分化,主要观点如下:
1. 项目活跃度存疑(认可度:负面) - 评论1指出项目“事实上已死亡”,建议用户不要浪费时间。 - 评论6提到项目“自Gemma 2后未更新”,建议改用Transformers.js。
2. 技术兼容性问题突出(认可度:负面) - 评论2在FireFox和Chromium上均遇到WebGPU不支持错误。 - 评论3因“maxStorageBuffersPerShaderStage”限制导致初始化失败。
3. 部分用户认可其价值(认可度:正面) - 评论4称赞其为“真正涉及浏览器的WebX技术”。 - 评论6表示“非常喜欢这个引擎”,用于个人项目。
4. 替代方案推荐(认可度:中性) - 评论5推荐webml-kit作为替代。 - 评论6建议使用Transformers.js。
5. 资源消耗需注意(认可度:中性) - 评论7提醒每次浏览器会话需下载500MB至1GB模型文件,建议面向客户时添加免责声明。