Transformers.js v3震撼發(fā)布:WebGPU加速、120種架構(gòu)支持,開發(fā)者必備神器!
筆者等待多時的Transformers.js v3 版本,經(jīng)過一年多的開發(fā),終于發(fā)布了!這一版本帶來了多項重大更新和增強(qiáng),必將引起前端及瀏覽器插件 AI 應(yīng)用爆發(fā)。
核心亮點(diǎn)
WebGPU 支持
Transformers.js v3 引入了 WebGPU 支持,性能比 WASM 快高達(dá) 100 倍,利用瀏覽器的 GPU 進(jìn)行高性能計算。WebGPU 是一種新的網(wǎng)頁標(biāo)準(zhǔn),用于加速圖形和計算,性能優(yōu)于 WebGL,能夠直接與現(xiàn)代 GPU 交互,非常適合機(jī)器學(xué)習(xí)任務(wù)。
示例代碼
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參數(shù)選擇,使模型使用更加高效。
示例代碼
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 種支持的架構(gòu)
新版本支持 120 種架構(gòu),涵蓋了廣泛的輸入模態(tài)和任務(wù),新增模型包括 Phi-3、Gemma & Gemma 2、LLaVa、Moondream、Florence-2、MusicGen、Sapiens、Depth Pro、PyAnnote 和 RT-DETR 等。
25 個示例項目和模板
v3 版本提供了 25 個新的示例項目和模板[1],展示了 WebGPU 支持的各種應(yīng)用,如 Phi-3.5 WebGPU 和 Whisper WebGPU。
1200 多個預(yù)轉(zhuǎn)換模型
Hugging Face Hub 上現(xiàn)已提供超過 1200 個預(yù)轉(zhuǎn)換模型,方便用戶查找和使用。
Node.js (ESM + CJS)、Deno 和 Bun 兼容性
Transformers.js v3 兼容 Node.js (ESM + CJS)、Deno 和 Bun,確保與流行的服務(wù)器端 JavaScript 運(yùn)行時無縫集成。
新的家在 NPM 和 GitHub
Transformers.js 現(xiàn)在以官方 Hugging Face 組織的名義發(fā)布在 NPM 上,包名為@huggingface/transformers,并在 GitHub 上托管,地址為:https://github.com/huggingface/transformers.js。
總結(jié)
Transformers.js v3 的發(fā)布無疑為開發(fā)者們帶來了巨大的便利和性能提升。無論是 WebGPU 的加速支持,還是豐富的架構(gòu)和預(yù)轉(zhuǎn)換模型,都使得這一版本成為機(jī)器學(xué)習(xí)領(lǐng)域的必備工具。未來,我們可以期待更多基于 Transformers.js 的創(chuàng)新應(yīng)用涌現(xiàn)。
參考資料
[1]示例項目和模板: https://github.com/huggingface/transformers.js-examples
[2]原文:?https://huggingface.co/blog/transformersjs-v3
