--- license: apache-2.0 library_name: transformers pipeline_tag: token-classification tags: - html - content-extraction - web-scraping - boilerplate-removal - encoder - eurobert - rag base_model: EuroBERT/EuroBERT-610m language: - en metrics: - rouge ---

Pulpie Orange

Pulpie Orange Base

Pareto-optimal main-content extraction from HTML.
610M-parameter encoder · 0.863 ROUGE-5 F1 on WebMainBench · the balanced Pulpie model.

GitHub · Blog · PyPI

--- **Pulpie Orange Base** extracts the main content from raw HTML, stripping navigation, ads, sidebars, and footers. It is an encoder that labels every HTML block as content or boilerplate in a single forward pass, so it approaches state-of-the-art extraction quality while running far faster and cheaper than autoregressive extractors. At 610M parameters it sits between [Orange Small](https://huggingface.co/feyninc/pulpie-orange-small) and [Orange Large](https://huggingface.co/feyninc/pulpie-orange-large), scoring 0.863 ROUGE-5 F1. For most use cases Orange Small offers a better speed/quality trade-off; choose Base when you want a little more headroom than Small without the cost of the 2.1B teacher. ## Usage The easiest way to use this model is through the [`pulpie`](https://pypi.org/project/pulpie/) package: ```bash pip install pulpie ``` ```python from pulpie import Extractor extractor = Extractor(model="orange-base") result = extractor.extract(html) print(result.markdown) # clean Markdown print(result.html) # clean HTML print(result.n_main, result.n_other) # blocks kept vs dropped ``` `Extractor` auto-detects CUDA, Apple MPS, then CPU. See the [GitHub README](https://github.com/feyninc/pulpie) for batch and multi-GPU usage. ## How it works Pulpie runs a four-stage pipeline: 1. **Simplify** — remove scripts, styles, and formatting noise; tag each block with a unique ID. 2. **Chunk** — pack blocks into sequences of up to 8,192 tokens separated by `<|sep|>` markers (~80% of pages fit in one chunk). 3. **Classify** — a single encoder forward pass labels every block (at its `<|sep|>` position) as content or boilerplate. 4. **Reconstruct** — return the kept blocks as HTML, or convert to Markdown. This model is a token-classification head over [EuroBERT-610m](https://huggingface.co/EuroBERT/EuroBERT-610m), distilled from the 2.1B [Pulpie Orange Large](https://huggingface.co/feyninc/pulpie-orange-large) teacher (KL-divergence 0.7 + hard-label cross-entropy 0.3, temperature 2.0). ## Benchmarks WebMainBench, English subset (6,647 pages), ROUGE-5 F1: | Model | Params | ROUGE-5 F1 | Throughput (L4) | |-------|--------|------------|-----------------| | [Pulpie Orange Large](https://huggingface.co/feyninc/pulpie-orange-large) | 2.1B | 0.873 | 1.3 pages/sec | | Dripper | 0.6B | 0.864 | 0.68 pages/sec | | **Pulpie Orange Base (this model)** | **610M** | **0.863** | **3.9 pages/sec** | | [Pulpie Orange Small](https://huggingface.co/feyninc/pulpie-orange-small) | 210M | 0.862 | 13.7 pages/sec | | magic-html | - | 0.700 | - | | Trafilatura | - | 0.619 | - | Full analysis in the [blog post](https://usefeyn.com/blog/pulpie-pareto-optimal-models-for-cleaning-the-web/). ## Model family | Model | Params | ROUGE-5 F1 | Use case | |-------|--------|------------|----------| | [pulpie-orange-small](https://huggingface.co/feyninc/pulpie-orange-small) | 210M | 0.862 | **Recommended** — best value, fastest | | [pulpie-orange-base](https://huggingface.co/feyninc/pulpie-orange-base) | 610M | 0.863 | Balanced | | [pulpie-orange-large](https://huggingface.co/feyninc/pulpie-orange-large) | 2.1B | 0.873 | Highest quality (teacher) | ## Acknowledgements Pulpie builds directly on the work of the MinerU-HTML and Dripper team (Ma et al., 2025). Their `simplify_html` preprocessing, block-level annotation scheme, and the WebMainBench benchmark are foundational to this work. Built on [EuroBERT](https://huggingface.co/EuroBERT) (Boizard et al., 2025). ## Citation ```bibtex @note{pulpie2026, title = {Pulpie: Pareto-Optimal Models for Cleaning the Web}, author = {Minhas, Bhavnick and Nigam, Shreyash and Feyn Research}, year = {2026}, venue = {Feyn Field Notes} } ``` Built by [Feyn](https://usefeyn.com). Model weights and the [pulpie](https://pypi.org/project/pulpie/) library are licensed under Apache 2.0.