Pulpie: Webのクリーニングのためのパレート最適モデル
Pulpie: Webのクリーニングのためのパレート最適モデル
Pulpieは、ナビゲーション、広告、フッターなどのボイラープレートを除去することで、HTMLページからメインコンテンツを抽出する、パレート最適モデルのファミリーです。デコーダーではなくエンコーダーアーキテクチャを利用することで、Pulpieは、Dripperのような主要な抽出器と比較してコストを最大20倍削減しながら、最先端(SOTA)の抽出品質を実現します。
LLMのトレーニングと推論のための高インパクトなデータクリーニング
クリーンなデータは、大規模言語モデル(LLM)の事前トレーニングと推論の両方のフェーズにおいて極めて重要です。研究によれば、モデルベースの抽出は、ヒューリスティックベースの手法がデータを破損させることが多いコードブロックや数式のような構造化されたコンテンツを保持する上で、ヒューリスティックベースの手法を大幅に上回ります。
Ma et al., 2025によると、抽出器の改善だけで、モデルの精度に測定可能な利得をもたらすことができます。モデルによって抽出されたコーパスでトレーニングされたモデルは、13のベンチマークにおいて平均精度が1.08パーセントポイント高くなり、FineWebやRefinedWebのような高度にフィルタリングされたコーパスでトレーニングされたモデルを上回りました。
推論時、コンテキストウィンドウ内のノイズはモデルの回答を妨げる可能性があります。単一の無関係な一節が精度と効率を低下させるため、RAGパイプラインには高品質なクリーニングが不可欠です。
アーキテクチャの転換:帯域幅制限から計算量制限へ
Pulpieの効率性の向上は、そのアーキテクチャに由来します。Dripperのような既存の抽出器は、ラベルを1トークンずつ出力するデコーダーを使用しており、帯域幅制限を受けやすく高コストです。一方、Pulpieは、すべてのHTMLブロックを単一のフォワードパスでラベル付けするエンコーダーを使用します。これにより、ボトルネックがメモリ帯域幅から計算量へとシフトし、現代のGPU上でより効率的に動作します。
このアーキテクチャの違いは、NVIDIA L4のような安価なGPUで特に顕著です。L4上では、pulpie-orange-smallは1秒間に13.7ページを処理し、Dripperの0.68ページ/秒と比較して圧倒的な差があります。これは、10億ページ規模にスケールアップする場合、莫大なコスト差をもたらします。
| Setup | Pages/sec (L4) | Cost / 1B pages (L4) | | :--- | :--- | :--- | | | Pulpie Small | 13.7 | ~$7,900 | | Dripper | 0.68 | ~$159,000 |
モデルファミリーとパフォーマンス・ベンチマーク
Pulpieは、教師モデルと2つの蒸留された生徒モデルで構成されています。すべてのモデルはEuroBERTに基づいて構築されており、<|sep|>ブロックマーカーアーキテクチャを使用しています。
モデル仕様
| Model | Parameters | ROUGE-5 F1 | Notes |
|---|---|---|---|
| Pulpie Orange Large | 2.1B | 0.873 | Teacher model |
| Pulpie Orange Base | 610M | 0.863 | Distilled from Large |
| Pulpie Orange Small | 210M | 0.862 | Recommended for production |
品質比較
WebMainBench Englishサブセットにおいて、Pulpie Orange Smallは、サイズの三一分の一でありながら、Dripperの品質(0.862 vs 0.864 ROUGE-5 F1)に匹敵します。また、PulpieはDripperよりも長いページをより良く処理します。Pulpieはブロックを8,192トークンチャンクにまとめるため、Dripperが135ページで空の結果を返してしまう原因となる32kトークンコンテキストウィンドウの失敗に陥ることがありません。
トレーニングと蒸留パイプライン
Pulpieモデルは、16,670のEnglish Common Crawlページから作成された高品質な合成データセットを使用してトレーニングされました。各ページはMinerU-HTMLを使用してブロックに分割され、DeepSeek V3.2によってコンテンツまたはコンテンツ-ボイラープレートとしてラベル付けされました。ラベルの品質を確保するため、ラベルはDripper 0.6Bとクロスバリデーションされ、2つのラベル付け器が少なくとも70%のブロックについて一致したページのみを保持しました。
- Teacher Training: EuroBERT-2.1Bモデルは、不均衡(コンテンツ率28.6%)に対処するため、クラス重み付きクロスエントロピーを使用して、検証済みデータセット上でファインチューニングされました。 | 2. Distillation: 2.1Bの教師モデルは、KL-divergence loss (weighted 0.7) と hard-label cross-entropy (0.3) を、温度 2.0 で組み合わせることで、Base (610M) と Small (210M) モデルへと蒸留されました。
実装と使用法
PulpieはPythonパッケージとして利用可能であり、Hugging Faceでオープンソース化されています。ユーザーは、速度と品質の精度のバランスに基づいて、モデルのサイズを選択できます。
from pulpie import Extractor
# Defaults to Pulpie Orange Small
extractor = Extractor()
result = extractor.extract(html)
print(result.markdown) # Clean markdown output
For bulk processing, the Pipeline class allows overlapping CPU preprocessing with GPU inference:
from pulpie import Extractor, Pipeline, PageInput
pipeline = Pipeline(model="small")
results = pipeline.extract_batch(
[PageInput(html=h, page_id=i) for i, h in enumerate(pages)]
)
コミュニティ・フィードバック
リリースは、そのアーキテクチャの洞察力について称賛を受けていますが、一部のコミュニティメンバーは、単純なCSSセレクターやMarkdownコンバーターよりも、モデルベースの抽出が必要であるか疑問を呈しています。しかし、著者が提供するデータによれば、Trafilaturaのようなヒューリスティックベースのツールは、Pulpie Orange Small (0.862) と比較して ROUGE-5 F1 (0.619) が大幅に低く、ウェブスケールでのクリーニングにおける品質の差を浮き彫りにしています。