| --- |
| license: cc-by-sa-4.0 |
| language: |
| - en |
| pipeline_tag: token-classification |
| tags: |
| - part-of-speech-tagging |
| - morphological-analysis |
| - lemmatization |
| - universal-dependencies |
| - executorch |
| - english |
| - modernbert |
| - on-device |
| --- |
| |
| # Prism English (prism-en) |
|
|
| English UPOS tagging, morphological features, and lemmatization with |
| **calibrated confidences**, built for **on-device, fully offline** use. |
| A compact 18.0 M-parameter model on a ModernBERT-lineage (Ettin) |
| backbone β the same artifact contract and native runtimes as |
| [`prism-no`](https://huggingface.co/dmlux/prism-no), now for English. |
|
|
| This repository mirrors the versioned release artifacts of the |
| [Prism project](https://github.com/dmlux/Prism). Prism ships native |
| runtimes for **Swift, C++, C, and Java/Kotlin** that read these |
| artifacts directly. **Requires the language-independent Prism runtimes, |
| library 0.6.0 or later.** |
|
|
| ## Which folder to use |
|
|
| | Folder | Size | What it is | |
| | --- | ---: | --- | |
| | `prism-en-0.1.0/` | β 94 MB | fp32 reference model | |
|
|
| This first English release ships a single precision (fp32). There is |
| no int8 `-fast` variant yet: ModernBERT's rotary-embedding indexing |
| does not lower cleanly through the int8 path, and a fast variant is |
| planned. |
|
|
| An application bundles the folder as-is. It is everything a Prism |
| runtime needs; point the tagger API at its local path: |
|
|
| ```swift |
| let tagger = try PrismTagger(artifactURL: artifactFolder) // Swift |
| ``` |
| ```cpp |
| prism::tagger::Tagger tagger("prism-en-0.1.0"); // C++ |
| ``` |
| ```java |
| try (var tagger = PrismTagger.load(Path.of("prism-en-0.1.0"))) {} // Java |
| ``` |
|
|
| Quick starts for every binding: the |
| [project README](https://github.com/dmlux/Prism#quick-start). The |
| artifact contract (programs, `model.ptd` weights, tokenizer and label |
| schemas, checksums) is documented in |
| [docs/INTEGRATION.md](https://github.com/dmlux/Prism/blob/main/docs/INTEGRATION.md). |
|
|
| **Note:** these are [ExecuTorch](https://pytorch.org/executorch) |
| programs with the decoding policy and calibration baked in β not |
| `transformers`-loadable checkpoints. `vocabulary.json` is a standard |
| Hugging Face `tokenizer.json` (the ModernBERT tokenizer) and loads with |
| the `tokenizers` library. |
|
|
| ## Quality |
|
|
| Measured on the UD English-EWT **test** split with the official UD |
| metrics, against UDPipe 2.17: |
|
|
| | Test F1 | prism-en 0.1.0 | UDPipe 2.17 | |
| | --- | ---: | ---: | |
| | UPOS | 97.29% | **97.65%** | |
| | UFeats | 97.71% | **98.16%** | |
| | Lemmas | 97.36% | **97.99%** | |
|
|
| Competitive on EWT web text β within ~0.4β0.6 pp of UDPipe β from an |
| 18 M-parameter model that runs fully offline on a laptop CPU. The |
| Ettin-400m teacher beats UDPipe on all three metrics; distilling down |
| to the 18 M student gives up ~0.5 pp, a deliberate later-optimization |
| target (0.1.0 ships the current student so English is available now). |
|
|
| ## Model description |
|
|
| An 18.0 M-parameter encoder student on |
| [`jhu-clsp/ettin-encoder-17m`](https://huggingface.co/jhu-clsp/ettin-encoder-17m) |
| (a 7-layer ModernBERT-lineage encoder, hidden 256), distilled from the |
| Ettin-encoder-400m teacher, with a character CNN feeding the morphology |
| and lemma heads, a structured morphology decoder, and per-head |
| temperature calibration. Label spaces: **18 UPOS Β· 21 morphology |
| features Β· 1,632 lemma edit rules**; **50,368** byte-level BPE subwords. |
| Full technical reference: |
| [docs/ARCHITECTURE.md](https://github.com/dmlux/Prism/blob/main/docs/ARCHITECTURE.md). |
|
|
| ## Training data and attribution |
|
|
| - **Gold treebank:** [UD English-EWT](https://github.com/UniversalDependencies/UD_English-EWT) |
| (revision `c5baffde`, UD 2.17) by the Universal Dependencies |
| contributors β CC BY-SA 4.0. (The GUM treebank is deliberately |
| **excluded**: its CC BY-NC-SA license is incompatible with this |
| release.) |
| - **Silver corpora** (unlabeled running text, labeled offline by the |
| Prism teacher; the text itself is not redistributed): Project |
| Gutenberg (public domain) and English Wikipedia (Wikimedia |
| contributors β CC BY-SA 4.0). |
| - **Backbone:** [`jhu-clsp/ettin-encoder-17m`](https://huggingface.co/jhu-clsp/ettin-encoder-17m) |
| and its Ettin-encoder-400m teacher by the JHU CLSP group β MIT. |
|
|
| Pinned revisions and checksums travel inside the artifact |
| (`manifest.json`, `LICENSES/`). |
|
|
| ## License |
|
|
| Model weights: **CC BY-SA 4.0** β the same share-alike license as the |
| UD English-EWT gold annotations. Using or bundling the unmodified |
| artifact β including commercially, in closed-source applications β is |
| fine (keep the `LICENSES/` attribution); redistributed modified weights |
| must stay open. Prism source code is Apache 2.0. |
|
|