如何通过 WebGPU 在浏览器中运行 Gemma 4
想象一下:不用安装任何软件,不用注册账号,不用花钱调 API,打开浏览器就能跟一个强大的 AI 模型对话——而且所有数据都不会离开你的电脑。
这就是 Gemma 4 + WebGPU 能做到的事情。本文将带你从零了解如何在浏览器中运行 Gemma 4,包括原理、操作步骤和实际性能表现。
WebGPU 是什么?
WebGPU 是新一代的 Web 图形与计算 API,可以理解为 WebGL 的继任者,但它从设计之初就考虑了现代 GPU 的通用计算能力——包括 AI 推理。
相比 WebGL,WebGPU 的核心优势在于:
- 直接访问 GPU 计算能力 —— 不仅能渲染画面,还能执行通用计算任务
- 更低的调用开销 —— 性能接近原生的 Vulkan/Metal/D3D12
- 支持 Shader Storage Buffer —— 这是加载和处理大规模 AI 模型权重的关键
简单来说,WebGPU 让你的浏览器变成了一台 AI 推理引擎。
浏览器要求
目前并非所有浏览器都完整支持 WebGPU:
| 浏览器 | WebGPU 支持状态 | 推荐? |
|---|---|---|
| Chrome 113+ | 完整支持 | 推荐(性能最佳) |
| Edge 113+ | 完整支持 | 推荐 |
| Firefox | 需手动开启 flag | 暂不稳定 |
| Safari 18+ | 部分支持 | 实验性 |
建议使用 Google Chrome(113 版本或更高)。Chrome 的 WebGPU 实现最成熟,与 transformers.js 的兼容性也最好。
检查你的浏览器是否支持 WebGPU
打开浏览器开发者工具(F12 或 Cmd+Shift+J),运行以下代码:
if (navigator.gpu) {
const adapter = await navigator.gpu.requestAdapter();
console.log("WebGPU 已支持!", adapter);
} else {
console.log("当前浏览器不支持 WebGPU");
}如果看到 adapter 对象输出,说明你的浏览器已经就绪。
立即体验:Hugging Face 在线 Demo
想最快体验浏览器里的 Gemma 4?直接打开这个链接:
点击链接,等待模型加载完成,就可以开始对话了。无需注册,无需 API 密钥,无需任何后端。
打开 Demo 后发生了什么?
- 浏览器开始下载模型权重(首次加载需要较长时间)
- 模型被缓存到浏览器的本地存储中
- 所有推理计算都在你的 GPU 上完成——数据不会离开你的设备
- 之后再次访问时,模型从缓存加载,速度快很多
技术原理:Transformers.js
这个 Demo 底层使用的是 transformers.js,这是 Hugging Face 推出的 JavaScript 版 Transformers 库,把整个 AI 推理流程搬到了浏览器里。
整体架构如下:
用户输入 → 分词器 (WASM) → 模型推理 (WebGPU) → 解码器 → 输出回复Transformers.js 负责的工作包括:
- 模型加载 —— 下载 ONNX 格式的优化模型并缓存到 IndexedDB
- 分词处理 —— 使用 WASM 编译的分词器将文本转换为 token
- GPU 推理 —— 通过 WebGPU 计算着色器在 GPU 上执行前向传播
- 流式输出 —— 逐 token 生成,实现实时对话效果
如果你想自己构建一个基于 WebGPU 的 Gemma 4 应用,下面是一个最简示例:
import { pipeline } from "@huggingface/transformers";
// 加载模型(首次运行会下载,之后从缓存读取)
const generator = await pipeline(
"text-generation",
"onnx-community/gemma-4-e2b-it-ONNX",
{ device: "webgpu" }
);
// 生成回复
const output = await generator("用简单的语言解释量子计算:", {
max_new_tokens: 256,
temperature: 0.7,
});
console.log(output[0].generated_text);实际性能表现
在浏览器里跑 AI 模型,性能到底怎么样?我们来看真实数据。
首次加载
首次使用时,需要下载模型权重,大小从 300 MB 到 2 GB 不等,取决于量化精度。这是一次性的开销——下载完成后会缓存到浏览器的 IndexedDB,再次访问时加载速度会快很多。
| 量化精度 | 下载大小 | 质量 |
|---|---|---|
| INT4 | ~300 MB | 适合日常对话 |
| INT8 | ~600 MB | 精度更好 |
| FP16 | ~2 GB | 最佳质量 |
推理速度
模型加载完成后,Gemma 4 通过 WebGPU 可以达到相当不错的推理速度:
- 提示词处理(prefill): 40–80 tokens/秒
- 文本生成(decode): 40–180 tokens/秒,取决于你的 GPU
作为参考,这大约相当于正常阅读速度,完全可以实现流畅的实时对话。独立显卡(如 NVIDIA RTX 3060 或 Apple M1 Pro)能达到较高水平,集成显卡则偏向下限。
提升性能的小技巧
- 关闭其他占用 GPU 的标签页 —— 视频流、3D 应用和其他 WebGPU 页面会争抢 GPU 显存
- 使用 Chrome —— WebGPU 后端优化最好
- 优先选择 INT4 量化 —— 速度和质量的最佳平衡点
- 保持 GPU 驱动更新 —— 新驱动往往带来 WebGPU 性能提升
你需要了解的限制
在浏览器里跑 AI 确实很酷,但也有一些现实的限制。
模型大小限制
目前 WebGPU 只能运行 E2B(Efficient 2 Billion,高效 20 亿参数) 版本的 Gemma 4。更大的 12B 和 27B 模型需要的显存超出了浏览器的能力范围。如果你需要更大的模型,建议使用 Ollama 等本地推理工具。
设备兼容性
- 桌面端浏览器: 90% 以上兼容(Windows、macOS、Linux 上的 Chrome)
- 移动端浏览器: 70–75% 兼容(Android Chrome 支持较好;iOS Safari 支持有限)
- 老旧硬件: 需要支持 WebGPU 的 GPU,一般 2018 年之后的显卡都可以
内存限制
浏览器的内存限制比原生应用更严格。如果你的设备内存小于 8 GB,可能会遇到:
- 模型加载速度变慢
- 较大量化精度下出现内存不足错误
- 可用的上下文窗口长度缩短
暂不支持多模态
目前 WebGPU 版本的 Demo 只支持纯文本对话。Gemma 4 的图像理解能力还无法在浏览器版本中使用,但随着 transformers.js 的持续发展,这一限制有望在未来解除。
什么场景适合用浏览器版 Gemma 4?
浏览器版 Gemma 4 非常适合以下场景:
- 快速实验 —— 不用任何配置就能测试 prompt
- 隐私敏感任务 —— 所有数据都留在本地设备
- 演示和展示 —— 分享一个 URL 就能展示 AI 能力
- 学习和教育 —— 学生无需任何基础设施就能探索 AI
- 离线使用 —— 模型缓存后无需联网即可使用
如果你需要处理生产级工作负载、大量文档或需要多模态功能,建议改用 Ollama 或 LM Studio 在本地运行完整版 Gemma 4。
总结
WebGPU 让我们在浏览器里运行一个实用的 AI 模型成为现实。Gemma 4 的 E2B 版本在大多数现代设备上都能提供流畅的实时对话体验,而且随着浏览器技术和硬件的持续进步,这种体验只会越来越好。
想试试看? 打开 Gemma 4 WebGPU 在线演示,开始对话吧——不用下载,不用注册,不用服务器。只有你和 Gemma 4,在你自己的设备上运行。



