本文详细介绍了如何在浏览器中本地运行AI模型,包括WebGPU的技术优势、Transformers.js和WebLLM等工具链的使用方法,以及Chrome内置AI API的进展。文章还探讨了本地运行AI的适用场景、性能测试结果和未来发展趋势,旨在帮助前端开发者掌握端侧AI技术,提升开发效率和用户体验。
这是「前端 + AI 从进阶到精通」系列的第 23 篇,也是最后一篇。前 22 篇我们从 Skills、MCP、Agent、RAG 一路聊到 Cursor 底层架构,都离不开一个前提——调云端 API。今天我们换个方向:把模型搬到浏览器里跑。
你可能会问:浏览器能跑 LLM?不是在开玩笑吧?
还真不是。WebGPU + WebAssembly 的成熟、Transformers.js / WebLLM 等工具链的完善,加上 Chrome 内置 AI API 的推进,让"前端本地跑模型"从概念验证变成了可落地的工程方案。
这篇我们就来聊聊:为什么要在端侧跑 AI、怎么跑、跑得多快、什么场景适合,以及作为系列的收尾,回顾整条学习路线并展望 AI × 前端的未来方向。
一、为什么要在前端 / 边缘跑 AI?
过去一年多,前端接入 AI 的主流姿势是"调 API"——把用户输入发到 OpenAI / Claude,拿到流式响应再渲染。这套路能跑通大部分场景,但有几个痛点越来越明显:
▎1.1 隐私:数据出不了端
医疗、金融、政务、企业内网场景,用户数据不允许发到第三方服务器。哪怕 OpenAI 承诺不拿数据训练,合规审计那关也过不了。
本地推理 = 数据零出端,这是最硬的需求。
▎1.2 延迟:省掉网络往返
调云端 API,首 Token 延迟通常在 500ms-2s(取决于模型和并发)。对于实时性要求高的交互——比如输入时的智能补全、拍照即翻译、语音实时转写——这个延迟是不可接受的。
本地推理没有网络往返,首 Token 可以做到 50-200ms。
▎1.3 成本:告别按 Token 计费
GPT-4o 的价格是 $2.5/1M input tokens,日活 10w 的应用每月 API 费用轻松破万美元。
本地跑模型,成本就是用户设备的算力——对开发者来说是零 API 成本。
▎1.4 离线:断网也能用
飞机上、地铁里、弱网环境,云端 API 直接挂掉。本地模型只要首次下载完成,后续完全离线可用。
一句话总结:隐私、延迟、成本、离线——这四个需求共同指向一个方向:把 AI 推向端侧(Edge)。
二、WebGPU:浏览器的 GPU 加速能力
要在浏览器里高效跑模型,核心依赖是 WebGPU——浏览器直接访问 GPU 的新一代 API。
▎2.1 WebGPU 是什么?
WebGPU 是 W3C 正在标准化的下一代图形和计算 API,用来替代 WebGL。和 WebGL 的核心区别:
| 对比项 | WebGL | WebGPU |
|---|---|---|
| 设计目标 | 3D 渲染 | 渲染 + 通用计算 |
| 计算着色器 | 不支持 | 原生支持 |
| API 风格 | 状态机(OpenGL 风格) | 现代(类 Vulkan/Metal/DX12) |
| 多线程 | 受限 | 完善 |
| 性能 | 较低 | 接近原生 GPU |
关键点:WebGPU 的 Compute Shader(计算着色器)让浏览器可以直接在 GPU 上跑矩阵运算——这正是模型推理的核心。
▎2.2 浏览器支持情况(2026 年)
Chrome113+ ✅ 默认启用 Edge113+ ✅ 默认启用 Firefox 🔧 Nightly 可用(标准进行中) Safari 🔧 Technology Preview 支持Chrome + Edge 已经覆盖了 80%+ 的桌面用户,所以 WebGPU 在生产环境已经可用。
▎2.3 检测 WebGPU 是否可用
asyncfunctioncheckWebGPU(): Promise<boolean>{if(!navigator.gpu){console.log('WebGPU not supported');returnfalse;}const adapter=await navigator.gpu.requestAdapter();if(!adapter){console.log('No GPU adapter found');returnfalse;}const device=await adapter.requestDevice();console.log('WebGPU ready!',{vendor: adapter.info?.vendor, architecture: adapter.info?.architecture,});returntrue;}三、Transformers.js:在浏览器里跑 Hugging Face 模型
Transformers.js 是 Hugging Face 官方出品的 JavaScript 库,目标是把 Python 生态的 Transformers 模型直接搬到浏览器里跑。
▎3.1 核心架构
Hugging Face Hub(模型仓库)
↓ 下载 ONNX 格式模型
ONNX Runtime
├── WebAssembly 后端(CPU,兜底)
└── WebGPU 后端(GPU,高性能)
↓
浏览器内推理
它的原理是:
把 PyTorch 模型转换为 ONNX 格式
用 ONNX Runtime Web 在浏览器里加载和执行
底层可以走 WebAssembly(CPU)或 WebGPU(GPU)
▎3.2 实战:浏览器内情感分析
先装依赖:
npminstall@huggingface/transformers 然后写代码: typescriptimport{pipeline}from'@huggingface/transformers';// 首次调用会自动从 Hugging Face Hub 下载模型(~30MB) // 后续调用走浏览器缓存 const classifier=await pipeline('sentiment-analysis','Xenova/distilbert-base-uncased-finetuned-sst-2-english',{device:'webgpu'}// 优先用 WebGPU,不支持自动降级到 WASM);const result=await classifier('I love building AI-powered web apps!');console.log(result);//[{label:'POSITIVE', score:0.9998}]就这么简单——三行核心代码,模型下载、加载、推理全自动。
▎3.3 实战:浏览器内文本向量化(Embeddings)
这个在 RAG 场景特别有用——可以在客户端算 embedding,不用发到服务器:
import{pipeline}from'@huggingface/transformers';const embedder=await pipeline('feature-extraction','Xenova/all-MiniLM-L6-v2',{device:'webgpu'});const output=await embedder('前端开发者学 AI',{pooling:'mean', normalize: true,});console.log(output.data);// Float32Array(384)[0.032, -0.041,...]▎3.4 实战:浏览器内图片分类
import{pipeline}from'@huggingface/transformers';const classifier=await pipeline('image-classification','Xenova/vit-base-patch16-224',{device:'webgpu'});// 直接传图片 URL const result=await classifier('https://example.com/cat.jpg');console.log(result);//[{label:'tabby cat', score:0.92},...]▎3.5 支持的任务类型
| 任务 | 示例模型 | 模型大小 |
|---|---|---|
| 文本分类 | distilbert-base-uncased | ~67MB |
| 文本生成 | Phi-3-mini(量化) | ~2GB |
| 翻译 | Helsinki-NLP/opus-mt | ~300MB |
| 语音转文字 | Whisper-tiny | ~150MB |
| 图片分类 | ViT-base | ~86MB |
| 目标检测 | DETR | ~160MB |
| 文本向量化 | all-MiniLM-L6-v2 | ~23MB |
关键洞察:Transformers.js 特别适合"小而精"的专用模型——情感分析、翻译、embedding 这些任务,模型小、推理快、效果好。
四、WebLLM:在浏览器里跑完整 LLM
如果你想在浏览器里跑一个完整的对话大语言模型(比如 Llama 3、Phi-3、Gemma),那 WebLLM 是目前最成熟的方案。
▎4.1 WebLLM 原理
WebLLM 由 MLC(Machine Learning Compilation)团队开发,核心思路:
模型编译:用 Apache TVM 把 LLM 编译成 WebGPU 可执行的格式
量化压缩:4-bit / 3-bit 量化,把模型从几十 GB 压缩到几个 GB
WebGPU 推理:直接利用 GPU 的并行计算能力
浏览器缓存:模型下载后缓存到 IndexedDB/Cache API,下次打开免下载
▎4.2 实战:浏览器里跑 Llama
npminstall@mlc-ai/web-llm typescriptimport{CreateMLCEngine}from'@mlc-ai/web-llm';// 初始化引擎,首次会下载模型(~2-4GB) const engine=await CreateMLCEngine('Llama-3.1-8B-Instruct-q4f32_1-MLC',{initProgressCallback:(progress)=>{console.log(`Loading: ${(progress.progress *100).toFixed(1)}%`);},});// 用 OpenAI 兼容的 API 调用! const response=await engine.chat.completions.create({messages:[{role:'system', content:'你是一个专业的前端开发助手。'},{role:'user', content:'用 TypeScript 写一个防抖函数'},], temperature:0.7, max_tokens:512,});console.log(response.choices[0].message.content);注意到了吗?API 和 OpenAI SDK 完全兼容——chat.completions.create,连参数名都一样。这意味着你可以用同一套接口在云端和本地之间无缝切换。
▎4.3 流式输出
const stream=await engine.chat.completions.create({messages:[{role:'user', content:'解释一下 React Fiber 的原理'}], stream: true,});forawait(const chunk of stream){const delta=chunk.choices[0]?.delta?.content||'';process.stdout.write(delta);// 逐字输出}▎4.4 可用模型
WebLLM 支持的模型越来越多(截至 2026 年初):
| 模型 | 参数量 | 量化后大小 | 推理速度(M2 Mac) |
|---|---|---|---|
| Phi-3.5-mini | 3.8B | ~2.0GB | ~40 tok/s |
| Llama-3.1-8B | 8B | ~4.3GB | ~25 tok/s |
| Gemma-2-2B | 2B | ~1.4GB | ~55 tok/s |
| Qwen2.5-3B | 3B | ~1.8GB | ~45 tok/s |
| SmolLM2-1.7B | 1.7B | ~1.0GB | ~65 tok/s |
小提示:对于中文场景,推荐 Qwen2.5 系列,中文效果明显好于 Llama。
五、Chrome 内置 AI API(window.ai)
Google 正在推进一个更激进的方案:把 AI 模型直接内置到 Chrome 浏览器里。
▎5.1 Prompt API
这是最核心的 API,让你直接在浏览器里调用内置 LLM:
// 检查是否可用 const capabilities=await self.ai.languageModel.capabilities();if(capabilities.available==='readily'){// 模型已就绪,直接用 const session=await self.ai.languageModel.create({systemPrompt:'你是一个简洁的技术助手,用中文回答。',});const result=await session.prompt('什么是 WebGPU?');console.log(result);// 流式输出 const stream=await session.promptStreaming('解释防抖和节流的区别');forawait(const chunk of stream){console.log(chunk);}}▎5.2 其他内置 AI API
除了 Prompt API,Chrome 还在推进一系列专用 AI API:
// 翻译 API const translator=await self.ai.translator.create({sourceLanguage:'en', targetLanguage:'zh',});const translated=await translator.translate('Hello, World!');// 摘要 API const summarizer=await self.ai.summarizer.create({type:'key-points', length:'medium',});const summary=await summarizer.summarize(longArticle);// 语言检测 API const detector=await self.ai.languageDetector.create();const results=await detector.detect('こんにちは');//[{detectedLanguage:'ja', confidence:0.98}]▎5.3 现状与限制
- ▸当前阶段:Origin Trial / Early Preview,还不是稳定 API
- ▸内置模型:Gemini Nano(~1.8B 参数),能力有限
- ▸优势:零下载、零配置、启动极快
- ▸劣势:模型不可选、仅 Chrome、API 还在变
我的判断:Chrome 内置 AI 短期内更适合做"锦上添花"的轻量功能(翻译、摘要、分类),重度 AI 功能还是要靠 WebLLM / 云端 API。
六、Hybrid 架构:小模型本地 + 大模型云端
实际生产中,纯本地或纯云端都不是最优解。Hybrid 架构(端云协同) 才是当前最务实的方案:
▎6.1 架构设计
interface AIRouter{route(task: AITask):'local'|'cloud';}class HybridAIService{private localEngine: LocalLLMEngine;private cloudClient: OpenAIClient;async process(task: AITask): Promise<string>{Keep building, keep learning. See youinthe future.最后
如果说程序员已经是高薪职业,那么干AI的程序员,就是高薪中的高薪。
现在的市场,已经用数据给程序员指明了方向:学AI大模型,就是冲刺高薪的最优解!
看着身边越来越多的同行转型大模型、拿到高薪offer,很多人心里都动了心,但真正的难题来了:零基础小白不知道从哪入门?有基础的程序员找不到系统学习路径?实战项目练手无门?面试不知道考什么?
别慌!今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包,覆盖从入门到实战、从理论到面试、从基础到进阶的全流程,所有资料均已整理归档,无冗余、无套路,免费分享给每一位想抓住AI风口的程序员和小白!
👇👇扫码免费领取全部内容👇👇
1、大模型系统化学习路线
2、大模型学习书籍&文档
3、AI大模型最新行业报告
4、大模型项目实战&配套源码
5、大模型大厂面试真题
四阶段精细化学习规划(附时间节点,可直接照做)
结合上述资源,给大家整理了一份可直接落地的四阶段学习规划,总时长约2个月,小白可循序渐进,程序员可根据自身基础调整节奏,高效掌握大模型核心能力,快速实现从“入门”到“能落地、能面试”的跨越。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
👇👇扫码免费领取全部内容👇👇
6、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】