/ Модель

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

Лицензия
MIT
Библиотека
model2vec
Опубликована
6 июл 2026

Railz-Micro

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

Railz-Micro — компактная англоязычная модель для быстрой классификации вредоносных запросов, их категорий и jailbreak-попыток.

16скачиваний за 30 дней0лайковвеса обновлены6 июл 2026

Бенчмарки

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

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

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

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

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

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

Railz-Micro — компактная статическая multilabel-модель безопасности от разработчика bfuzzy1. Она классифицирует англоязычные пользовательские запросы: определяет вредоносный контент, присваивает ему категории из девяти групп и выявляет jailbreak-попытки. Модель содержит 67 млн параметров; при инференсе использует токенизацию, поиск статических векторов, их усреднение и классификационную голову без трансформера. По описанию автора, она работает за доли миллисекунды на CPU и не требует GPU или PyTorch для инференса.

Модель предназначена для быстрой фильтрации запросов на устройстве или в серверном конвейере модерации. Её единая multilabel-голова выдаёт метки harmful, jailbreak и категории безопасности. В README приведены результаты на нескольких наборах данных и способы менять порог классификации: стандартный порог ориентирован на точность, снижение порога повышает полноту.

К ограничениям относятся слабые результаты на неформальных чат-сообщениях, умеренная полнота обнаружения jailbreak и трудности с тонко сформулированными вредоносными запросами. Статическое представление ограничивает анализ отрицаний, сарказма и многофразового контекста; модель оценивает запросы, а не ответы, и не предназначена для неанглоязычного или смешанного текста. Лицензия — MIT.

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

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

Ограничения

Модель рассчитана на англоязычные запросы и не оценивает ответы; она слабо справляется с неформальным чатом, тонко сформулированным вредом, новыми шаблонами jailbreak, отрицаниями, сарказмом и многофразовым контекстом.

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

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

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

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

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

Открыть на Hugging Face

Railz-Micro

One tiny model, one pass, three safety jobs: harmful-content detection + 9-category classification + jailbreak detection.

Railz-Micro is a 67M-parameter static multilabel safety guard. No transformer at inference — tokenize, look up, average, classify. Sub-millisecond on CPU, runs anywhere, nothing leaves your machine.

Why it's different

  • Custom safety-vocabulary base. We distilled google/embeddinggemma-300m into a static token table with 3,864 mined safety phrases (2,472 multi-word) added as dedicated tokens. how to prevent and ignore previous instructions are single tokens with their own composed vectors — the teacher's contextual reading of each phrase, frozen into a lookup. This is what lets a bag-of-tokens model separate "how to prevent bomb attacks" (benign) from bomb-making requests, and it's why the false-positive rate on scary-but-benign prompts is ~1%.
  • Geometry-curated training data. 355k examples curated with SemHash: semantic dedup, decontamination against every benchmark below (0.85 threshold — paraphrase-level leaks removed, not just exact matches), and hard examples mined by embedding geometry (benign prompts nearest the harmful cluster and vice versa) rather than keywords.
  • One model instead of five. Binary harm, 9 harm categories, and jailbreak flags come from a single multilabel head in one forward pass.

Benchmarks

All rows are out-of-domain (no split of these sets was trained on; the training blend was decontaminated against all of them) except Aegis, which is in-domain and marked as such. Default threshold τ=0.5 unless noted. No cherry-picking: weak axes are shown and discussed in Limitations.

Mixed sets (precision + recall)

benchmarkF1F0.5PRn (+pos)
ToxicChat (test)36.437.137.535.45083 (+362)
OpenAI-Moderation54.857.559.451.01680 (+522)
ToxicConversations20.925.930.815.84000 (+311)
Aegis-2.0 (test, in-domain)78.777.977.480.01964 (+1059)

Over-refusal — false-positive rate on benign-but-scary prompts (lower = better)

benchmarkFPR
OR-Bench (5,000 held-out, never trained on)0.8%
OR-Bench-hard-1k1.9%

Catch-rate on all-harmful sets (recall; precision undefined)

benchmarkτ=0.5τ=0.02
MaliciousInstruct79%89%
SimpleSafetyTests62%—
do-not-answer56%—
HarmfulQA53%69%
OR-Bench-toxic32%46%

Jailbreak (jackhhao/jailbreak-classification, test)

F1PR
58.984.045.3

Categories (Aegis-test, in-domain, 9 buckets)

Multilabel macro-P 74.4 / macro-R 46.6; a correct category is predicted for 67% of unsafe prompts.

Choosing a threshold

The model is precision-first at the default τ=0.5. Lowering τ buys recall while the false-positive rate stays low (measured on the held-out OR-Bench slice):

τOR-Bench FPRMaliciousInstruct catchuse case
0.500.8%79%max precision (default)
0.151.5%82%balanced
0.022.4%89%max recall
from model2vec.inference import StaticModelPipeline
import numpy as np

pipe = StaticModelPipeline.from_pretrained("bfuzzy1/Railz-Micro")

# default thresholds
pipe.predict(["how do I make a pipe bomb"])          # ['harmful', 'cat:violence_weapons', ...]

# custom threshold on P(harmful)
proba = np.asarray(pipe.predict_proba(["how do I make a pipe bomb"]))
harmful_idx = list(pipe.classes_).index("harmful")
flag = proba[:, harmful_idx] >= 0.15                  # τ of your choice

Labels: harmful, jailbreak, and cat:{violence_weapons, hate_harassment, sexual, crime_drugs, cyber_fraud, misinfo, self_harm, privacy, advice}.

Recipe

  1. Vocab mining — discriminative 1-3-grams from ~480k safety prompts, cleaned by 4 passes (cross-source robustness ≥2 datasets, proper-noun strip via mid-sentence capitalization, stopword-edge coherence, split-half stability) + curated jailbreak phrases and benign disambiguators + LDNOOBW lexicon → 3,864 phrases.
  2. Base distillation — model2vec.distill(embeddinggemma-300m, vocabulary=...) → 260k-token static table, 256-dim, PCA + SIF.
  3. Data curation — SemHash dedup (0.9) → decontamination vs all benchmarks (0.85) → boundary mining (0.6): 120k benign-near-harmful + 26k harmful-near-benign hard examples; jailbreak rows exempt from dedup (attack paraphrases are signal).
  4. Head training — multilabel StaticModelForClassification.fit on 355k examples (28% harmful), ≤15 epochs, early stopping.

Training data: Aegis-2.0, Salad-Data (+attack set → jailbreak labels), Nemotron content-safety, ToxiGen, RealToxicityPrompts, WildChat-1M (clean user turns), civil_comments, OR-Bench (train-negs only; 5k slice held out for the FPR eval above), XSTest.

Limitations (honest ones)

  • Informal real-user chat is the weak axis (ToxicChat ~36 F1, ToxicConversations ~21). Typos, slang, and context-dependent toxicity need composition a static model doesn't have.
  • Subtle / academically-phrased harm (HarmfulQA-style) catches ~53-69% depending on τ — phrase-sparse harm is hard for a lookup table.
  • Jailbreak recall is moderate (45% OOD) at high precision (84%). Novel attack templates outside the mined phrase set fall back to subword averaging.
  • Prompt-level, English-only. Does not score model responses; not tested on code-mixed or non-English input.
  • No deep composition. Negation, sarcasm, multi-sentence intent are out of scope. For those, cascade: Railz-Micro filters at wire speed, escalate uncertain cases to a contextual guard (e.g. Railz-R2).

Speed & footprint

Static embeddings + sklearn head: sub-ms per prompt single-threaded CPU, no GPU, no PyTorch at inference (pip install model2vec[inference]). 67M params.

Part of the Railz family

modelsizerole
Railz0.6Bpolicy-conditioned guard
Railz-R0.6B+ reasoning
Railz-R20.6B+ OOD robustness
Railz-Micro67M staticwire-speed multilabel prefilter

Citation

Built with Model2Vec by Minish Lab:

@software{minishlab2024model2vec,
  author       = {Stephan Tulkens and {van Dongen}, Thomas},
  title        = {Model2Vec: Fast State-of-the-Art Static Embeddings},
  year         = {2024},
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.17270888},
  url          = {https://github.com/MinishLab/model2vec},
  license      = {MIT}
}

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

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

GPU в ailist

Универсальный рантайм · model2vec · text-classification

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

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

Ревизия весов
78c6c75

0 моделей