--- license: apache-2.0 language: - de - en metrics: - f1 - accuracy base_model: - jhu-clsp/mmBERT-small pipeline_tag: text-classification tags: - document-classification - topic-classification - dlp - data-loss-prevention - compliance - security - llm-security - ai-safety - ai-agent-security - patronus - multilingual - modernbert - onnx --- # Model Card for Orca Sonar Document Classifier **Multilingual Document Topic Classifier for Real-World AI Security & DLP** **Read more** - Blog post (EN): [Orca-Sonar: Our Multilingual Document Classifier for AI Security](https://patronus.studio/en/posts/orca-sonar-our-multilingual-document-classifier-for-ai-security) - Blogbeitrag (DE): [Orca-Sonar: unser mehrsprachiger Dokumenten-Klassifikator für AI-Security](https://patronus.studio/posts/orca-sonar-mehrsprachiger-dokumenten-klassifikator) - Blog post (EN): [Our AI-Security Model Zoo Is Now Open Source](https://patronus.studio/en/posts/our-ai-security-model-zoo-is-now-open-source) - Blogbeitrag (DE): [Unser AI-Security-Model-Zoo ist jetzt Open Source](https://patronus.studio/posts/unser-ai-security-model-zoo-ist-open-source) - Product page: [Patronus AI models](https://patronus.studio/product/ai-models) Orca-Sonar is a Multilingual ModernBERT-based ([mmBERT](https://huggingface.co/blog/mmbert)) classifier that assigns a document/text to one of **9 topic classes**. It is part of the Patronus Protect security stack and is designed for topic-/risk-routing of incoming texts (e.g. before they reach an LLM, a DLP gate, or a storage tier). It classifies German and English text and is robust to **user-to-AI wrappers** (e.g. *"Summarize this contract: …"*), i.e. the *topic* of the content determines the class, not the surface format of the request. ## Intended Uses The model maps an input text to one of: | id | label | description | |---|---|---| | 0 | `legal` | contracts, NDAs, ToS/AGB, privacy policies, statutes/judgments, compliance, legal correspondence | | 1 | `hr` | CVs, job ads, employment contracts, terminations, HR policies, performance reviews, recruiting | | 2 | `finance` | invoices, balance sheets, quarterly/annual reports, cash-flow, SEC filings, forecasts | | 3 | `internal_and_tech` | ADRs, RFCs, postmortems, specs, READMEs, wikis, architecture & strategy memos, runbooks | | 4 | `source_code` | raw program code & configs (Python/Go/Rust/JS/TS/SQL/Bash/Dockerfile/k8s/Terraform …) | | 5 | `marketing` | press releases, newsletters, landing-page/sales copy, outbound pitches, case studies | | 6 | `other` | conversational / non-business: smalltalk, recipes, travel, hobby, learning, creative | | 7 | `education` | curricula, course materials, transcripts, grades, assignments, and academic records | | 8 | `medical` | clinical notes, diagnoses, treatments, medications, and healthcare records | **Disambiguation:** on a tie, the more sensitive class wins: `legal > hr > finance > internal_and_tech > source_code > marketing > other`. ## Limitations - Highly accurate on German and English; other languages were not actively tested. - The model can produce false positives; for high-stakes routing combine it with a confidence/abstention gate. - Robustness against adversarial / out-of-distribution / pure-PII / pathological-length inputs is partial; pair the model with a deterministic pre-gate (length + PII) for production DLP use. ## Model Variants - **orca-sonar**: full model (`model.safetensors`, fp32). - **orca-sonar-fp16 (ONNX)**: FP16 ONNX export under `onnx/onnx_fp16/`, half the size, argmax-faithful to the full model. # Training Data Trained on our own in-house dataset (German + English, 9 topic classes), purpose-built for this model. **The dataset will be published soon.** # Benchmark Held-out test set (**100 % real data**), per-class F1: | Metric | Score | |---|---| | **Accuracy** | **0.942** | | **F1 (macro)** | **0.940** | | F1 medical | 0.961 | | F1 education | 0.957 | | F1 marketing | 0.956 | | F1 finance | 0.948 | | F1 source_code | 0.945 | | F1 other | 0.943 | | F1 legal | 0.942 | | F1 internal_and_tech | 0.930 | | F1 hr | 0.877 | # Usage ```python from transformers import pipeline clf = pipeline("text-classification", model="patronus-studio/orca-sonar-document-classifier") clf("Fasse mir diesen Dienstleistungsvertrag zusammen: Laufzeit 24 Monate, Gerichtsstand München …") # -> [{'label': 'legal', 'score': 0.99}] ``` ## ONNX An FP16 ONNX version is available under `onnx/onnx_fp16/`: ```python import torch from optimum.onnxruntime import ORTModelForSequenceClassification from transformers import AutoTokenizer model_id = "patronus-studio/orca-sonar-document-classifier" tokenizer = AutoTokenizer.from_pretrained(model_id) model = ORTModelForSequenceClassification.from_pretrained(model_id, subfolder="onnx/onnx_fp16") inputs = tokenizer("def add(a, b):\n return a + b", return_tensors="pt") logits = model(**inputs).logits print(model.config.id2label[int(torch.argmax(logits, dim=-1))]) ``` ## Citation ```bibtex @misc{orcasonar2026, title={Orca-Sonar: Multilingual Document Topic Classification for Real-World AI Security}, author={Patronus Protect}, year={2026}, howpublished={\url{https://huggingface.co/patronus-studio/orca-sonar-document-classifier}} } ``` ## License This model is released under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). A copy of the license is included as `LICENSE` in this repository. The model is derived from [jhu-clsp/mmBERT-small](https://huggingface.co/jhu-clsp/mmBERT-small), which is distributed under the **MIT License**. The upstream copyright and permission notice are retained; the MIT terms continue to apply to the portions originating from that work. ## Patronus Ark This model is built to run inside **[Patronus Ark](https://github.com/patronus-protect/patronus-security)**, Patronus' open-source on-device AI-security scanning library (L1 native rules → L2 NTDB cascade → L3 transformer). Ark is open source: [GitHub repository](https://github.com/patronus-protect/patronus-security) · [product page](https://patronus.studio/product/security-lib). ## More information - Blog post (EN): [Orca-Sonar: Our Multilingual Document Classifier for AI Security](https://patronus.studio/en/posts/orca-sonar-our-multilingual-document-classifier-for-ai-security) - Blogbeitrag (DE): [Orca-Sonar: unser mehrsprachiger Dokumenten-Klassifikator für AI-Security](https://patronus.studio/posts/orca-sonar-mehrsprachiger-dokumenten-klassifikator) - Blog post (EN): [Our AI-Security Model Zoo Is Now Open Source](https://patronus.studio/en/posts/our-ai-security-model-zoo-is-now-open-source) - Blogbeitrag (DE): [Unser AI-Security-Model-Zoo ist jetzt Open Source](https://patronus.studio/posts/unser-ai-security-model-zoo-ist-open-source) - Product page: [Patronus AI models](https://patronus.studio/product/ai-models) - Patronus Ark, the open-source scanning library this model runs in: [GitHub](https://github.com/patronus-protect/patronus-security) · [product page](https://patronus.studio/product/security-lib) - Patronus Protect, the on-device AI firewall: [patronus.studio](https://patronus.studio) --- ## 🛡️ Patronus Protect Brought to you by **[Patronus Protect](https://patronus.studio)**, a local AI firewall that secures every AI interaction (prompts, tools, documents) before it reaches your models. **Try it for free at [patronus.studio](https://patronus.studio).**