如何在 JS/TS 中直接运行 Hugging Face 机器学习模型

解决 AI 应用部署痛点:通过 Transformers.js 让机器学习模型直接在客户端(浏览器)或 Node.js 环境中运行,无需搭建复杂的 Python 后端或支付昂贵的 API 费用。

为什么需要这个技能

在传统的机器学习流程中,运行模型通常需要 Python 环境和强大的 GPU 服务器。对于前端开发者来说,这意味着必须依赖 API 调用,这带来了网络延迟、隐私泄露风险以及高昂的推理成本。

Transformers.js 将 Hugging Face 的模型转换为 ONNX 格式,使其能够直接在 JavaScript 环境中执行。这意味着你可以将文本分类、图像识别、语音转文字等功能直接集成到 Web 应用中,实现真正的本地化推理。

适用场景

  • 纯客户端 AI 应用:构建不需要服务器的隐私敏感型 AI 工具(如本地文档分析)。
  • 低延迟交互:在浏览器中实时进行文本翻译或情感分析,消除网络往返时间。
  • 多模态功能集成:在 JS 项目中快速实现图像描述、对象检测或语音识别。
  • 减轻服务器压力:将推理计算量转移至用户的本地设备(利用 WebGPU 加速)。

核心工作流

1. 快速集成

可以通过 NPM 安装或直接在浏览器中使用 CDN:

npm install @huggingface/transformers

2. 使用 Pipeline API

pipeline 是最核心的 API,它将预处理、模型推理和后处理封装在一起:

import { pipeline } from '@huggingface/transformers';

// 创建一个情感分析流水线
const pipe = await pipeline('sentiment-analysis');

// 执行推理
const result = await pipe('I love transformers!');
// 输出: [{ label: 'POSITIVE', score: 0.9998 }]

// 重要:完成后必须释放内存
await pipe.dispose();

3. 模型选择与优化

你可以通过 Hugging Face Hub 寻找支持 transformers.js 标签的模型,并根据设备性能选择量化版本(dtype):

  • 量化选择:使用 q4q8 可以显著减小模型体积并提升加载速度。
  • 设备加速:在支持的浏览器中,可将 device 设置为 webgpu 以获得 GPU 加速。
const generator = await pipeline('text-generation', 'onnx-community/gemma-3-270m-it-ONNX', {
  device: 'webgpu',
  dtype: 'q4' 
});

4. 内存管理

由于模型占用内存较大,在单页应用(SPA)或长运行的 Node.js 服务中,必须在模型不再使用时调用 pipe.dispose(),否则会导致严重的内存泄漏。

下载和安装

下载 transformers-js 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐