Transformers.js在设计上力求与Hugging Face的Transformers Python库功能对等,用户可通过高度相似的API运行相同的预训练模型。该库支持跨模态的多种任务,包括:
- 自然语言处理(NLP):文本分类、命名实体识别、问答系统、摘要生成、翻译及文本生成
- 计算机视觉:图像分类、目标检测、图像分割、深度估计
- 音频处理:自动语音识别、音频分类、文本转语音
- 多模态任务:嵌入生成、音频/图像的零样本分类、零样本目标检测
Transformers.js基于ONNX Runtime在浏览器中执行模型。其核心优势在于能通过Hugging Face的Optimum库轻松将PyTorch/TensorFlow/JAX预训练模型转换为ONNX格式,这使得它在网页端AI应用中极具灵活性。
核心特性:
- 浏览器端运行:无需服务器支持,模型可直接通过WASM或WebGPU在浏览器中运行
- 一键转换:单条命令即可完成PyTorch/TensorFlow/JAX模型到ONNX的转换
- 量化支持:支持量化模型(如4-bit量化)以优化性能
- 流水线API:内置预处理/后处理功能,简化模型调用流程
- 跨平台兼容:支持原生JS、React、Next.js、Electron等环境
安装方式:
npm i @huggingface/transformers
使用示例:
import { pipeline } from '@huggingface/transformers';
const pipe = await pipeline('sentiment-analysis');
const out = await pipe('我爱transformers!');
console.log(out); // [{'label': 'POSITIVE', 'score': 0.999817686}]
对于希望在前端应用中集成AI能力而无需后端支持的开发者而言,Transformers.js是理想选择。它持续扩展支持的模型与任务列表,已成为现代网页开发的强力工具。