Text Classification
Transformers.js
ONNX
Chinese
English
multilingual
xlm-roberta
webgpu
reranker
fp16
Instructions to use sayken2/bge-reranker-v2-m3-webgpu with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers.js
How to use sayken2/bge-reranker-v2-m3-webgpu with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('text-classification', 'sayken2/bge-reranker-v2-m3-webgpu');
bge-reranker-v2-m3 fp16 for WebGPU(onnxruntime-web / transformers.js)
BAAI/bge-reranker-v2-m3 的 ONNX fp16 版,專為瀏覽器 WebGPU 整理:
- 來源:
onnx-community/bge-reranker-v2-m3-ONNX的onnx/model_fp16.onnx。 - 修了一個 Cast:原圖位置 id 後面有 int64→FLOAT 與 FLOAT→FLOAT16 兩個 Cast,onnxruntime-web 執行期會融合成 int64→FLOAT16 並留在 WebGPU(JSEP)上,JSEP 的 Cast 不支援 int64 輸入,建 session 時丟 C++ 例外。這裡先在圖裡合成一個 Cast,分割階段就會被派到 CPU,其餘節點照常跑 WebGPU。
- 權重改 external data 並切成兩片(
model_fp16.onnx_data596 MB、model_fp16.onnx_data_1540 MB),瀏覽器一次抓不超過 1 GB 的檔案。 - 分數與 fp32 最大差 0.03,排序一致。
用法(transformers.js 3.x)
import { AutoTokenizer, AutoModelForSequenceClassification } from '@huggingface/transformers';
const id = 'sayken2/bge-reranker-v2-m3-webgpu';
const tokenizer = await AutoTokenizer.from_pretrained(id);
const model = await AutoModelForSequenceClassification.from_pretrained(id, {
device: 'webgpu',
dtype: 'fp16',
use_external_data_format: { 'model_fp16.onnx': 2 },
});
const inputs = tokenizer(['query'], { text_pair: ['passage'], padding: true, truncation: true });
const { logits } = await model(inputs);
需要顯示卡支援 shader-f16(Apple Silicon、NVIDIA Turing 以後、較新的 Intel/AMD)。沒有的話會報 The device (webgpu) does not support fp16,請改用 fp32 或 CPU 的 q8。
產製腳本
轉檔、修 Cast、切片的腳本在 https://github.com/meowalien/patrol 的 scripts/model/。
授權
Apache-2.0,同上游 BAAI/bge-reranker-v2-m3。
- Downloads last month
- 36
Model tree for sayken2/bge-reranker-v2-m3-webgpu
Base model
BAAI/bge-reranker-v2-m3