transformers.js
huggingface/transformers.js加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你或许已经习惯了这样的工作流:打开 ChatGPT,输入问题,等几秒,收到回复。整个过程看似轻巧,但背后是一条横跨全球的请求链路——你的文本穿越层层网关,抵达远程服务器,推理引擎处理完毕,结果再传回你的屏幕。
问题在于:这条链路是有代价的。 网络延迟、API 费用、数据隐私……当 AI 能力开始渗透到每一个日常应用时,把所有推理都押注在云端,正在变得不可持续。
而 Transformers.js 试图回答一个更激进的问题:如果把整个推理过程,直接装进用户的浏览器里呢?
这就是 Hugging Face 给出的答案。Transformers.js 是 Python 版 transformers 库的 JavaScript 移植版,由 Hugging Face 团队与社区共同维护,核心开发者 Joshua Lochner 于 2023 年加入全职开发。它用 ONNX Runtime 作为推理引擎,让预训练模型直接在浏览器中运行——不需要后端,不需要 API Key,数据从不离开用户的设备。
2026 年 9 月,该项目在 GitHub 已斩获超过 16,000 颗 Stars,NPM 月下载量突破 1,000 万次。v4 版本于 2026 年 3 月正式发布,建构系统从 Webpack 迁移至 esbuild,构建时间从 2 秒缩短至 200 毫秒,核心包体积缩减 53%。
要理解 Transformers.js 的工作方式,先要理解它依赖的两项底层技术:WebAssembly 和 WebGPU。
WebAssembly(WASM) 是一种低级字节码格式,几乎所有现代浏览器都支持。ONNX Runtime 将模型推理编译为 WASM 指令在 CPU 上执行,好处是跨平台、无需安装、启动极快。Transformers.js 默认使用 WASM 模式(dtype 为 "q8"),兼容所有浏览器,是最通用的运行方式。
WebGPU 是 WebGL 的后继者,于 2024 年开始获得主流浏览器支持。它允许网页直接访问底层 GPU 的通用计算能力(GPGPU),这正是机器学习推理最需要的——矩阵运算。ONNX Runtime Web 在 2024 年 10 月添加了 WebGPU 后端,在支持的浏览器(如 Chrome、Edge)中,WebGPU 模式比 WASM 快 10~100 倍。
一个简单的对比可以说明问题:
// 默认:WASM(CPU,兼容所有浏览器)
const pipe = await pipeline('sentiment-analysis');
// 启用 WebGPU:GPU 加速(需要 Chrome/Edge 等支持 WebGPU 的浏览器)
const pipe = await pipeline('sentiment-analysis', null, { device: 'webgpu' });
两者使用完全相同的 API,只是运行后端不同。这对于开发者来说是一个透明的 abstraction layer——你的业务代码不需要改动,只需一行配置就能切换到 GPU 加速。
Transformers.js 并不是"浏览器里的 Python transformers",而是一个经过精心优化的子集。截至 v4,它支持以下模态的数十种任务:
| 模态 | 支持的任务 |
|---|---|
| 自然语言处理 | 文本分类、命名实体识别(NER)、问答、摘要、翻译、文本生成、词嵌入、零样本分类 |
| 计算机视觉 | 图像分类、目标检测、分割(含 SAM)、深度估计、图像生成(Stable Diffusion 等) |
| 音频 | 语音识别(Whisper 等)、音频分类、文本转语音(TTS) |
| 多模态 | Embedding、零样本图像分类、零样本目标检测 |
这背后是 Hugging Face Hub 上超过 1,200 个预转换模型,开箱即用。你不需要自己转换 PyTorch 模型——社区已经为你做好了。
v4 的重要新能力包括:
但它也有局限:
Transformers.js 的 API 设计几乎完全对标 Python 版,这让它对已经熟悉 Hugging Face 的开发者极为友好。以下是 Python 与 JavaScript 的代码对比,几乎是一一对应:
# Python(服务端)
from transformers import pipeline
pipe = pipeline('sentiment-analysis')
result = pipe('I love transformers!')
# [{'label': 'POSITIVE', 'score': 0.9998}]
// JavaScript(浏览器端)
import { pipeline } from '@huggingface/transformers';
const pipe = await pipeline('sentiment-analysis');
const result = await pipe('I love transformers!');
// [{'label': 'POSITIVE', 'score': 0.9998}]
两种引入方式:
npm i @huggingface/transformers
<script type="module">
import { pipeline } from 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.2.0';
</script>
实用场景示例:
Transformers.js 的出现,折射出一个更大的趋势:AI 推理正在从云端向边缘迁移。
过去两年,我们见证了 Whisper.cpp、llama.cpp、Ollama 等工具将大模型推理带到本地桌面。而 Transformers.js 则将这场迁移推进到了浏览器这个最大的客户端平台。
为什么这很重要?
隐私优先场景:医疗记录分析、法律文档处理、企业内部敏感数据——用户不愿意将数据上传到第三方服务器,浏览器端推理提供了合规路径。
离线可用性:网络不稳定的环境(偏远地区、机载系统)中,浏览器内推理不依赖网络。
开发者成本:省去 API 调用费用,Scaling Law 的成本压力大幅降低。
用户体验:无网络延迟,响应即时,尤其适合实时交互场景(如视频通话实时字幕)。
Transformers.js 的下载量曲线几乎是浏览器端 AI 能力需求增长的晴雨表。2026 年 8 月,月下载量突破 1,000 万次,其中 @huggingface/transformers 占 825 万次,legacy @xenova/transformers 占 244 万次。
当然,浏览器端 AI 并非银弹。对于需要超长上下文、多轮复杂推理、或超大参数模型(>30B)的任务,云端 API 仍然不可替代。但对于 embedding、分类、实体识别、实时语音等明确边界的小粒度任务,Transformers.js 已经提供了足够优秀的解决方案。
当 AI 开始走进浏览器,它就不再只是科技公司的产品——它变成了真正属于每一个人的工具。
Transformers.js 所做的事情,本质上是将"AI 能力"从服务器机房释放出来,嵌入到用户每天都在使用的网页环境中。这不是一项简单的工作:需要在 WASM 与 WebGPU 之间做抽象,需要处理浏览器内存限制,需要将 ONNX 模型格式与 JavaScript 生态无缝衔接,还需要持续跟进 Hugging Face Hub 上千个模型的兼容更新。
但它做到了。而且,它正在变得越来越快、越来越小、越来越强大。
如果你在构建一个需要 AI 能力但不想自建服务器的 Web 应用,Transformers.js 值得认真考虑。
本报告基于 transformers.js v4(2026年3月发布)和 GitHub 仓库信息生成。