浏览器内 LLM 微调:wllama WebGPU 训练 PoC 解析 · 干货攻略
- 链接: https://x.com/maximelabonne/status/2096456605076476239
- 分类: x-tips
- 来源: X @maximelabonne
- 作者: Jay
- 更新: 2026-09-10
- 仓库: ngxson/wllama
这是什么
wllama 是 ngxson(Xuan-Son Nguyen)维护的 WebAssembly + WebGPU 绑定库,让 llama.cpp 可以在浏览器内直接运行大语言模型推理,2026 年 9 月 5 日他发布了 首个浏览器内微调(fine-tuning)PoC,证明在 WebGPU 上训练 LLM 是可行的。@maximelabonne(Liquid AI)随后转发并评价"浏览器内微调要来了",引发社区热议(9.3K views)。
一句话定义: 基于 llama.cpp + WebAssembly + WebGPU,在浏览器里完成大模型前向传播 + 反向传播训练,不再需要服务器端 GPU。
为什么值得关注
解决了什么问题
此前 wllama 已支持在浏览器里推理 LLM(2024 年中 WebGPU 接入 via PR #215),但训练一直局限于桌面端。ngxson 的 PoC 打破了这一瓶颈:
- 隐私意义:数据无需离开浏览器,用户本机完成训练,避免上传到第三方服务器
- 去中心化:Chromebook、低配 PC 都能训练模型,只要有现代浏览器(Chrome/Edge)
- 技术意义:证明 llama.cpp 的 WebGPU 后端具备完整的训练 forward + backward pass 能力,不只是推理
谁分享的
| 角色 | 身份 |
|---|---|
| @ngxson(Xuan-Son Nguyen) | wllama 创始人 + 主力维护者 |
| @maximelabonne(Maxime Labonne) | Liquid AI,知名开源 LLM 推手,转发引爆 |
核验过程
读过的官方来源
-
GitHub 仓库
ngxson/wllama(README + releases) - 确认 wllama 是 WebAssembly 绑定库,基于 llama.cpp - V3.1 引入 WebGPU 支持(via PR #215 by Reese Levine) - 当前最新版本:v3.5.1(与 llama.cpp v3.5.0 同步) - 功能列表:OpenAI 兼容 API、WebGPU、multimodal、tool calling - 安装:npm i @wllama/wllama;源码构建需 Docker +npm run build:wasm && npm run build -
@ngxson 原始推文(Sep 5, 2026) - 原话:"I put together a super earlier PoC that proves it's possible, backed by llama.cpp / wllama" - 下一步:"Working on LoRA next..." - 9.3K views,大量开发者关注
-
GitHub Releases 页面 - v3.5.1 变更:修复 CDN 兼容、同步 llama.cpp v3.5.0、debug 工具等 - 未提及训练 API,训练 PoC 尚未合入正式 release
交叉验证结论
| 说法 | 来源 | 核验结果 |
|---|---|---|
| 这是"首个浏览器内 WebGPU 训练 PoC" | 原帖主张 | ⚠️ 未完全核验——llama.cpp 本身有 llama-train 二进制(仅 CPU,量化的 GGUF 可用),但浏览器 WebGPU 训练此前无公开先例;ngxson 推文描述为"super early PoC",尚未合入 master |
| wllama v3.5.1 同步 llama.cpp v3.5.0 | GitHub releases | ✅ 已核验,changelog 明确写明 |
| LoRA 是下一步 | @ngxson 推文 | ✅ 已核验,原文明确 |
| WebGPU 后端由 Reese Levine 开发 | README | ✅ 已核验 |
上手步骤
⚠️ 注意:这是 PoC 阶段,训练 API 尚未稳定合入 release。以下基于 wllama 现有推理 API + PoC 已知信息整理,预计正式训练 API 在未来版本(很可能是 v3.6+)提供。
1. 安装 wllama
# npm(推理用,已发布)
npm i @wllama/wllama
# 源码构建(需要 Docker,用于 PoC 测试或开发)
git clone https://github.com/ngxson/wllama.git
cd wllama
git submodule update --init --recursive
npm ci
npm run build:wasm && npm run build
2. 基本推理示例(参考)
import { Wllama } from '@wllama/wllama';
const wllama = new Wllama({
default: './esm/wasm/wllama.wasm',
});
// 从 Hugging Face 加载 GGUF 模型
await wllama.loadModelFromHF(
{ repo: 'ggml-org/models', file: 'tinyllamas/stories260K.gguf' },
{ progressCallback: ({ loaded, total }) => {
console.log(`Downloading... ${Math.round((loaded/total)*100)}%`);
}}
);
// 推理
const response = await wllama.createChatCompletion({
messages: [{ role: 'user', content: 'Hello!' }],
max_tokens: 50,
temperature: 0.5,
});
console.log(response.choices[0].message.content);
3. 启用 WebGPU 加速
// V3.1+ 默认启用 WebGPU,所有层自动卸载到 GPU
// 若模型太大超出显存,可手动调整卸载层数:
await wllama.loadModel(files, {
n_gpu_layers: 4, // 仅卸载 4 层到 GPU;设为 0 禁用 GPU
});
// Firefox/Safari 兼容模式(性能下降):
wllama.setCompat('default', 'firefox_safari');
4. PoC 训练 API(原帖信息,⚠️ 未稳定)
ngxson 在推文中提到 PoC 可行但尚未发布 API,预期形式可能类似:
// ⚠️ 预期用法,非当前 API(待官方发布)
await wllama.train({
model: files,
trainData: myDataset,
epochs: 3,
batchSize: 1,
lr: 1e-4,
backend: 'webgpu', // 核心:新支持 GPU 训练
});
建议跟踪方式:
- Watch GitHub 仓库:github.com/ngxson/wllama
- 关注 ngxson 推文:@ngxson
- LoRA 训练 PR 预计会在 examples/ 下新增 finetune/ 示例
坑与适用边界
⚠️ 当前阶段限制(PoC vs 生产)
| 方面 | PoC 现状 | 生产就绪标准 |
|---|---|---|
| API 稳定性 | 训练 API 尚未合入 release | 需等 v3.6+ 正式 API |
| LoRA 支持 | 尚在开发(原帖确认) | 完整 LoRA 需要 adapter 加载 API |
| 浏览器兼容性 | WebGPU 仅 Chrome/Edge 完全支持 | Safari、Firefox 需要 compat 模式(性能差) |
| 模型大小 | ArrayBuffer 上限 2GB | 大模型需 split成 ≤512MB 分块 |
| 多线程 | 需服务器设置 COOP/COEP 头 | 本地文件 URL 无法启用多线程训练 |
| 显存限制 | WebGPU 显存由浏览器分配,不确定是否有足够空间训练 7B | 小模型(≤1B)或 Q4 量化更现实 |
适用场景(今天就可以用)
- ✅ 跑通 wllama 推理流程,熟悉 API
- ✅ 小模型(≤ 1B,Q4 量化)推理基准测试
- ✅ 隐私敏感场景(医疗/法律文档本机处理)
- ✅ 将训练 PoC 代码 fork 下来,跟踪 ngxson 的进展
暂时不适合的场景
- ❌ 生产级别训练(等正式训练 API)
- ❌ 7B+ 全精度模型训练(显存不足)
- ❌ 多 LoRA 切换(adapter 加载尚未支持)
一句话结论
wllama 的 WebGPU 训练 PoC 证明了浏览器内微调的工程可行性,是 llama.cpp"全栈本地 AI"版图的关键补全,但训练 API 尚在 PoC 阶段,距离生产使用还需等待正式 release 和 LoRA 支持。
核验来源:GitHub ngxson/wllama README + releases、@ngxson 原始推文(Sep 5, 2026)、@maximelabonne 转发推文(Sep 6, 2026)、llama.cpp 官方博客(reeselevine.github.io)、GitHub releases v3.5.1 changelog。训练 API "super early PoC"状态基于原帖措辞;LoRA 下一步计划来自 @ngxson 推文原文;"首次"浏览器 WebGPU 训练主张标记为原帖主张未完全核验。