hraness commited on
Commit
38d1d32
·
verified ·
1 Parent(s): d625e95

Mirror approved model release minilm-l6-v4-20260928

Browse files
README.md ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ license: mit
4
+ pipeline_tag: text-classification
5
+ base_model: nreimers/MiniLM-L6-H384-uncased
6
+ tags:
7
+ - onnx
8
+ - ai-text-detection
9
+ ---
10
+
11
+ # Botfilter
12
+
13
+ [Botfilter](https://botfilter.io) is a browser extension that scores English text for “likely AI-written” as a calibrated probability, on the device. A score can be wrong and should not be used as proof of authorship.
14
+
15
+ Each `releases/<version>/` directory contains the ONNX model, the WordPiece vocabulary, the calibration settings, and a lockfile with SHA-256 checksums. Use all files from the same version. The extension’s [inference implementation](https://github.com/hraness/botfilter/tree/main/extension/src) defines preprocessing, window aggregation, and calibration; these files do not provide a Transformers pipeline.
16
+
17
+ ## minilm-l6-v4-20260928
18
+
19
+ - Base: `nreimers/MiniLM-L6-H384-uncased` (MIT), fine-tuned as a two-class classifier. 22.7M parameters, weight-only int8, 23.6 MB.
20
+ - Input: text folded with normalizer 2 (plain quotes and dashes, look-alike letters mapped to Latin), then WordPiece tokens in up to two 256-token windows, the start and the end of the text. The score is the mean logit margin across windows.
21
+ - Output: `calibration.json` holds the temperature that turns the margin into a probability, and margin thresholds for three settings, Fewer, Balanced, and More, for texts of 25–80 words and longer texts. Texts under 25 words are not scored.
22
+
23
+ ### Training data
24
+
25
+ Human text: openly licensed news articles from Common Pile (only documents whose metadata records CC BY 4.0), Foodista food blog posts (CC BY 3.0), UK Parliament Hansard debates, and messages crowdworkers wrote in Anthropic's HH-RLHF dataset (MIT). AI text: 6,443 generations from eight Apache-2.0 or MIT open models run by the project (Qwen3, Phi-4, Mistral 7B and Small 24B, OLMo 2, SmolLM3) and seven API models (GPT-6 Sol, GPT-5.5, GPT-5.6 Terra, Claude Sonnet 5, Claude Opus 5.5, Claude Haiku 4.5, Mistral Medium 3.5), written in the same registers as the human text.
26
+
27
+ ### Evaluation
28
+
29
+ Sealed test split, Balanced setting, measured once after the thresholds were set:
30
+
31
+ | Text | Flagged as likely AI-written |
32
+ | --- | ---: |
33
+ | Human news, blog, parliamentary, and chat text | 0.1–0.4% |
34
+ | Human Reddit posts, never trained on | 0.7% |
35
+ | Human work email, never trained on | 1.3% |
36
+ | Human GitHub discussion and web pages, never trained on | 2.0–2.2% |
37
+ | AI text from the eight open models | 94% |
38
+ | AI text from Granite 3.3 and Gemini 3.8 Flash, never trained on | 97% and 88% |
39
+ | AI text from Claude Sonnet 5, Opus 5.5, Haiku 4.5 | 82% |
40
+ | AI text from GPT-6 Sol, GPT-5.5, GPT-5.6 Terra | 65% |
41
+
42
+ ### Limits
43
+
44
+ AI-written posts under 80 words are harder: 82% of short AI social posts are flagged at Balanced. Human posts from X and LinkedIn were not available with suitable rights, so false-positive rates there are unmeasured. Text that a person and a model both edited is often missed. Non-English text is out of scope.
45
+
46
+ ## Attribution
47
+
48
+ Contains Parliamentary information licensed under the [Open Parliament Licence v3.0](https://www.parliament.uk/site-information/copyright-parliament/open-parliament-licence/). Trained on CC BY 4.0 news articles from the [Common Pile news collection](https://huggingface.co/datasets/common-pile/news) and CC BY 3.0 posts by [Foodista](https://huggingface.co/datasets/common-pile/foodista) contributors, and on [Anthropic HH-RLHF](https://huggingface.co/datasets/Anthropic/hh-rlhf) (MIT).
49
+
50
+ [Source and extension](https://github.com/hraness/botfilter) · [Project website](https://botfilter.io)
releases/minilm-l6-v4-20260928/botfilter.int8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:246b83ee064796b456851e933c2cdc639fd4de5b497177d557bccad628c63941
3
+ size 23626443
releases/minilm-l6-v4-20260928/calibration.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "modelVersion": "minilm-l6-v4-20260928",
3
+ "temperature": 0.9113,
4
+ "minWords": 25,
5
+ "maxTokens": 256,
6
+ "shortMaxWords": 80,
7
+ "thresholds": {
8
+ "short": {
9
+ "fewer": 3.4553,
10
+ "balanced": 3.1101,
11
+ "more": 0.7015
12
+ },
13
+ "long": {
14
+ "fewer": 3.1421,
15
+ "balanced": 2.07,
16
+ "more": -0.5932
17
+ }
18
+ },
19
+ "normalizer": 2
20
+ }
releases/minilm-l6-v4-20260928/model.lock.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "minilm-l6-v4-20260928",
3
+ "release": "model-minilm-l6-v4-20260928",
4
+ "files": {
5
+ "vocab.txt": {
6
+ "sha256": "07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3",
7
+ "bytes": 231508
8
+ },
9
+ "calibration.json": {
10
+ "sha256": "868d105a1459d20056afb07477aab174452c232538613e0ad6bba636316e56a9",
11
+ "bytes": 320
12
+ },
13
+ "botfilter.int8.onnx": {
14
+ "sha256": "246b83ee064796b456851e933c2cdc639fd4de5b497177d557bccad628c63941",
15
+ "bytes": 23626443
16
+ },
17
+ "fixtures.json": {
18
+ "sha256": "f322786b504f2a6bea18db696ec17611f59da34a299daf67aa3185bd1b70ec21",
19
+ "bytes": 46441
20
+ }
21
+ }
22
+ }
releases/minilm-l6-v4-20260928/vocab.txt ADDED
The diff for this file is too large to render. See raw diff