Downloads · 30 days
0
DotCheck/valla-text-v14_3
valla-text-v14_3 is a text classification model from DotCheck. Use it when you need a label for a piece of text. It is set up for dotcheck. The card lists the license as apache-2.0.
[email protected] is a text detector. It maps a UTF-8 string and an explicit lang code to \(p \in [0,1]\), an estimate of \(P(\mathrm{AI})\) for the writing, not for the truth of the claim.
Downloads · 30 days
0
Access
Public
Updated Sep 6, 2026
Repo size
28.4 KB
Likes
0
Public
Click a slice to open those files.
.npz28.4 KB · 54%
From the Hugging Face model README
[email protected] is a text detector. It maps a UTF-8 string and an explicit lang code to (p \in [0,1]), an estimate of (P(\mathrm{AI})) for the writing, not for the truth of the claim.
Latin writing shares Rask and Comenius plus a named tiny per language. Chinese is Ma Jianzhong 2.2, independent of that trio. Ancestor Hub ids sit in the bases table and YAML base_model only.
en, es, pt, fr, it, de, nl): Rask + Comenius + named tiny (Sweet, Bello, Ribeiro, Littre, Ascoli, Grimm, Vries), then a 4-parameter stack (p=\sigma(w_0 z_r + w_1 z_c + w_2 \delta + b)) at cut 0.5.zh): Ma Jianzhong 2.2.Unsupported lang fails closed (unsupported_language). There is no silent English fallback. Traditional-Chinese-dominant input is not scored (und).
| Field | Value |
|---|---|
| Hub id | DotCheck/valla-text-v14_3 |
| English wire | inhouse-text@14 |
| Public token | [email protected] |
| English artifact | text_stack_head_v14_3_en.npz |
| Latin bases | Oxidane/tmr-ai-text-detector (MIT), intfloat/e5-small (MIT), prajjwal1/bert-tiny (MIT) |
| Rollback bases | fakespot-ai/roberta-base-ai-text-detection-v1 (Apache-2.0) — Valla rollback @12 |
| Chinese base | hfl/chinese-macbert-base (Apache-2.0) |
| Heads | text_stack_head_v14_3_{en,es,pt,fr,it,de,nl}.npz + zh_v2_2 |
lang | en|zh|es|pt|fr|it|de|nl (pt uses the Portuguese 14.3 head; zh = Simplified Chinese) |
| Output | (p \in [0,1]) — estimated (P(\mathrm{AI})) |
| Serve | CPU FastAPI POST /v1/analyze-text with required lang |
Text is cleaned (TC1) before hashing and scoring: wiki-style citations stripped, whitespace collapsed, #category tokens dropped. The same cleaner is used in Express and the extension.
Latin languages share one Rask forward and one Comenius forward per packed unit, then a language-specific tiny and stack. Chinese loads Ma Jianzhong only when text_stack_head_zh_v2_2.npz is present. Shared towers are not safe for concurrent forwards: the text lane serializes GEMMs.
In this repo: README.md, LICENSE, NOTICE, CITATION.cff, and the eight .npz heads listed above. Upstream encoder checkpoints are not redistributed here.
text + lang
→ TC1 clean
→ if lang in {en, es, pt, fr, it, de, nl}:
Rask + Comenius + named tiny
(Sweet, Bello, Ribeiro, Littre, Ascoli, Grimm, Vries)
→ p = sigma(w0 zr + w1 zc + w2 delta + b)
→ if lang == zh:
Ma Jianzhong
→ else: unsupported_language (no score)
→ p
Open weights: the live .npz heads in this repository (Apache-2.0), used with the frozen upstream bases named above. This is not a transformers AutoModel package.
Product scoring: Check or Pro API. Hub storefront: see-whats-real.
Minimum length and fair-use caps are product policy at Express, not properties of the heads.
English fit AI is commercial-clean self-generation (Qwen2.5-7B, Mistral-7B, and Grok-4.5). Holdout AI is a smaller disjoint generator (Qwen2.5-1.5B; encyclopedic-heavy). English humans are a warehouse sample: Gutenberg.org windows 40%, Wikipedia 35%, WikiText 25%, sliced to 520–1100 characters. Other Latin languages keep their prior wiki / WikiText / Gutenberg mixes. Chinese humans are Wikipedia, modern prose, and books (OpenCC t2s). Chinese fit AI is grok-4.6, Qwen2.5-7B, and Mistral-7B (encyclopedic / everyday / assistant_chat). Chinese exam AI is Yi-1.5-6B + SmolLM2 (encyclopedic; n=400 human / 480 AI). No NC datasets. No published holdout scraped from live ChatGPT or Claude.
| English | Other Latin | Chinese (zh-Hans) | |
|---|---|---|---|
| Fit AI | Qwen2.5-7B + Mistral-7B + Grok-4.5 | Qwen2.5-7B + Mistral-7B | grok-4.6 + Qwen2.5-7B + Mistral-7B |
| Holdout AI | Qwen2.5-1.5B | Qwen2.5-1.5B | Yi-1.5-6B + SmolLM2 (400/480 encyclopedic) |
| Human | Gut 40 / wiki 35 / WT 25 | wiki / WikiText / Gutenberg | Wikipedia + modern + books (OpenCC t2s) |
Evidence files: text_public_exam_v12.json (public EN), text_gates_v12.json (cousin jsonl, not public), text_gates_{lang}.json.
Absolute floors on every language head: human mean (P(\mathrm{AI}) \le 0.12), AI mean (\ge 0.85), balanced accuracy (\ge 0.90), all at threshold (0.5).
| Metric | Floor | Measured |
|---|---|---|
| mean (P(\mathrm{AI})) | human | (\le 0.12) | 0.029 |
| mean (P(\mathrm{AI})) | AI | (\ge 0.85) | 0.984 |
| balanced accuracy | (\ge 0.90) | 0.979 |
Public English floats are RAID-lite overall (Wikipedia blocks; news is observed only). The frozen jsonl holdout is one-lab Qwen-1.5B and is not the public claim. Rank-first beat of @11 on that holdout still holds (BEAT_V11_HOLDOUT_OK). Canary/style v2 remain watches.
| Lang | Person | Wire | Human | AI | bal_acc |
|---|---|---|---|---|---|
| zh | Ma Jianzhong | inhouse-text-zh_v2 | 0.047 | 0.922 | 0.954 |
| es | Bello | inhouse-text-es@14 | 0.029 | 0.993 | 0.982 |
| fr | Littre | inhouse-text-fr@14 | 0.021 | 0.990 | 0.978 |
| pt | Ribeiro | inhouse-text-pt@14 | 0.042 | 0.964 | 0.958 |
| de | Grimm | inhouse-text-de@14 | 0.034 | 0.966 | 0.978 |
| it | Ascoli | inhouse-text-it@14 | 0.016 | 0.943 | 0.972 |
| nl | Vries | inhouse-text-nl@14 | 0.056 | 0.963 | 0.950 |
Portuguese lang=pt uses the Portuguese 14.3 head.
Out of scope: languages outside {en, zh, es, pt, fr, it, de, nl}; Traditional Chinese; plagiarism, factual verification, or authorship; a product SLA from the Hub files alone.
zh is Simplified Chinese (Ma Jianzhong). Other scripts and Traditional-Chinese-dominant text are out of domain: no score, no English fallback.LICENSE — Apache License 2.0 for DotCheck heads in this repository. Upstream bases: NOTICE.
CITATION.cff · wire inhouse-text@14 / [email protected] · https://dotcheck.ai/docs