pico-type vs. FastText: 200KB Byte Classifier vs Word Vectors
Edge Content Classification across 62 Languages and 90 MIME Types (ArXiv 2608.14658). Empirical comparison between Eulogik’s pico-type-v02 (200KB ONNX byte-level classifier) and Meta’s FastText on binary size, inference latency, and multi-head routing capability.
EXECUTIVE SUMMARY & EMPIRICAL VERDICT
pico-type-v02 is 630× smaller than FastText while eliminating tokenizer overhead and providing 7 simultaneous classification heads for edge routers and firewalls.
EULOGIK EDGE MODELFeatured
pico-type
v02 (ArXiv:2608.14658) · 1.5 Million
Target HardwareAny CPU / ARM64 / Microcontroller
Latency / Speed<6ms (CPU AVX2) · <12ms (Raspberry Pi)
RAM / Memory8 MB RAM
Fertility / Size200 KB ONNX Binary
- ✓ Tokenizer-free byte architecture: immune to OOV words
- ✓ 7 simultaneous classification heads in a single 200KB file
- ✓ Classifies 62 programming languages & 90 MIME types
- ✓ Published research paper on ArXiv (2608.14658)
INDUSTRY BASELINEOpen Weights
FastText
lid.176.bin · N/A (Embedding Matrix)
Target Hardwarex86 / Server CPU
Latency / Speed2–4ms (CPU)
RAM / Memory150–250 MB RAM
Fertility / Size126 MB to 200 MB Binary
- • Extremely fast subword embeddings
- • 1,000× larger binary size (126MB vs 200KB)
- • Requires external tokenization and text preprocessing
- • Single task only (language ID or text category)
METRIC SPECIFICATION MATRIX
| METRIC | PICO-TYPE | FASTTEXT |
|---|---|---|
| Binary Export Size | 200 KB (ONNX) ★ | 126 MB (.bin) |
| Tokenizer Dependency | None (Byte-level) ★ | Required |
| Multi-Head Multi-Task | 7 Heads (Lang + MIME + Code) ★ | Single Head |
| RAM Footprint | 8 MB ★ | 180 MB |
| Inference Latency (CPU) | <6 ms | 3 ms ★ |
REPRODUCIBLE CODE SNIPPET
Execute this benchmark locally
import onnxruntime as ort
import numpy as np
# Load 200KB ONNX model
session = ort.InferenceSession("pico_type_v02.onnx")
raw_bytes = np.frombuffer("def calculate_tax(amount): return amount * 0.18".encode("utf-8"), dtype=np.uint8)
inputs = {"input_bytes": raw_bytes[np.newaxis, :512]}
outputs = session.run(None, inputs)
print("Detected Language:", outputs[0]) # Output: Python in <6msInterested in deploying pico-type?
We assist enterprises with custom fine-tuning, hardware sizing, and on-premise air-gapped installation.