DotCheck/valla-text-v14_3
Valla@14.3 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.
- Latin group (
en,es,pt,fr,it,de,nl): Rask + Comenius + named tiny (Sweet, Bello, Ribeiro, Littré, 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. - Chinese group (
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 | Valla@14.3 |
| 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 |
Model description
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.
Architecture
text + lang
→ TC1 clean
→ if lang in {en, es, pt, fr, it, de, nl}:
Rask + Comenius + named tiny
(Sweet, Bello, Ribeiro, Littré, Ascoli, Grimm, Vries)
→ p = sigma(w0 zr + w1 zc + w2 delta + b)
→ if lang == zh:
Ma Jianzhong
→ else: unsupported_language (no score)
→ p
Inference
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.
Minimum length and fair-use caps are product policy at Express, not properties of the heads.
Training data
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.
Evaluation
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).
English (public claim)
| 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.
Other language heads (same floors)
| 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 | Littré | 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.
Intended use
- Reproduce the eight heads and the holdout tables.
- Research on synthetic-text detection in the eight supported languages.
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.
Limitations
- Latin holdout AI is Qwen2.5-1.5B, disjoint from fit. Chinese exam AI is Yi-1.5-6B + SmolLM2 (encyclopedic). Live ChatGPT, Claude, and other closed generators are not a published holdout row.
- Short, heavily edited, or machine-translated text has higher variance on this stack.
zhis Simplified Chinese (Ma Jianzhong). Other scripts and Traditional-Chinese-dominant text are out of domain: no score, no English fallback.
License
LICENSE — Apache License 2.0 for DotCheck heads in this repository. Upstream bases: NOTICE.
Citation
CITATION.cff · wire inhouse-text@14 / Valla@14.3 · https://dotcheck.ai/docs
Model tree for DotCheck/valla-text-v14_3
Collection including DotCheck/valla-text-v14_3
Evaluation results
- mean_P_AI_human on RAID-lite EN (ABS 520–1100)text_public_exam_v12.json / Data.json0.029
- mean_P_AI_ai on RAID-lite EN (ABS 520–1100)text_public_exam_v12.json / Data.json0.984
- balanced_accuracy on RAID-lite EN (ABS 520–1100)text_public_exam_v12.json / Data.json0.979