Transformers.js v3震撼發布:WebGPU加速、120種架構支持,開發者必備神器!
筆者等待多時的Transformers.js v3 版本,經過一年多的開發,終于發布了!這一版本帶來了多項重大更新和增強,必將引起前端及瀏覽器插件 AI 應用爆發。
核心亮點
WebGPU 支持
Transformers.js v3 引入了 WebGPU 支持,性能比 WASM 快高達 100 倍,利用瀏覽器的 GPU 進行高性能計算。WebGPU 是一種新的網頁標準,用于加速圖形和計算,性能優于 WebGL,能夠直接與現代 GPU 交互,非常適合機器學習任務。
示例代碼
import { pipeline } from "@huggingface/transformers";
// Create a feature-extraction pipeline
const extractor = await pipeline(
"feature-extraction",
"mixedbread-ai/mxbai-embed-xsmall-v1",
{ device: "webgpu" },
});
// Compute embeddings
const texts = ["Hello world!", "This is an example sentence."];
const embeddings = await extractor(texts, { pooling: "mean", normalize: true });
console.log(embeddings.tolist());
// [
// [-0.016986183822155, 0.03228696808218956, -0.0013630966423079371, ... ],
// [0.09050482511520386, 0.07207386940717697, 0.05762749910354614, ... ],
// ]
新量化格式
v3 版本引入了多種模型量化格式,包括 fp32、fp16、q8、int8、uint8、q4、bnb4 和 q4f16,通過dtype參數選擇,使模型使用更加高效。
示例代碼
import { pipeline } from "@huggingface/transformers";
const generator = await pipeline(
"text-generation",
"onnx-community/Qwen2.5-0.5B-Instruct",
{ dtype: "q4", device: "webgpu" },
);
const messages = [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Tell me a funny joke." },
];
const output = await generator(messages, { max_new_tokens: 128 });
console.log(output[0].generated_text.at(-1).content);
120 種支持的架構
新版本支持 120 種架構,涵蓋了廣泛的輸入模態和任務,新增模型包括 Phi-3、Gemma & Gemma 2、LLaVa、Moondream、Florence-2、MusicGen、Sapiens、Depth Pro、PyAnnote 和 RT-DETR 等。
25 個示例項目和模板
v3 版本提供了 25 個新的示例項目和模板[1],展示了 WebGPU 支持的各種應用,如 Phi-3.5 WebGPU 和 Whisper WebGPU。
1200 多個預轉換模型
Hugging Face Hub 上現已提供超過 1200 個預轉換模型,方便用戶查找和使用。
Node.js (ESM + CJS)、Deno 和 Bun 兼容性
Transformers.js v3 兼容 Node.js (ESM + CJS)、Deno 和 Bun,確保與流行的服務器端 JavaScript 運行時無縫集成。
新的家在 NPM 和 GitHub
Transformers.js 現在以官方 Hugging Face 組織的名義發布在 NPM 上,包名為@huggingface/transformers,并在 GitHub 上托管,地址為:https://github.com/huggingface/transformers.js。
總結
Transformers.js v3 的發布無疑為開發者們帶來了巨大的便利和性能提升。無論是 WebGPU 的加速支持,還是豐富的架構和預轉換模型,都使得這一版本成為機器學習領域的必備工具。未來,我們可以期待更多基于 Transformers.js 的創新應用涌現。
參考資料
[1]示例項目和模板: https://github.com/huggingface/transformers.js-examples
[2]原文:?https://huggingface.co/blog/transformersjs-v3
