Skip to main content

provost-model

The tiny language model behind provost's --model, packaged on its own so provost itself stays small.

provost turns command output into tidy datasets. When its parsers can't read a capture cleanly, --model asks a learned layout model which lines are headers, rows, key/value pairs or sections, and where each field starts. Every value is still cut from the input; the model only decides where. provost ships small decision trees for this. This package carries a better reader: a pretrained language model fine-tuned on provost's own labels.

Install

pip install provost[lm]          # provost, numpy and this package

or, beside an existing provost:

pip install provost-model        # pulls in numpy

provost finds it on its own: with provost-model installed and PROVOST_LAYOUT_LM unset, provost --model labels with this model instead of the trees.

  • PROVOST_LAYOUT_LM=0 keeps the trees.
  • PROVOST_LAYOUT_LM=DIR uses another model directory.
  • provost runs the model under the Python it was installed with; when that differs, set PROVOST_PYTHON to the interpreter that has this package.

No torch, transformers or GPU is needed: provost runs the model with numpy alone (extract/model/lm_numpy.py).

What's in it

provost_model.MODEL_DIR is a directory holding:

file what it is
config.json the shape of the model, its format (provost-lm-numpy/1) and where it came from
tokenizer.json SmolLM2's byte-level BPE tokenizer, read by provost's bpe.py
weights-1.npz … weights-3.npz the weights, 95 MB in three shards

The model is SmolLM2-135M (Apache-2.0):

  • fine-tuned with a LoRA adapter and two small heads on Claude's labels of provost's 3,674-capture corpus;
  • cut to its first 18 of 30 layers, with the adapter merged in;
  • stored at 8 bits per weight, one scale per row.

provost's ml/export_lm.py builds this directory from a model ml/train_lm.py trains.

How good it is

Per line, five-fold cross-validation on held-out tool families. The score is how often a line's field split matches the reference label (14,468 lines in all):

reader split hand-labelled lines
provost's parsers 0.814 189/287
provost's shipped trees 0.819 212/287
this model (18 layers) 0.862 246/287

The 8-bit export matches the float model:

  • on fold 0, the 30-layer model scores 0.863 in float and 0.863 exported;
  • on provost's round-4 benchmark (107 captures, rated blind), this model rates exactly as its float original does.

What it costs to run: about 280 MB of memory and a 0.5 s load. It takes under a second per capture on 4 CPU cores, and longer for a capture of hundreds of long lines.

On whole captures it is a second reader, not a replacement for provost's parsers. That is why provost only asks it about a capture the quality gate would otherwise hold.

Details: provost's docs/lm-2026-10-29-tiny-labeller.md.

Releasing

.github/workflows/release.yml publishes to PyPI by Trusted Publishing, with no API token, when a GitHub release is published or the workflow is run by hand.

  • Set it up once on PyPI: project provost-model, owner MartinGallagher-code, repository provost_model, workflow release.yml, environment pypi.
  • For each release:
    1. bump __version__ in src/provost_model/__init__.py and add a CHANGELOG.md entry;
    2. merge;
    3. publish a GitHub release tagged vX.Y.Z.

Licence

Apache-2.0, as the base model is; see LICENSE and NOTICE. provost itself is GPL-3.0-or-later.

Metadata

Release files for provost-model 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for provost-model 0.1.0
File Size Uploaded Provenance Actions
provost_model-0.1.0.tar.gz 85.0 MB With provenance Details for provost_model-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for provost-model 0.1.0
File Interpreter ABI Platform Actions
provost_model-0.1.0-py3-none-any.whl Python 3 none any Details for provost_model-0.1.0-py3-none-any.whl

Total release size: 170.0 MB

Release files / provost_model-0.1.0.tar.gz

Download URL provost_model-0.1.0.tar.gz
Size 85.0 MB
Tags Source
SHA-256 checksum
How to use checksums
18babd11bfb5611b1b00f0ff1351b191530c1428c8395cf6640301e075713f0a
BLAKE2b-256 checksum
How to use checksums
d1fae412107755dcb62f34caa5a4d9dda291aa5c18d9085a30a75f71ec64af05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / provost_model-0.1.0-py3-none-any.whl

Download URL provost_model-0.1.0-py3-none-any.whl
Size 85.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f8fadde7a0303c622c3929db8eb95bdf7eead10d5003e8613ba729b830c61a92
BLAKE2b-256 checksum
How to use checksums
f42bc6b6db71c88ec67501e919a6eb667f1c73c883a13c22203650b2ac473972
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for provost-model 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for provost_model-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page