WebLLM: 高性能的浏览器内LLM推理引擎
WebLLM 高性能浏览器内LLM推理引擎。文档 | 博客 | 论文 | 示例 概述 WebLLM 是一款高性能的浏览器内LLM推理引擎,直接在网页浏览器中进行语言模型推理,并支持硬件加速。所有操作均在浏览器内部进行,无需服务器支持,并使用 WebGPU 加速。WebLLM 完全兼容 OpenAI API。换句话说,您可以在本地的任何开源模型上使用相同的 OpenAI API,功能包括流式传输、JSON 模式、函数调用(进行中)等。我们能够为每个人构建 AI 助手带来许多有趣的机会,同时在享受 GPU 加速的同时保护隐私。您可以将 WebLLM 作为基础 npm 包,并按照下面的示例构建自己的网络应用程序。该项目是 MLC LLM 的配套项目,能够在各种硬件环境中通用部署 LLM。 主要功能 浏览器内推理:WebLLM 是一款高性能的浏览器内语言模型推理引擎,利用 WebGPU 进行硬件加速,使得强大的 LLM 操作可以在网页浏览器内直接运行,无需服务器端处理。 完全兼容 OpenAI API:通过使用 OpenAI API,轻松将应用与 WebLLM 进行无缝集成,功能包括流式传输、JSON 模式、logit 级控制、种子设置等。 结构化 JSON 生成:WebLLM 支持最先进的 JSON 模式结构生成,已在模型库的 WebAssembly 部分实现,以获得最佳性能。请在 HuggingFace 上查看 WebLLM JSON Playground,尝试使用自定义 JSON 模式生成 JSON 输出。 广泛的模型支持:WebLLM 天然支持多个模型,包括 Llama 3、Phi 3、Gemma、Mistral、Qwen(通义千问)等,使其在各种 AI 任务中具有多功能性。有关完整支持模型列表,请查看 MLC 模型。 自定义模型集成:轻松集成和部署 MLC 格式的自定义模型,使您能够根据特定需求和场景调整 WebLLM,增强模型部署的灵活性。 插拔式集成:通过类似 NPM 和 Yarn 的包管理器,或直接通过 CDN,轻松将 WebLLM 集成到您的项目中,附带全面的示例和模块化设计,便于与 UI 组件连接。 流式传输和实时交互:支持流式聊天完成,允许实时输出生成,从而增强聊天机器人和虚拟助手等交互式应用程序的体验。 Web Worker 和 Service Worker 支持:通过将计算卸载到单独的 worker 线程或服务工作线程,优化 UI 性能并有效管理模型生命周期。 Chrome 扩展支持:通过使用 WebLLM 的自定义 Chrome 扩展来扩展网页浏览器的功能,提供构建基本和高级扩展的示例。 内置模型 请查看 MLC 模型上的可用模型完整列表。WebLLM 支持这些可用模型的子集,列表可以通过 prebuiltAppConfig.model_list 访问。以下是当前支持的主要模型类别: Llama:Llama 3,Llama 2,Hermes-2-Pro-Llama-3 Phi:Phi 3,Phi 2,Phi 1.5 Gemma:Gemma-2B Mistral:Mistral-7B-v0.3,Hermes-2-Pro-Mistral-7B,NeuralHermes-2.5-Mistral-7B,OpenHermes-2.5-Mistral-7B Qwen(通义千问):Qwen2 0.5B,1.5B,7B 如果您需要更多模型,请通过开一个问题请求新的模型,或者查看自定义模型,了解如何编译和使用您自己的模型与 WebLLM。 示例入门 了解如何使用 WebLLM 将大型语言模型集成到您的应用程序中,并通过这个简单的聊天机器人示例生成聊天完成:有关更大、更复杂项目的高级示例,请查看 WebLLM Chat。不同用例的更多示例可在示例文件夹中找到。 开始使用 WebLLM 提供一个极简和模块化的接口以在浏览器中访问聊天机器人。该包以模块化方式设计,可以连接到任何 UI 组件。 安装 包管理器 # npm npm install @mlc-ai/web-llm # yarn yarn add @mlc-ai/web-llm # 或者 pnpm pnpm install @mlc-ai/web-llm 然后在您的代码中导入模块。 // 导入所有内容 import * as webllm from "@mlc-ai/web-llm" ; // 或仅导入所需内容 import { CreateMLCEngine } from "@mlc-ai/web-llm" ; CDN 提供 由于 jsdelivr.com,WebLLM 可以直接通过 URL 导入,并在 cloud 开发平台(如 jsfiddle.net、Codepen.io 和 Scribbler)上即刻使用: import * as webllm from "https://esm.run/@mlc-ai/web-llm" ; 它也可以动态导入: const webllm = await import ( "https://esm.run/@mlc-ai/web-llm" ) ; 创建 MLCEngine WebLLM 中的大多数操作都是通过 MLCEngine 接口调用的。您可以通过调用 CreateMLCEngine() 工厂函数创建 MLCEngine 实例并加载模型。(请注意,加载模型需要下载,并且首次运行时可能需要 significant 时间而无缓存预先存储)
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡