WebLLM: high-performance in-browser LLM inference engine(WebLLM:浏览器内高性能 LLM 推理引擎)
WebLLM: high-performance in-browser LLM inference engine(WebLLM:浏览器内高性能 LLM 推理引擎)
📅 2026-09-02 | 🏷️ 🏗️ 工程 & Agent | ⭐ HN 142分/24评论
🔗 原文:https://github.com/mlc-ai/web-llm
是什么
mlc-ai 维护的开源项目:一个直接在浏览器里运行 LLM 推理的高性能引擎。模型权重加载到用户设备、推理在浏览器内完成,不需要自建 GPU 推理服务,也没有网络往返。HN 142 分/24 评论。
🔍 小白解读
先说几个词
- 浏览器内推理:AI 不在云端机房算,而是直接在你打开的网页里算——模型下载到你电脑,用浏览器当运行器。
- WebGPU:浏览器自带的显卡加速能力,让网页程序也能调用显卡跑 AI,不用装任何软件。
- 模型权重:AI 模型的核心参数文件,几个 GB 起。这里指首次使用时下载一次、之后存在浏览器缓存里。
- 推理引擎:只负责「跑模型」的底层程序——输入文字、输出文字。它不会读文件、不会执行命令、不会自己规划任务。WebLLM 和 Ollama 都属于这一层。
- Agent(智能体):在推理引擎之上包了一层「任务循环」的产品——能调用工具、读写文件、多步执行,比如 Claude Code、Pi。引擎和 Agent 是「大脑」和「会干活的员工」的关系。
- 量化(如 q4f16_1):把模型参数压缩成更低精度来省显存。q4f16_1 = 4-bit 权重 + 16-bit 计算,是主流选择;同样是 8B 模型,量化后从 16 GB 缩到约 5 GB。
- KV Cache:模型对话时的「短期记忆」,随上下文变长而增大,是权重之外的另一显存大户。
- 隐私/成本/延迟三角:AI 方案的三个考量——数据出不出门、烧不烧钱、反应快不快。本地化方案通常赢前两项。
这篇到底在说什么
一般用 AI 是这样:你的问题发到云端机房,GPU 算完再把答案传回来。这个开源项目把流程整个搬进了浏览器:模型文件下载到用户电脑,推理就在网页里完成——不用架设服务器、没有网络往返、输入的数据根本不离开设备。它已经存在一段时间,最近重新火起来(HN 142 分),因为「在用户设备上算」恰好同时解决了隐私、成本和延迟三个痛点。
一张图分清:WebLLM、Ollama、Claude Code 到底什么关系
很多人第一反应是「WebLLM 是不是网页版的 Claude Code / Pi」——不是,它们不在同一层:
┌─────────────────────────────────────────┐
│ Agent 层(智能体循环) │ ← Claude Code / Pi / Cursor
│ 读文件、改代码、执行命令、工具调用、多步规划 │
├─────────────────────────────────────────┤
│ 推理引擎层(跑模型) │ ← WebLLM / Ollama / llama.cpp
│ 加载模型权重、KV Cache、GPU 加速推理 │
├─────────────────────────────────────────┤
│ 硬件层 │ ← GPU / WebGPU / Metal / CUDA
└─────────────────────────────────────────┘WebLLM 和 Ollama 是同一层的直接竞品(都是本地推理引擎),核心区别只有一个——跑在哪:
| Ollama | WebLLM | |
|---|---|---|
| 运行位置 | 操作系统里的原生程序 | 浏览器标签页内 |
| 技术栈 | Go + llama.cpp (C/C++) | TypeScript + WebAssembly/WebGPU |
| 安装方式 | 装软件 + 命令行拉模型 | 零安装,打开网页自动下载 |
| 模型格式 | GGUF(生态巨大,几乎啥都有) | MLC 编译格式(仅限预编译清单) |
| 性能上限 | 原生最快,70B 也能跑 | 受浏览器内存墙限制,30B+ 基本告别 |
| 调用方式 | HTTP API(localhost:11434) | JavaScript 进程内直接调用 |
能「装」什么模型
WebLLM 没有「安装」环节——选中模型,权重就下载到浏览器缓存(首次之后刷新页面、断网都能用)。内置 70+ 个预编译模型,按家族看:
| 家族 | 代表 | 亮点 |
|---|---|---|
| Llama | 3.2-1B/3B、3.1-8B、3.1-70B | Meta 官方系列 |
| Qwen 通义千问 | Qwen3-0.6B8B、Qwen3.5-0.8B9B、Qwen2.5-Coder/Math | 中文最好,代码/数学专精版 |
| DeepSeek | R1-Distill-Qwen-1.5B/7B | 带思维链的推理模型 |
| Phi(微软) | Phi-4-mini、Phi-3.5-mini | 小而精,低配机友好 |
| Gemma(谷歌) | gemma3-1b、gemma-2-2b/9b | 小尺寸质量高 |
| Hermes | Hermes-3 系列 | 唯一较好支持 function calling 的本地工具流 |
| Embedding | snowflake-arctic-embed(约 130 MB) | 本地向量化,RAG 检索用 |
硬性限制要知道:不兼容 GGUF(不能像 Ollama 随手拉个 HuggingFace 模型就跑,必须 MLC 编译格式)、浏览器单页内存墙(30B+ 基本告别)、换模型要重新下载(缓存跟域名绑定)。
⚙️ 资源消耗的真相:吃资源,但吃的方式和直觉不同
- 下载阶段(一次性):8B 模型 ≈ 4~5 GB 缓存文件,走用户带宽,这是最劝退用户的环节。
- 运行阶段(持续):大头是 GPU 显存——8B q4f16 权重 ≈ 5 GB,外加随对话变长的 KV Cache。
- 反直觉的一点:推理时页面并不卡。WebLLM 默认把计算丢进 Web Worker,权重和计算都在 GPU 上,主线程只收发 token,CPU 占用极低,旁边标签页照常刷。
- 公平对比:Ollama 跑 8B q4 同样吃 ~5 GB 内存/显存。总量几乎一样,只是 WebLLM 的账单记在「Chrome」名下,容易被误以为浏览器臃肿。
真实痛点:刷新页面 = 重新把权重灌进显存(几秒到几十秒);后台标签页可能被浏览器冻结;用户同时玩游戏/剪视频会爆显存;手机浏览器限制更严,一般只能跑 1~2B。好在它提供了 engine.unload() 主动释放、限制 context_window_size 压缩 KV Cache 等调节旋钮。
💡 真正的价值:把算力供应链反转
先说诚实的结论:如果只是自己一个人用,WebLLM 毫无优势——模型更少、限制更多,Ollama 完胜。它的价值只在「做产品给别人用」时才显现:
Ollama 做产品: 你的 GPU 服务器 ──> 用户1 / 用户2 / … / 用户10000
每加一个用户,你多一分成本,线性爆炸
WebLLM 做产品: 静态网页(GitHub Pages 免费)──> 用户的 GPU 各自跑各自的
加一万个用户,成本 +0 元算一笔账:做一个给 1 万人用的 AI 功能——Ollama 路线需要 GPU 服务器集群,月成本几千到几万;WebLLM 路线就是一个静态网页托管,约等于 0 元。除此之外还有两个硬价值:
- 隐私是架构保证的,不是承诺保证的。自建服务器时用户数据仍然离开了他的设备、进了你的服务器,你是法律意义上的「数据处理者」;WebLLM 方案里数据物理上从未离开用户设备,打开 F12 都看不到请求——医疗、法律、企业内网场景唯一可行的架构。
- 分发零摩擦。Ollama 路线要求用户装软件、敲命令、保持进程活着;WebLLM 只需要发一个链接。
一个类比:Ollama = 你给用户建发电厂;WebLLM = 每个用户自带电池。 AI 推理的特殊性在于用户的 GPU 本来就能算,WebLLM 只是第一个把它工程化得足够好用的引擎。
📄 一个只有 WebLLM 才做得成的产品:「合同阅审助手」
律所、公司法务每天审几十份合同,市面上的云端 AI 审合同工具都要求把合同上传——而合同里有报价、违约金、股权条款,法务部第一句话就是「我们的合同能不能不上传?」。这个产品就是:一个 Chrome 插件,在任何网页/邮件里选中合同文本,AI 就地审阅,数据不出电脑。
- 为什么只有 WebLLM 能做:调 GPT/Claude API,合同出网到境外服务器,合规直接毙掉;自建 Ollama 服务器,合同仍然出了用户电脑进你的服务器,律所还得跟你签数据处理协议;WebLLM 插件,数据哪都不去——「数据不出设备」可以直接写进销售 PPT,也是唯一壁垒。
- 技术形态:Manifest V3 扩展,content script 抓取选中文本 → offscreen/worker 里跑
CreateMLCEngine("Qwen2.5-7B-Instruct-q4f16_1-MLC")→ JSON mode 输出结构化审查结果{风险等级, 问题, 修改建议}。官方仓库examples/里有 chrome-extension、function-calling、json-mode、embeddings 等现成模板。 - 商业账:1000 家律所客户 × 每天 100 次审查,云端 API 版每月账单数万元,WebLLM 版静态托管 0 元,且不需要逐家签合规协议。
同一思路还能做:病历辅助书写(病历出医院 = 违法)、企业内网知识库问答(隔离环境无外网 API 可调)、儿童作文批改(儿童数据不能收集)、离线旅行翻译 PWA、HR 本地简历初筛(简历含身份证号)。共同画像:数据敏感到不能上云、但又想要 AI——这个交集地带就是 WebLLM 的整个市场。
🗺️ 三条路线怎么选
走「Ollama 这条路」其实分岔成两种部署方式,加上 WebLLM 一共三条路线:
| A:用户装 Ollama | B:你的服务器跑 Ollama | C:WebLLM | |
|---|---|---|---|
| 用户操作 | 装软件 + 敲命令拉模型 | 打开网页 | 打开网页(首次下模型) |
| 用户门槛 | 🔴 高(得会命令行) | 🟢 零 | 🟡 零,但首次等下载 |
| 算力成本 | 用户出 | 你出(GPU 服务器) | 用户出 |
| 数据流向 | 不出用户电脑 | 进你的服务器 | 不出用户设备 |
| 适合人群 | 开发者、Geek | 大众用户 | 大众 + 隐私敏感行业 |
路线 A 对普通用户几乎走不通(让律师敲 ollama pull?产品死在安装环节),业界都把它包装成双击安装的桌面软件——LM Studio、Jan、GPT4All 本质就是「打包好的 Ollama + 图形界面」。决策树一句话版:
你的用户是谁?
├── 开发者/技术用户 → 路线 A(连 localhost:11434,最省事)
├── 大众 + 数据不在乎 + 没GPU → 直接调云端 API
├── 大众 + 愿意承担 GPU 成本 → 路线 B(自建,数据在自己服务器)
└── 大众 + 数据不能出设备 + 没GPU → 路线 C(WebLLM,唯一解)注意:不管哪条路线,产品价值层是一样的——特定需求的封装(Prompt + 工作流 + UI + 领域知识)。正确姿势是把业务逻辑写成独立一层,底座可切换:开发期用 Ollama(本地快、免费),上线按客户类型切 WebLLM 或云端 API,同一个产品三种交付形态。
⚖️ 绕不开的硬约束:用户只有 2G 显存怎么办
这是评估 WebLLM 最该算的一笔账。诚实地说:2GB 显存跑 7B+(显存需求 5~6 GB)想都别想,3B 也勉强不到;能跑的是 0.5B~2B 量化模型(0.3~1.8 GB)。而 7B 上下的小模型和 7B+ 的能力差距是断崖式的——复杂推理、写代码、长合同审查,小模型确实不行。
但关键问题是:你的产品功能,真的都需要 7B 吗? 大量真实功能本来就是给小模型设计的:
| 产品功能 | 需要的模型 | 2GB 机器 |
|---|---|---|
| 意图识别 / 路由 | 0.5B 足够 | ✅ |
| 表单自动填写、文档分类 | 0.5~1B | ✅ |
| 合同/简历关键信息抽取(JSON mode) | 1~1.5B | ✅ |
| 邮件语气润色、段落改写 | 1.5~2B | ✅ |
| PII 检测(找身份证号/手机号) | 0.5B | ✅ |
| RAG 检索(embedding 模型仅 ~130MB) | snowflake-arctic-embed | ✅ |
| 复杂推理、代码生成、长文审阅 | 7B+ | ❌ 别硬来 |
2GB 机器跑不动的是「聪明」,不是「有用」——Chrome 自己内置的 Gemini Nano(约 2GB)就是这个思路,只干总结、改写、分类。
工程正解是分级降级架构,WebLLM 从来不是孤注一掷,而是阶梯的一环:
探测用户硬件(显存 ≥6GB?)
├─ 强机器 → WebLLM 跑 7B:全功能离线可用 ⭐
├─ 2~4GB → WebLLM 跑 1~2B:轻功能离线可用
└─ 跑不动 → 无感降级到云端 API(弹窗征得用户同意)
所有级别 → 遇到重任务按需提示走云端WebLLM 的角色是「免费的底座」:80% 的轻请求(分类、抽取、改写)本地 0 成本消化掉,20% 的重请求才走云端——对比纯云端方案 100% 请求都烧 API 钱,省掉的是那 80%。
最后是适用边界,满足以下全部条件时别用 WebLLM:产品核心价值 = 强推理;目标用户硬件普遍很差;用户不能接受「轻功能本地 + 重功能上云」的混合体验。硬上就是拿 0.5B 干 70B 的活,产品口碑直接崩。
为什么值得架构师关注
推理架构选型里最容易被忽略的选项是「不部署推理服务」。对企业内部工具、客服组件、隐私敏感场景,浏览器端推理意味着:数据不出域(合规优势)、零推理服务器成本、无网络延迟。更重要的是它改变了算力的供应链结构——从「中心化采购 GPU」变成「用户 BYO(自带)算力」,边际成本曲线被拉平。当然它有硬边界:受用户硬件和浏览器内存墙限制、不兼容 GGUF 生态、首次下载几 GB——但在「短上下文 + 小模型 + 高频交互」的象限里,它是成本结构的根本性改变。
核心内容
- 定位:high-performance in-browser LLM inference engine,基于 WebGPU 执行推理;层次上与 Ollama 同级(推理引擎),Claude Code/Pi 这类 Agent 建立在它这类引擎之上
- 内置 70+ 预编译模型(Llama/Qwen/Phi/DeepSeek/Gemma/Embedding,0.1B~70B),MLC 格式,量化版本可选;不兼容 GGUF,30B+ 受浏览器内存墙限制
- 资源真相:显存大头是权重 + KV Cache,但 Web Worker 保证 UI 不卡、CPU 占用低;痛点是首次下载、刷新重载、后台冻结
- 核心价值在 to B / to C 产品侧:零边际成本扩容(用户自带算力)+ 数据物理不出设备(架构级隐私),典型案例是「合同阅审」类隐私敏感浏览器插件
- 选型决策:自己用选 Ollama;做产品按「用户技术水平 × 数据敏感度 × GPU 预算」在用户装 Ollama / 自建服务器 / WebLLM 三条路线里选
- 硬件约束应对:分级降级架构(7B / 1~2B / 云端 API 三档自动适配),WebLLM 是免费底座而非全部
行动建议
- 把手头产品的功能清单按「0.5B 能干 / 1~2B 能干 / 必须 7B+」分三类——小模型可干功能的比例,就是 WebLLM 在你产品里的价值上限。
- 对「上下文短、模型小、隐私敏感」的场景做一次浏览器端 PoC(官方 examples/ 有 Chrome 扩展、function-calling、JSON mode 现成模板),与服务端推理做成本和体验对照。
- 采用分级降级架构设计:硬件探测 → 大模型全功能 / 小模型轻功能 / 云端兜底,把 WebLLM 当作免费的本地底座而不是全部。
- 数据敏感到不能出用户设备的行业(法律、医疗、内网、儿童应用),WebLLM 往往是唯一解,优先评估。