CoolFace
Modelpublic

cstr/PIXIE-Rune-v1.0-ONNX

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes14downloads
Model Card

PIXIE-Rune-v1.0 — ONNX Quantized Variants

ONNX-quantized derivatives of telepix/PIXIE-Rune-v1.0, an encoder-based multilingual embedding model developed by TelePIX Co., Ltd. optimized for semantic retrieval across 74 languages with specialization in Korean/English aerospace domain applications.

Original model: `telepix/PIXIE-Rune-v1.0` — safetensors weights + FP32 ONNX (onnx/model.onnx + onnx/model.onnx_data). This repo adds INT8 and INT4 quantized ONNX variants for CPU-efficient deployment.

Model Description

PropertyValue
Base modeltelepix/PIXIE-Rune-v1.0 (XLM-RoBERTa-large)
ArchitectureTransformer encoder
Output dimensionality1024
PoolingMean pooling + L2 normalize
Max sequence length6,000 tokens
Languages74 (XLM-RoBERTa vocabulary: 250,002 tokens)
DomainGeneral multilingual + aerospace specialization
LicenseApache 2.0

ONNX Variants

FileQuantizationSizeAvg cos vs FP32Pearson rMRRNotes
onnx/model_quantized.onnxINT8 dynamic542 MB0.9690.9981.00quantize_dynamic, all weights
onnx/model_int4.onnxINT4 + INT8 emb434 MB0.9410.9981.00MatMulNBits + INT8 Gather
onnx/model_int4_full.onnxINT4 full337 MB0.9410.9981.00MatMulNBits + INT4 Gather (opset 21)

Metrics measured on 8 semantically diverse sentences vs FP32 reference. Pearson r = correlation of pairwise cosine similarity matrices (structure preservation). MRR = Mean Reciprocal Rank on a retrieval probe — 1.00 = perfect retrieval ranking preserved.

Quantization methodology

The XLM-RoBERTa vocabulary has 250,002 tokens × 1024 dimensions, making the word embedding table the dominant weight (~977 MB FP32). Each variant handles it differently:

  • INT8 (model_quantized.onnx): onnxruntime.quantization.quantize_dynamic(weight_type=QInt8) — quantizes all weight tensors including the embedding Gather to INT8. Compact, maximum compatibility.
  • INT4 + INT8 emb (model_int4.onnx): Two-pass. Pass 1: MatMulNBitsQuantizer(block_size=32, symmetric=True) packs transformer MatMul weights to 4-bit nibbles. Pass 2: quantize_dynamic(op_types=["Gather"], weight_type=QInt8) brings the embedding table from 977 MB FP32 → 244 MB INT8.
  • INT4 full (model_int4_full.onnx): Same MatMulNBits pass, then manual DequantizeLinear(axis=0) node insertion packs the embedding table as per-row symmetric INT4 nibbles (scale = max(|row|)/7). Requires opset upgrade 14→21. Embedding: 977 MB → 122 MB.

Usage

fastembed (Rust)

This repo is integrated in fastembed-rs:

rust
use fastembed::{EmbeddingModel, InitOptions, TextEmbedding};

// INT8 — most compatible, 542 MB
let model = TextEmbedding::try_new(InitOptions::new(EmbeddingModel::PixieRuneV1Q))?;

// INT4 + INT8 embedding — 434 MB
let model = TextEmbedding::try_new(InitOptions::new(EmbeddingModel::PixieRuneV1Int4))?;

// INT4 full — smallest, 337 MB
let model = TextEmbedding::try_new(InitOptions::new(EmbeddingModel::PixieRuneV1Int4Full))?;

let embeddings = model.embed(vec!["안녕하세요", "Hello world"], None)?;

ONNX Runtime (Python)

python
import onnxruntime as ort
import numpy as np
from tokenizers import Tokenizer

tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.enable_truncation(max_length=512)
tokenizer.enable_padding(pad_token="<pad>", pad_id=1)

session = ort.InferenceSession("onnx/model_quantized.onnx",
                                providers=["CPUExecutionProvider"])

texts = ["텔레픽스는 어떤 산업 분야에서 위성 데이터를 활용하나요?",
         "텔레픽스는 해양, 자원, 농업 등 다양한 분야에서 위성 데이터를 분석하여 서비스를 제공합니다."]

enc  = tokenizer.encode_batch(texts)
ids  = np.array([e.ids            for e in enc], dtype=np.int64)
mask = np.array([e.attention_mask for e in enc], dtype=np.int64)

out = session.run(None, {"input_ids": ids, "attention_mask": mask})[0]  # (batch, seq, 1024)

# Mean pooling + L2 normalize
pooled = (out * mask[..., None]).sum(1) / mask.sum(1, keepdims=True).clip(1e-9)
norms  = np.linalg.norm(pooled, axis=-1, keepdims=True)
embeddings = pooled / norms.clip(1e-12)
# cosine similarity
scores = embeddings @ embeddings.T
print(scores)

sentence-transformers (original FP32 weights)

python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("telepix/PIXIE-Rune-v1.0")

queries   = ["텔레픽스는 어떤 산업 분야에서 위성 데이터를 활용하나요?",
             "국방 분야에 어떤 위성 서비스가 제공되나요?"]
documents = ["텔레픽스는 해양, 자원, 농업 등 다양한 분야에서 위성 데이터를 분석하여 서비스를 제공합니다.",
             "정찰 및 감시 목적의 위성 영상을 통해 국방 관련 정밀 분석 서비스를 제공합니다."]

q_emb = model.encode(queries,   prompt_name="query")
d_emb = model.encode(documents)
scores = model.similarity(q_emb, d_emb)
print(scores)

Quality Benchmarks (original model)

Results from telepix/PIXIE-Rune-v1.0, evaluated using Korean-MTEB-Retrieval-Evaluators.

6 Datasets of MTEB (Korean)

Model# paramsAvg. NDCGNDCG@1NDCG@3NDCG@5NDCG@10
telepix/PIXIE-Spell-Preview-1.7B1.7B0.75670.71490.75410.76960.7882
telepix/PIXIE-Spell-Preview-0.6B0.6B0.72800.68040.72580.74480.7612
telepix/PIXIE-Rune-v1.00.5B0.73830.69360.73560.75450.7698
telepix/PIXIE-Splade-Preview0.1B0.72530.67990.72170.74160.7579
nlpai-lab/KURE-v10.5B0.73120.68260.73030.74780.7642
BAAI/bge-m30.5B0.71260.66130.71070.73010.7483
Snowflake/snowflake-arctic-embed-l-v2.00.5B0.70500.65700.70150.72260.7390
Qwen/Qwen3-Embedding-0.6B0.6B0.68720.64230.68330.70170.7215
jinaai/jina-embeddings-v30.5B0.67310.62240.67150.68990.7088
openai/text-embedding-3-largeN/A0.64650.58950.64670.66460.6853

Benchmarks: Ko-StrategyQA, AutoRAGRetrieval, MIRACLRetrieval, PublicHealthQA, BelebeleRetrieval, MultiLongDocRetrieval.

7 Datasets of BEIR (English)

Model# paramsAvg. NDCGNDCG@1NDCG@3NDCG@5NDCG@10
Snowflake/snowflake-arctic-embed-l-v2.00.5B0.58120.57250.57050.58110.6006
telepix/PIXIE-Rune-v1.00.5B0.57810.56910.56630.57910.5979
telepix/PIXIE-Spell-Preview-1.7B1.7B0.56300.54460.55290.56600.5885
Qwen/Qwen3-Embedding-0.6B0.6B0.55580.53210.54510.56200.5839
Alibaba-NLP/gte-multilingual-base0.3B0.55410.54460.54260.55740.5746
BAAI/bge-m30.5B0.53180.50780.52310.53890.5573
jinaai/jina-embeddings-v30.6B0.44820.41160.43790.45730.4861

Benchmarks: ArguAna, FEVER, FiQA-2018, HotpotQA, MSMARCO, NQ, SCIDOCS.


License

Apache 2.0 — same as the original telepix/PIXIE-Rune-v1.0.

Citation

bibtex
@software{TelePIX-PIXIE-Rune-v1,
  title  = {PIXIE-Rune-v1.0},
  author = {TelePIX AI Research Team and Bongmin Kim},
  year   = {2025},
  url    = {https://huggingface.co/telepix/PIXIE-Rune-v1.0}
}

Contact

Original model authors: bmkim@telepix.net ONNX quantization: cstr — open an issue on this repo for questions.

Provenance and EU AI Act Art. 53 note

  • Upstream model: telepix/PIXIE-Rune-v1.0 — published by telepix.
  • Upstream licence: apache-2.0. This repository redistributes under the same terms; it grants no rights the upstream licence does not.
  • What was done here: format conversion and/or quantisation only (ONNX). No training, no fine-tuning, no merging, no distillation, no change to architecture, vocabulary or capability. Only the numeric representation of the upstream weights differs.
  • Training data: documented — where it is documented at all — by the upstream provider; see the upstream model card. No training data was used, added or selected by this repository.
  • Provider status: under Regulation (EU) 2024/1689 the upstream authors remain the provider of this model. Converting the serialisation format does not make this repository the provider of a new general-purpose AI model, and no such claim is made. Questions about training content, copyright policy or model capability belong upstream.