rishanthrajendhran's picture
Card: remove the access-request prompt (the repo is not gated)
c00074f verified
|
Raw History Blame Contribute Delete
3.39 kB
---
license: cc-by-nc-sa-4.0
base_model: answerdotai/ModernBERT-large
library_name: transformers
language:
- en
tags:
- ai-text-detection
- prose-provenance
datasets:
- rishanthrajendhran/WildOutlines
---
# ProseLens-ModernBERT-L
ProseLens-ModernBERT-L is a prose-level detector: it reads the document itself and judges **who wrote the words**. It is the ModernBERT counterpart of [ProseLens](https://huggingface.co/rishanthrajendhran/ProseLens) and the comparison point for the idea-level detectors.
| | |
|---|---|
| Model | ModernBERT-large with a sequence-classification head |
| Reads | the document text itself |
| Training data | [WildOutlines](https://huggingface.co/datasets/rishanthrajendhran/WildOutlines), train split |
| Output | P(human); a document is flagged as AI when P(human) is below a cut |
| Default cut | 0.18790 (global, 1% false-positive rate) |
| Hardware | any GPU; a CPU works for small jobs |
## Usage
Score documents directly; no outline is needed. The [idealens](https://github.com/RishanthRajendhran/IdeaLens) package ([PyPI](https://pypi.org/project/idealens/)) applies this model and the thresholds in this repo:
```bash
pip install "idealens[hf]"
idealens score docs.jsonl -o scores.jsonl --model ProseLens-ModernBERT-L
```
Input is JSONL with a `text` field per document.
In Python:
```python
import idealens as il
with il.Detector("ProseLens-ModernBERT-L") as det:
records = det.score_documents([open("document.txt").read()])
print(records[0]["p_human"], records[0]["verdict"]["ai"])
```
## Thresholds
`thresholds.json` holds this model's cuts at 0.1%, 0.5%, 1%, 2% and 5% false-positive rates, fitted on the 80,000 human
documents of WildOutlines' `calibration` split: one global cut per rate, plus per-format cuts. The package applies them. A cut
fitted for one model does not transfer to another model's scores. For documents unlike English web text, fit cuts on
human documents from your own domain with `idealens calibrate`.
## Related
- [IdeaLens](https://huggingface.co/rishanthrajendhran/IdeaLens): the main idea-level detector, with full documentation
- [ProseLens](https://huggingface.co/rishanthrajendhran/ProseLens): its prose-level counterpart
- [idealens](https://github.com/RishanthRajendhran/IdeaLens): the Python package that runs these models
- [WildOutlines](https://huggingface.co/datasets/rishanthrajendhran/WildOutlines): the training corpus
- [IdeaLens collection](https://huggingface.co/collections/rishanthrajendhran/idealens-6abee785ce6196fc0be9200f): every model and dataset in one place
## License
[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/): free to share and adapt for non-commercial
purposes, with attribution and under the same license. Built on [answerdotai/ModernBERT-large](https://huggingface.co/answerdotai/ModernBERT-large) (Apache 2.0).
## Citation
```bibtex
@article{idealens2026,
title = {IdeaLens: Detecting AI Ideas in Long-form Writing},
author = {Rajendhran, Rishanth and Choi, Minjoon and Russell, Jenna and Namuduri, Ramya and B{\"o}l{\"o}ni-Turgut, Deniz and Karpinska, Marzena and Wieting, John and Iyyer, Mohit},
journal = {arXiv preprint arXiv:2610.06778},
year = {2026},
eprint = {2610.06778},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2610.06778}
}
```