什么是 WebLLM?
WebLLM 是 MLC AI 开源的浏览器端语言模型推理引擎。它加载兼容的 MLC 模型制品,通过 WebGPU 执行模型 Kernel,并在 JavaScript 中提供 OpenAI 风格的 Chat API。推理可以不依赖远程推理服务器,但浏览器支持、模型兼容、下载体积、存储、内存、隐私、许可证和回退行为仍由应用负责。
快速了解
| 全称 | WebLLM 浏览器端大模型推理引擎 |
|---|---|
| 创建时间 | 随着 WebGPU 标准在主流浏览器中的落地而逐渐成熟 |
| 规范文档 | 官方规范 |
工作原理
WebLLM 把推理运行时移动到浏览器 Origin。应用加载 JavaScript 与 WebAssembly Runtime,从当前 AppConfig 支持列表选择模型,下载对应 Model Library 与 Weight Artifact,创建 WebGPU Device,再在本地生成 Token。项目支持 Streaming、Structured JSON Generation、部分 Tool Calling 行为、自定义 MLC 制品,以及 Dedicated Web Worker 或 Service Worker 集成;具体能力取决于版本和模型。
首次加载可能需要较大下载量,而且是异步过程。当前 WebLLM 通过 AppConfig.cacheBackend 提供 Cache API、IndexedDB、OPFS 与实验性 Cross-Origin 选项,它们的支持范围、删除方式、配额和生命周期不同。缓存仍可能被淘汰、损坏、撤销或因版本升级失效。应用因此需要加载进度、取消、完整性、版本迁移、显式删除和重新下载状态,不能承诺永久的一次性下载。
WebGPU 可用只是必要条件,不是充分条件。MDN 仍将 WebGPU 标为 Limited Availability;navigator.gpu 存在也不能证明 Adapter 可以创建所需 Device、目标制品能够装入内存,或延迟与温度表现满足工作负载。生产选型应在真实浏览器、操作系统、驱动、设备、模型、量化、上下文长度和并发矩阵上测试。Device Loss、OOM、Worker 终止、后台节流与存储淘汰都需要明确恢复或经用户同意的回退路径。
本地推理改变了数据流边界,但不能证明隐私或合规。页面脚本、浏览器扩展、Analytics、远程 Retrieval、Crash Reporting、模型下载、Prompt History 与 Cloud Fallback 仍可能传输或保留数据。WebLLM 应用应列出全部网络路径,使用 Content Security Policy 与依赖控制,在支持时固定并校验模型制品,最小化 Telemetry,保护本地对话,并对远程服务重新执行授权与留存策略。
WebLLM 提供的是 OpenAI 风格接口,不保证与所有托管 OpenAI Endpoint 完全相同。模型在创建或 Reload Engine 时选择,参数和能力由 Runtime 与 Artifact 决定。迁移时要针对 Streaming Chunk、JSON Schema、Cancellation、Usage Accounting、Tool Call、Error 和 Context Limit 做契约测试。只有实测质量、首次使用成本、设备覆盖、能耗、无障碍、支持和回退符合工作负载时,浏览器推理才适合上线。
主要特点
- WebGPU 执行:在 Secure Context 中通过浏览器 GPU 实现运行兼容的 MLC 语言模型制品
- 版本化模型契约:Model ID、Library、Weight、Tokenizer、Quantization、Context Limit 与 License 必须匹配已测试的 WebLLM 版本
- Worker 隔离:Dedicated Web Worker 与 Service Worker 可以把推理移出 UI 线程,但生命周期和恢复语义不同
- 多种缓存后端:Cache API、IndexedDB、OPFS 与实验性 Cross-Origin Storage 具有不同支持、配额、淘汰和删除行为
- OpenAI 风格接口:Chat Completion、Streaming、JSON Mode 等能力需要按模型和版本做契约测试
- Local-first 边界:可以不使用远程推理,但仍需审计 Telemetry、下载、Retrieval、Extension 与 Fallback
常见用途
- 已下载并校验模型制品后的离线可用草拟或摘要
- 本地模型在质量、启动、延迟、内存和能耗预算内的交互式浏览器功能
- 在代表性设备矩阵上比较本地、远程与混合推理的客户端原型
- 保持指定推理输入在本地,同时独立控制 Analytics、Storage、Retrieval 与 Fallback 流量的应用
- 明确浏览器、设备、模型与许可证要求的 WebGPU 推理教学演示
示例
Loading code...常见问题
WebLLM 能在所有现代浏览器中运行吗?
不能。部分常用浏览器、操作系统、驱动和硬件组合仍不提供或限制 WebGPU。应在真实支持矩阵中验证 `navigator.gpu`、Adapter 与 Device 创建、必要 Feature 与 Limit、模型加载、推理和 Device Loss 恢复。
WebLLM 能保证绝对隐私吗?
不能。本地推理可以避免把 Prompt 发送给远程推理 Provider,但页面脚本、扩展、Analytics、模型下载、Retrieval、Crash Report、同步存储或 Cloud Fallback 仍可能暴露数据。必须审计完整应用数据流。
WebLLM 模型是否只需下载一次?
不保证。兼容缓存可能复用制品,但浏览器配额、淘汰、隐私模式、Origin 变化、缓存后端支持、损坏和应用升级都可能触发重新下载。应用要提供进度、取消、版本、删除与恢复体验。
WebLLM 是否完全兼容 OpenAI API?
WebLLM 提供 OpenAI 风格 Chat 接口,但不保证覆盖每个 Endpoint、Parameter、Model 或 Error 行为。模型在 Engine 加载时选择,JSON Mode、Tool Calling 等能力应针对选定 Runtime 与 Artifact 做契约测试。
哪些场景不适合使用 WebLLM?
目标设备无法稳定支持 WebGPU、模型质量或许可证不满足要求、首次下载不可接受、内存与能耗超限、无障碍体验受损,或业务要求经审计的集中控制和服务保证时,应避免使用或提供明确回退。