/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
pico_type · dense
Библиотека
pico-type
Опубликована
17 июн 2026

pico-type

Классификация текстаТекст → label12 профессий

Компактный байтовый классификатор для определения типа, подтипа, модальности и языковых характеристик текста и файлов.

61скачиваний за 30 дней3лайкавеса обновлены18 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

pico-type — компактная модель классификации содержимого от eulogik. Она принимает необработанные байты и за один проход определяет тип и модальность содержимого, подтип, язык кода или текста, MIME-тип и признаки риска. Токенизатор не требуется, поэтому модель рассчитана на разные языки и форматы данных.

Модель использует байтовые эмбеддинги, параллельные свёртки Conv1D и двунаправленное внимание с RoPE. Доступны четыре варианта размерностью от 1,43 до 1,56 млн параметров; веса представлены в формате ONNX FP32. В README заявлены размер файла около 9 МБ и инференс примерно за 18 мс на CPU, а также варианты применения на периферийных устройствах, в браузере и серверless-средах.

Модель подходит для автоматической маркировки текста и файлов, определения языков программирования и текста, MIME-типа и флагов риска. README отмечает, что точность распознавания некоторых языков кода ниже из-за малого числа обучающих примеров. Лицензия — Apache-2.0.

Сценарии применения

  • классификация содержимого буфера обмена
  • определение языка программирования во фрагменте кода
  • определение языка текста
  • распознавание MIME-типа файла
  • выявление признаков риска в содержимом

Ограничения

В README отмечена пониженная точность для языков программирования с малым числом обучающих примеров. Показатели точности приведены для синтетической оценки и не гарантируют качество на произвольных реальных данных.

Для каких профессий подходит12

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

pico-type 🔍

A tiny byte-level multi-head content classifier — ~1.5M params, ~9MB single-file ONNX (FP32), ~18ms CPU inference.

Classifies any content from raw bytes: coarse type · modality · subtype · code language · text language · file MIME · risk flags

License Python PyPI ONNX CI HuggingFace Space HuggingFace Model


✨ Features

  • No tokenizer — operates directly on raw UTF-8 bytes (supports all languages, no preprocessing)
  • 7 heads, one forward pass — coarse type, modality, subtype, code language, text language, file MIME, risk flags
  • 4 Matryoshka tiers — tiny (16d) → small (64d) → base (192d) → pro (576d) — same trunk, accuracy scales with dim
  • ~9MB single-file ONNX (FP32) — deploy on edge devices, serverless, browser (WebAssembly/ONNX Runtime Web)
  • ~18ms inference on CPU via ONNX Runtime
  • CLI, Python API, Gradio Space, MCP server — ready to use

📊 Evaluation

Overall Accuracy (v2 — trained on real data)

HeadClassesAccuracyDataset
coarse12100%Synthetic eval
modality8100%Synthetic eval
subtype2493.8%Synthetic eval
code_lang6260.3%The Heap — 24 real-world langs, 1,200 samples
text_lang3098.3%Wikipedia — 30 langs, 1,500 samples
file_mime90100%Synthetic eval
risk (mAP)6100%Synthetic eval

v0.1 baseline (synthetic-only): code_lang 3%, text_lang 19%. Real-data training in v2 improves code by 57pp and text by 79pp.

Code Language — Per-Language Accuracy

Excellent (90%+)Good (70–89%)Needs Work (<50%)
cpp 96%, dart 98%, erlang 98%, rust 98%, r 94%, swift 92%, python 88%, lua 88%go 86%, ruby 86%, ocaml 84%, php 78%, csharp 76%, java 76%, kotlin 76%, c 62%perl 50%, haskell 24%, scala 4%, javascript 2%, clojure 0%, elixir 0%, julia 0%, sql 0%

Note: Low-accuracy languages have fewer real training samples. More data will improve them.

🚀 Quick Start

Install

pip install picotype

CLI

# Classify from stdin
echo "def hello(name):\n    return f'Hi {name}'" | picotype --pretty

# Classify a file
picotype --file document.txt

# Classify clipboard content
picotype --clip

# All 4 tiers available
echo "..." | picotype --tier pro

Python API

from picotype import load_onnx_model, run_onnx

session = load_onnx_model("base")
result = run_onnx(session, "def hello(): pass")
print(result)
# {
#   "coarse": "code",
#   "code_language": "python",
#   "modality": "textual",
#   "confidence": 0.98,
#   ...
# }

MCP Server (for Claude Desktop, Cursor, etc.)

pip install picotype
PICOTYPE_MODEL_DIR=./checkpoints python -m model.pico_type.mcp_server

Then add to your MCP config:

{
  "mcpServers": {
    "pico-type": {
      "command": "python",
      "args": ["-m", "model.pico_type.mcp_server"],
      "env": { "PICOTYPE_MODEL_DIR": "./checkpoints" }
    }
  }
}

Gradio Web UI

Try it live: huggingface.co/spaces/eulogik/pico-type

🏗 Architecture

Bytes ─▶ ByteEmbed(256→96d) ─▶ 3×Conv1D(k=3,5,7) ─▶ 2×BiAttention(RoPE) ─▶ Pool ─▶ 7×Matryoshka Heads
ComponentDetail
ByteEmbedLookup-free embedding — each byte value (0–255) maps to a learned 96-dim vector
Conv1D3 parallel depthwise convolutions (kernel widths 3, 5, 7) with residual + layer norm
BiAttentionBidirectional self-attention with Rotary Position Embeddings (RoPE), 4 heads
PoolMean + max + std deviation concatenation → fixed-size representation
HeadsMatryoshka-style: slice pool dim to 16/64/192/576, project to 7 linear classifiers

Total parameters: 1.43M (tiny) / 1.45M (small) / 1.48M (base) / 1.56M (pro)

🔧 Model Tiers

TierDimParamsONNX SizeAccuracy Multiplier
tiny161.43M9.09 MB0.65×
small641.45M9.13 MB0.82×
base1921.48M9.25 MB1.0× (reference)
pro5761.56M9.61 MB1.05×

ONNX sizes are single-file FP32 exports (graph-only files are 203–206 KB).

All tiers share the same backbone; only the final linear projection layers differ. Higher-tier models use more dimensions for finer-grained classification.

🧪 Classification Heads

HeadClassesWhat It Detects
coarse12text, code, link, image, file, config, markup, data, error, secret, archive, binary
modality8textual, binary_image, binary_archive, binary_executable, binary_document, etc.
subtype24json, yaml, toml, csv, html, markdown, sql, log, dockerfile, makefile, etc.
code_lang62python, javascript, typescript, java, c, cpp, go, rust, ruby, php, swift, kotlin, and 50 more
text_lang30en, es, fr, de, it, pt, nl, ru, zh, ja, ko, vi, th, id, and 15 more
file_mime90application/json, image/png, video/mp4, font/ttf, application/wasm, and 84 more
risk6api_key, jwt, password, email, phone, ssh_key

🌐 Deployment

PlatformLinkNotes
HuggingFace Spaceeulogik/pico-typeGradio web UI, no GPU needed
HuggingFace Modeleulogik/pico-typeONNX models + export metadata
GitHubeulogik/pico-typeSource code, training, paper
PyPIpip install picotypePython package
ONNX RuntimeUse with onnxruntime.jsBrowser/Node.js deployment

📚 Resources

  • Paper — Architecture, training, and evaluation details
  • Model Card — Detailed architecture and training configuration
  • Walkthrough — Development log and decisions
  • Architecture Plan — Original design document

📄 License

Apache 2.0


Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pico-type

Нельзя запустить

Архитектура pico_type неизвестна transformers в образе рантайма.

Класс архитектуры
PicoType
Ревизия весов
4609453

0 моделей