首页 › use-cases › 别租GPU了:把开源模型塞进浏览器实战

9月2日的 Hacker News 首页上,有两个帖子值得国内技术人停下来看一眼:一个是 mlc-ai/web-llm(106 points),一个是 Baseten 的《The efficient frontier of LLM inference》(149 points)。这两个帖子表面不相关,其实回答了同一个问题——2026年,你到底还要不要为 AI 推理付 GPU 账单?

第一个项目直接把答案写在了脸上:把整个大模型塞进用户的浏览器里跑,服务端零 GPU、零推理账单。第二个是海外推理基础设施公司 Baseten 的方法论长文,教你当你确实要自建推理服务时,怎么把账单砍下来。这篇文章把两条路都拆开,给你可以直接抄的步骤和成本账。

案例一:WebLLM——把 Qwen 塞进浏览器,服务器成本归零

这是个什么东西

WebLLM 是一个纯浏览器端的大模型推理引擎,底层靠 WebGPU 调用用户显卡做硬件加速。它出自陈天奇团队(CMU Catalyst),上海交大(SJTU)是发起单位之一,论文编号 arXiv:2412.15803。项目在 GitHub 上开源,npm 包名 @mlc-ai/web-llm。

三个关键特性,每一个都是信息差:

  1. 完全兼容 OpenAI API。你现有代码里如果用的是 chat.completions.create,改成 WebLLM 几乎只换引擎初始化那几行,streaming、JSON mode、seed 复现全都支持。
  2. 原生支持通义千问 Qwen2 系列(0.5B/1.5B/7B),还有 Llama 3、Phi 3、Gemma、Mistral。国内开发者可以把 Qwen 直接跑起来,也能通过 MLC LLM 编译自己的模型格式塞进去。
  3. 模型权重缓存在浏览器本地,支持 Cache API、IndexedDB、OPFS 甚至跨域共享缓存四种后端。用户第二次打开页面,模型不用重新下载。

实战步骤:15分钟上线一个“零后端”AI 应用

npm install @mlc-ai/web-llm

第1步,初始化引擎(带下载进度回调,首次要下载权重,q4f32 量化的 8B 模型约几个 GB):

import { CreateMLCEngine } from "@mlc-ai/web-llm";

const engine = await CreateMLCEngine(
  "Llama-3.1-8B-Instruct-q4f32_1-MLC",
  { initProgressCallback: (p) => console.log(p.progress) }
);

第2步,直接用 OpenAI 风格的调用:

const chunks = await engine.chat.completions.create({
  messages: [{ role: "user", content: "你好" }],
  stream: true,
});
for await (const chunk of chunks) {
  console.log(chunk.choices[0]?.delta.content);
}

第3步(生产环境必做),把推理丢进 Web Worker。官方提供了 WebWorkerMLCEngineHandler,把计算挪出主线程,UI 不会卡死。如果你想做 PWA 离线应用,还可以用 Service Worker 模式(ServiceWorkerMLCEngineHandler),模型常驻后台,用户每次打开页面不用重新加载模型——这是很多人不知道的杀手级特性。

第4步(可选但推荐),加完整性校验。ModelRecord 里可以配 SRI 哈希(sha256),对下载的 config、WASM、tokenizer 逐个验签,防止供应链投毒。用 openssl dgst -sha256 -binary <file> | openssl base64 -A 一行命令生成哈希。

这条路的成本账

项目 传统方案(云端API/自建GPU) WebLLM 方案
服务器推理成本 按token计费或GPU月租 0元(用用户自己的显卡)
隐私合规 数据出域,需协议 数据不出浏览器,天然合规
离线可用 不行 可以(PWA + Service Worker)
首次加载 快 慢(要下权重,需做缓存)
模型上限 无限制 受用户设备显存限制

明显适合的场景:企业内网工具(数据不能出网)、面向海外用户的浏览器插件(WebLLM 官方就有 Chrome Extension 示例)、教育演示、离线客服机器人。不适合的场景:重推理任务(长上下文、大参数模型)和低端移动端用户。

国内对比视角:国内 AI 应用的主流形态仍然是“云端 API + 前端壳”,浏览器端推理的实践非常少。而 WebLLM 恰好原生支持 Qwen——你等于可以直接拿国产开源模型做端侧方案,这在出海产品里尤其值钱:海外用户对“数据不离开设备”的敏感度远高于国内,把这句话写进产品文案就是卖点。

案例二:Baseten 的“推理效率前沿”——自建服务省钱四招

如果你绕不开自建推理(模型太大、延迟要求高),9月1日 Baseten 工程师 Philip Kiely 发的这篇长文值得精读,文末还挂了作者免费开放的书《Inference Engineering》。核心框架只有一句话:推理优化分两类——沿“延迟-吞吐前沿”做取舍的技术,和把整条前沿往外推的技术。 你先想清楚业务要哪头,再选招。

可以直接抄的四招:

第一招,Batch Size 定生死。 batch 小→单用户延迟好但每 token 成本高;batch 大→吞吐高成本低但用户等得久。作者特别提醒:真实的前沿是“锯齿状”的,最优配置不直观,必须用自己的流量实测扫描(sweep),别照抄别人的参数。

第二招,量化换免费午餐。 用 MXFP4、NVFP4 这类微缩浮点格式做量化,原文的原话是“服务质量几乎无损的情况下,推理效率可以有大幅提升”——这是少有的能把整条前沿往外推的技术。KV cache 也可以量化。

第三招,投机解码(Speculative Decoding)。 用小模型先猜、大模型验。现在的 EAGLE-3、DSpark、DFlash 技术在代码生成场景特别好使——因为代码 token 序列可预测,接受率高。做 AI 编程类产品的国内团队,这是最该优先试的一招。

第四招,Prefill/Decode 分离(P/D Disaggregation)。 把“读输入”和“生成输出”拆到不同的 worker 池,两边的机器各自调优,worker 比例还能按流量动态配。原文明确说:它最大的价值是吞吐提升明显而延迟不升甚至略降,适合高并发部署。

flowchart TD
    A[自建推理成本过高] --> B{数据能否留在用户设备?}
    B -- 能 --> C[方案A: WebLLM 浏览器推理<br/>服务器成本归零]
    B -- 不能 --> D[方案B: 服务端调优]
    D --> E{瓶颈在哪?}
    E -- 单用户太慢 --> F[加 Tensor Parallelism<br/>+ 投机解码 EAGLE-3]
    E -- 账单太高 --> G[加大 batch<br/>+ MXFP4/NVFP4 量化]
    E -- 高并发扛不住 --> H[P/D 分离<br/>+ KV cache 复用]
    C --> I[Worker/Service Worker<br/>+ SRI 校验上线]
    F --> J[用自己流量做 sweep 实测]
    G --> J
    H --> J
    J --> K{达标?}
    K -- 否 --> E
    K -- 是 --> L[上线,持续监控前沿位置]

信息差总结

你以为的 实际情况
跑 AI 必须有 GPU 服务器或 API 账单 7B 级模型可在浏览器里跑,WebGPU 加速,服务端成本为 0
浏览器跑模型 = 每次打开重新下载 Cache/IndexedDB/OPFS/跨域四种缓存后端,Service Worker 可让模型常驻
端侧方案只能用国外模型 WebLLM 原生支持 Qwen2,也可用 MLC LLM 编译任意自有模型
推理省钱靠换更便宜的供应商 batch/量化/投机解码/PD分离四招组合,量化是唯一“白拿”的前往外推技术
优化参数抄大厂博客就行 前沿是锯齿状的,必须用自己的真实流量 sweep 出最优配置

行动指南

  1. 今天:打开 WebLLM 官方 Chat demo 体验,确认你的浏览器支持 WebGPU(Chrome/Edge 近一年的版本基本都支持)。
  2. 本周:用 npm install @mlc-ai/web-llm 跑通 Qwen2-7B 的 hello world,把现有 OpenAI SDK 代码里的 client 换成 MLCEngine,感受兼容度。
  3. 下周:选一个“数据不能出内网”或“出海隐私敏感”的真实项目落地,记得加 Web Worker + SRI 校验。
  4. 自建推理的团队:对照 Baseten 文章做一次自查——你的 KV cache 复用开了吗?量化格式上了吗?按“先量化、再投机解码、后 PD 分离”的顺序逐项 sweep。

参考来源

  1. WebLLM GitHub 仓库(npm 包、Service Worker、SRI 等细节均出自官方 README):https://github.com/mlc-ai/web-llm
  2. HN 2026-09-02 首页(WebLLM 106 points / Baseten 149 points 热度数据):https://news.ycombinator.com/front?day=2026-09-02
  3. Baseten《The efficient frontier of LLM inference》(2026-09-01 发布,作者 Philip Kiely):https://www.baseten.co/blog/the-efficient-frontier-of-llm-inference/
  4. WebLLM 论文(WebLLM: A High-Performance In-Browser LLM Inference Engine):https://arxiv.org/abs/2412.15803

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入