OpenDecider-nano RKNN (RK3588)

Port NPU de manjunathshiva/opendecider-nano pour Rockchip RK3588.

Encodeur ModernBert exporté en ONNX (seq_len=256), préparé pour RKNN (masque d’attention -inf → -1e4, ops IsNaN retirés), converti avec rknn-toolkit2 2.3.2. Parité mesurée ≈ Torch sur l’exemple Sybrain (choice billing ~94,5 %).

La tête MLP de décision reste en numpy (head_np.npz).

Fichiers

Fichier Rôle
opendecider-nano-enc-L256.rknn Encodeur NPU (~776 Mo)
head_np.npz Tête MLP (Linear→GELU→LayerNorm→Linear)
export_meta.json seq_len, mask_token_id, pad_token_id, hidden_size
tokenizer.json / tokenizer_config.json Tokenizer d’origine OpenDecider-nano
config.json Config ModernBert d’origine

Runtime (Radxa / RK3588)

  • librknnrt ≥ 2.3.0
  • Python : rknnlite (rknn-toolkit-lite2)
  • Entrées : input_ids, attention_mask — shapes [1, 256], int64
  • Sortie : last_hidden_state — [1, 256, 1024]
  • Inférence typique : ~0.7–1.5 s / question (3 cœurs NPU)

Conversion (si tu reconvertis toi-même)

  1. Remplacer les Constant -inf du masque par -1e4, puis retirer Where(IsNaN(x), fill, x) (sinon Softmax NaN → proba ~50/50 sur NPU).
  2. Sur Radxa, /tmp est souvent un tmpfs 256 Mo : sans TMPDIR sur disque, l’export .rknn est tronqué.
export TMPDIR=$HOME/tmp/rknn
mkdir -p "$TMPDIR"
# clean ONNX ( -inf → -1e4, strip IsNaN ) puis :
# rknn-toolkit2 : load_onnx → build(do_quantization=False) → export_rknn

Licence / crédit

Apache-2.0, dérivé de OpenDecider-nano (manjunathshiva/opendecider-nano). Merci aux auteurs d’OpenDecider.

Downloads last month
24
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for vinshola/opendecider-nano-rk3588

Finetuned
(1)
this model