事前学習データの作り方 — Webから教科書品質へ
「大量のWebデータで学習した」の一行の裏には、本文抽出・品質フィルタ・重複除去・混合比という4つの工程がある。CommonCrawlという砂利の山から教科書品質の文章を選り分ける仕組みを、MinHashの式から現場で触るパラメータ名まで1から解説する。
The Pile: An 800GB Dataset of Diverse Text for Language Modeling
一次資料 — この記事の根拠
この解説の公開 2026-08-26
The Pile: An 800GB Dataset of Diverse Text for Language ModelingarXiv:2101.00027論文ページ·PDFDeduplicating Training Data Makes Language Models BetterarXiv:2107.06499論文ページ·PDF
The RefinedWeb Dataset for Falcon LLMarXiv:2306.01116論文ページ·PDF
Scaling Data-Constrained Language ModelsarXiv:2305.16264論文ページ·PDF
砂金採りの話から始める
モデルカードには「大量のWebデータで事前学習した」と一行あるだけです。その裏には、たいてい数ヶ月分の地味な選別工程が隠れています。
川で砂金を採る作業を思い浮かべてください。バケツ一杯の砂利を水に沈めて揺すり、軽い砂を流し、重い粒だけを残す。事前学習データのパイプラインがやっているのはこれで、違うのは砂利が数百テラバイトあることだけです。同じアーキテクチャ・同じ計算量でも、食べさせたデータが違えば出来上がるモデルは別物になります。
素材 — CommonCrawlという砂利の山
Web全体を自前でクロールできる組織は多くありません。多くのモデルの出発点は、非営利団体 Common Crawl が公開しているWebアーカイブです。おおむね毎月1回の巡回結果(snapshot)が公開され、1回あたり数十億ページ規模になります。
配布形式は3つ。WARC(HTTPのやり取りの生ログ。HTMLがそのまま入る)、WAT(メタデータだけ)、WET(タグを外した素朴なテキスト)です。
一番手軽なのはWETですが、ここが最初の分岐点になります。WETの抽出は、ナビゲーションメニューも著作権表示も広告も区別なくテキスト化します。本文が3行のページから200行のメニューが取れてしまう。だから品質にこだわるデータセット(FalconのRefinedWeb、HuggingFaceのFineWeb)はWETを捨て、WARCのHTMLから trafilatura のような本文抽出ツールでやり直します。上流の抽出品質が、全工程の天井になります。
桁を掴んでおく
必要なトークン量の目安はスケーリング則を1から解説のとおり、パラメータ1つあたり20トークン前後。一方RefinedWebの報告では、URLフィルタ→本文抽出→言語判定→品質フィルタ→重複除去を通すと元の1割前後しか残りません。9割は捨てる前提で組みます。
もう一つの壁が計算量です。10億文書を総当たりで比べれば比較回数は約5×1017回。1秒に10億回比較できても15年以上かかります。
O(n²)が無理だと分かった時点で方向は決まります。総当たりをやめ、似ている候補だけを先に絞る。
第1の関門: 品質フィルタ
本文を取り出したら、次は「読むに値する文章か」を判定します。下にいくほど賢く、そして重くなります。
(1) URLレベル — ドメインのブロックリストでアダルト・スパム・自動生成サイトを丸ごと落とす。1バイトも読まずに済む最安の工程です。
(2) 言語判定 — fastText の言語識別モデルでスコアを出し、閾値を超えたものだけ残す。RefinedWebは英語のスコア0.65以上が条件です。閾値を上げると純度は上がりますが、コード混じりの技術文書や多言語ページが落ちやすくなります。
(3) ルールベース — DeepMindのGopher論文が公開したフィルタ群が事実上の標準です。単語数が極端、平均単語長が3〜10文字を外れる、記号と単語の比率が高すぎる、行の大半が箇条書き記号で始まる、基本的なストップワード(the, be, to, of, and, that, have, with)が2語も含まれない、といった条件で落とします。
このルール群は、内容の良し悪しを判定していません。見ているのは「壊れた文書の形」です。キーワードを羅列したSEOページ、文字化け、商品リストだけのページは、読まなくても形で分かります。
(4) 統計・学習ベース — CCNetはWikipediaで訓練した5-gram言語モデル(KenLM)でパープレキシティを測り、文書を3層に振り分けました。さらに進むと分類器を使います。GPT-3は人手でキュレートされたテキストを正例、素のCommonCrawlを負例として分類器を訓練。FineWeb-EduはLLMに「教育的価値があるか」を採点させ、その採点で軽量な分類器を訓練して1.3Tトークンを抽出しました。副題の「教科書品質へ」はこの流れです。
コメント
コメントにはログインが必要です