Skip to page content
SAVRN
Search Plan a project

Open-weight model

smallprint-2b

by Peter Parker Peter-A-P/smallprint-2b

smallprint-2b is an open-weight model from Peter Parker, released under Apache License 2.0. It has 5.1B parameters and a 131,072-token context. At 16-bit it needs about 12.3 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

Extracts fifteen figures from the primary financial statements of a US SEC 10-K or 10-Q, as JSON. A LoRA fine-tune of google/gemma-4-E2B at revision d29ff6b45f081a49ee2733a859c9c9c2d95d1a6f, trained on filings with their XBRL facts as the labels.

Parameters5.1B
Context131,072
Weights10.2 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve smallprint-2b (5.1B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 10.2 GB 12.3 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 5.1 GB 6.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 2.6 GB 3.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

smallprint-2b on every accelerator the SAVRN Index prices, at every precision

Model Card

By Peter Parker, published under apache-2.0, revision 4eb4b9307cc0.

Extracts fifteen figures from the primary financial statements of a US SEC 10-K or 10-Q, as JSON. A LoRA fine-tune of google/gemma-4-E2B at revision d29ff6b45f081a49ee2733a859c9c9c2d95d1a6f, trained on filings with their XBRL facts as the labels. No model graded another model anywhere in producing these numbers. 705 filings. On filings published before the base model's training cutoff it scores 95.2% (94.7% to 95.5%), against 96.9% (96.5% to 97.3%) after it. That difference is the contamination gap, reported and never used as the headline. Non-inferiority field by field, paired on the same filings, a three-point margin per field and Holm's adjustment across the fifteen, decided by the…

Read Peter Parker's full model card

2b-r64-lr1e-4-nall-s0-e1

Extracts fifteen figures from the primary financial statements of a US SEC 10-K or 10-Q, as JSON. A LoRA fine-tune of google/gemma-4-E2B at revision d29ff6b45f081a49ee2733a859c9c9c2d95d1a6f, trained on filings with their XBRL facts as the labels. No model graded another model anywhere in producing these numbers.

Results, on filings published after the base model's training cutoff

This model openai/gpt-5.6-luna, zero_shot
Fields correct 96.9% (96.5% to 97.3%) 96.2% (95.8% to 96.6%)
Every field right on a filing 65.7% (62.1% to 69.1%) 58.3% (54.6% to 62.0%)
Answers that are not valid JSON 0.0% (0.0% to 0.0%) 0.0% (0.0% to 0.0%)
Cost per 1,000 extractions US$0.083 served (A40 on_demand at runpod, US$0.490/h, checked 2026-09-26; 3.29 requests a second at 32 in flight, 50% utilisation) US$1.01

705 filings. On filings published before the base model's training cutoff it scores 95.2% (94.7% to 95.5%), against 96.9% (96.5% to 97.3%) after it. That difference is the contamination gap, reported and never used as the headline.

The release gate

Non-inferiority field by field, paired on the same filings, a three-point margin per field and Holm's adjustment across the fifteen, decided by the portfolio's release gate (project 03) on this model's outcomes. A field blocks when the gate cannot rule out a three-point loss on it.

Against Verdict Fields that block Record
openai/gpt-5.6-sol block operating_income -3.5 (-5.0 to -2.1), net_income -3.4 (-5.0 to -2.0) 4bb6956e2ea1e120
openai/gpt-5.6-luna block operating_income -3.0 (-4.7 to -1.6), net_income -2.0 (-3.8 to -0.3) 85feabeb81103ba2

How it fails

Failure Count Per 1,000 fields
Invents a figure the filing does not report 218 20.6
Reads the prior-period column 13 1.2
Drops or misapplies the reporting scale 29 2.7
Reads a loss as a profit, or the reverse 3 0.3
Leaves out a figure the filing does report 17 1.6
Takes a figure from the wrong line 46 4.3
Answer is not valid JSON of the schema 0 0.0

Per field

Field Accuracy (95% CI) Misses by reason
period_end 100.0% (100.0% to 100.0%) none
fiscal_period 100.0% (100.0% to 100.0%) none
revenue 99.6% (99.0% to 100.0%) wrong_value 2, wrong_period 1
cost_of_revenue 87.7% (85.1% to 90.1%) hallucinated 70, missing 8, wrong_value 6, scale 3
operating_income 95.2% (93.6% to 96.7%) hallucinated 33, wrong_period 1
net_income 95.3% (93.6% to 96.7%) wrong_value 29, wrong_period 2, scale 1, sign 1
eps_basic 92.6% (90.6% to 94.5%) hallucinated 48, missing 2, wrong_period 2
eps_diluted 94.5% (92.6% to 96.0%) hallucinated 32, missing 3, sign 2, wrong_period 2
shares_diluted 92.5% (90.5% to 94.3%) hallucinated 34, scale 18, wrong_period 1
total_assets 99.6% (99.0% to 100.0%) scale 2, wrong_period 1
total_liabilities 99.4% (98.9% to 99.9%) scale 2, hallucinated 1, wrong_period 1
cash_and_equivalents 99.6% (99.0% to 100.0%) wrong_value 2, wrong_period 1
stockholders_equity 98.7% (97.9% to 99.4%) wrong_value 5, scale 3, wrong_period 1
auditor_name 99.7% (99.3% to 100.0%) wrong_value 2
state_of_incorporation 99.4% (98.9% to 99.9%) missing 4

Quantised formats

Each format is judged against this model's bf16 weights over the same filings, and is published only if the lower end of its paired interval is above -1.0% of field accuracy.

Format Paired delta vs bf16 (95% CI) Worst field Published
gguf-q8_0 -0.2% (-0.5% to +0.0%) fiscal_period -0.4% yes
gguf-q4_k_m -0.7% (-1.4% to -0.2%) fiscal_period -1.6% no

Training

Base google/gemma-4-E2B at d29ff6b45f081a49ee2733a859c9c9c2d95d1a6f
Method QLoRA, rank 64, alpha 128, dropout 0.05
Learning rate 0.0001, cosine, warm-up 3%
Examples 5,060 training filings, 713 validation
Epochs 1
Seed 0
Prompt fingerprint e015ec5e057be645
Steps 317
Validation loss 0.008599315769970417
Libraries accelerate 1.15.0, bitsandbytes 0.50.2, peft 0.21.0, python 3.13.15, torch 2.14.0+cu130, transformers 5.17.0, trl 1.13.0

Limitations

  • Trained and measured on US SEC 10-K and 10-Q filings under US GAAP. Nothing here says how it does on IFRS statements, on other regulators' filings, or on documents that are not financial statements.
  • Banks and savings institutions are excluded from the corpus, and funds, trusts and pre-revenue companies are underrepresented. A score here says nothing about their statements. See the dataset's datasheet.
  • The input is the located statements, not a whole filing. Given a whole filing, it has to find them first, which this model was not measured on.
  • Every label is an XBRL fact the company filed, checked to be printed on the page. The label error rate from the hand audit is the ceiling on how far any of these numbers can be trusted.

Configuration

Architecture
Gemma4ForConditionalGeneration
Context length (tokens)
131,072
Layers
35
Hidden size
1,536
Feed-forward size
6,144
Attention heads
8
Key/value heads
1
Head dimension
256
Vocabulary size
262,144
Sliding window (tokens)
512
Model type
gemma4

Identity and Version

Repository
Peter-A-P/smallprint-2b
Publisher
Peter Parker
Task
Not stated by the source
Modality
Other
Library
Not stated by the source
Parameters
5.1B parameters
Languages
sec-filings
Revision
4eb4b9307cc0d55634581c7863a723ec8812d2bc
First published
2026-09-27
Last updated
2026-10-03

Files and Weights

10 files, 10.2 GB in total. The weights are 1 file totalling 10.2 GB in safetensors.

Weights1 file · 10.2 GB
Configuration4 files · 7.7 KB
Tokenizer2 files · 32.2 MB
Documentation1 file · 5.5 KB
Other1 file · 18.6 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights10.2 GB 81ffce00dec9
config.jsonConfiguration5.2 KB —
generation_config.jsonConfiguration93 B —
merge.jsonConfiguration711 B —
processor_config.jsonConfiguration1.7 KB —
README.mdDocumentation5.5 KB —
chat_template.jinjaOther18.6 KB —
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer32.2 MB 12bac982b793
tokenizer_config.jsonTokenizer1.5 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
10.2 GB
Download from Peter Parker

Released by Peter Parker through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published10.2 GB
16-bit10.2 GB
8-bit5.1 GB
4-bit2.6 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Built on This Model

Questions About smallprint-2b

How much GPU memory does smallprint-2b need?

About 12.3 GB at 16-bit and 3.1 GB at 4-bit: the weights (5.1B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run smallprint-2b on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use smallprint-2b commercially?

Yes. smallprint-2b is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is smallprint-2b's context length?

131,072 tokens, from the maximum position embeddings in its published configuration.