📘

FineWeb : decanting the web for the finest text data at scale

2024/06/03に公開

https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1

要約

このテクニカルレポートは大規模言語モデルの学習に使用する高品質なウェブテキストデータセット FineWeb の作成方法について詳細に説明している

  1. CommonCrawl のテキストデータを抽出しベースフィルタリングを行った

  2. MinHash を用いて各クロールデータの重複を個別に除去した。これによりデータ品質が向上した

  3. C4 データセットで使用されているフィルターや独自のフィルターを適用することで更なる品質向上を図った

  4. 最終的に 15 兆トークンからなる FineWeb データセットを構築した。これは他のオープンデータセットよりも優れたパフォーマンスを示した

  5. Llama-3-70B-Instruct を用いて教育的品質のアノテーションを行い、分類器を学習させることで FineWeb から教育的に高品質な部分集合 FineWeb-Edu を抽出した

  6. FineWeb-Edu は MMUL や ARC などの教育ベンチマークにおいて他のすべてのデータセットを上回る性能を示した

  7. またクロールごとのベンチマーク性能の違いや最近のクロールデータに合成データが増えている可能性についても考察している

Introduction

  • 大規模言語モデル (LLM) の性能は事前学習データセットの品質とサイズに大きく依存する
  • 最先端のオープン LLM の学習データセットは公開されておらず、その作成方法もほとんど知られていない
  • 15兆トークン (44TB) の新しい大規模データセット 🍷 FineWeb を紹介する
    • 96 の CommonCrawl スナップショットから派生
    • 他のオープンな事前学習データセットよりも優れたパフォーマンスの LLM を生成
  • FineWeb のデータ重複除去やフィルタリング戦略などの設計選択について詳細に説明・検証する
  • 教育的価値を目的とし、高品質アノテーションを用いて FineWeb から構築された 📚 FineWeb-Edu についても紹介
    • MMLU, ARC, OpenBookQA などの教育ベンチマークで公開されている全ウェブデータセットを上回る性能を示す
  • このブログでは以下の内容を扱う :
    • 大規模データの処理と品質評価
    • 🍷 FineWeb の設計方針とその説明
    • 📚 FineWeb-Edu サブセットの作成プロセス

Web data

Finding the raw data

  • Web データを収集する際は自前でクローリングするか CommonCrawl などの公開リポジトリーを使用する選択肢がある
  • 🍷 FineWeb では CommonCrawl (CC) を出発点として使用した。CC は毎月 200-400TiB のテキストコンテンツを含む新しいクロールをリリースしている

Processing at scale

  • データ処理の際はモジュール性とスケーラビリティーを持つコードベースが重要
  • 🍷 FineWeb の作成ではオープンソースのデータ処理ライブラリー datatrove を開発・使用しフィルタリングと重複排除を何千もの CPU コアにスケールさせた

What is good data?

  • 大規模言語モデルの学習におけるデータの「高品質」は明確に定義されておらず人間の直接観察だけでは判断が難しい
  • データセットを評価するには小規模モデルを代表的なサブセットで学習させ diverse かつ representative な評価タスクセットでテストするのが一般的
  • 人間による評価が最も信頼できるがコストと時間がかかるため小規模モデルによる評価を品質の代理指標として用いる

Ablations and evaluation setup

  • 処理ステップの影響を比較するため、あるステップの有無で 2 つのデータセットを作成し、それぞれで学習したモデルを同じタスクで評価・比較した
  • 評価タスクは CommonSense QA, HellaSwag, OpenBook QA, PIQA, SIQA, WinoGrande, ARC, MMLU を使用。小規模学習でも十分なシグナルが得られるよう選定した

The 🍷 FineWeb recipe

Starting point : text extraction

  • CommonCrawl の WARC ファイルから trafiltura ライブラリーを使用してテキストを抽出
  • WET ファイルを直接使用するよりも品質が向上

Base filtering

  • 成人向けコンテンツのブロックリストを使用した URL フィルタリング
  • fastText の言語分類器で英語のテキストのみを抽出(スコア ≥ 0.65)
  • MassiveText の品質・反復フィルターを適用
  • フィルタリング後、約 36 兆トークンのデータが得られた

Deduplicating the data

  • MinHash を使用して各ダンプ内の重複を個別に除去
  • 全ダンプを一括で重複排除するよりも個別に行う方が性能が向上
  • 重複排除後、約 20 兆トークンのデータが得られた

Additional quality filtering

  • C4 データセットで使用されているフィルター(lorem ipsum, JavaScript, ポリシールールなど)を適用
  • 独自の品質フィルターを追加 :
    • 句読点で終わる行の割合が 0.12 以下のドキュメントを削除
    • 重複行の文字の割合が 0.1 以上のドキュメントを削除
    • 30 文字未満の行の割合が 0.67 以上のドキュメントを削除

The final 🍷 FineWeb dataset

  • 最終的な 🍷 FineWeb データセットは上記の手順を経て完成
  • 15兆トークンからなり他のオープンデータセットよりも優れたパフォーマンスを示す

📚 FineWeb-Edu

  • FineWeb から教育的に高品質な部分集合を抽出したデータセット
  • 🍷 FineWeb や他のオープンウェブデータセットを上回る性能を示す

Annotating for educational quality at scale

  • Llama-3-70B-Instruct を使用して FineWeb から 50 万サンプルに教育的品質スコア (0-5) を付与
  • 教育スコアの自動抽出には additive scale が最適であることを確認
  • 高校・中学レベルの知識に焦点を当てることで技術的なページの優先度を下げた

Training a classifier

  • Llama3-70B のアノテーションを使用して小規模な分類器を学習
  • Snowflake-arctic-embed モデルにクラス分類ヘッドを追加
  • スコアを 0-5 の整数に丸めて閾値 3 でバイナリー分類問題に変換

Filtering and results

  • 学習した分類器を FineWeb の 15 兆トークンに適用
  • 閾値 3 を使用すると全体として最良の結果が得られた
  • 閾値 3 でフィルタリングした結果 1.3 兆トークンの非常に高度な教育的コンテンツデータセット📚 FineWeb-Eduが完成
  • 閾値 2 でフィルタリングした 5.4 兆トークンの高度な教育的コンテンツデータセットも公開

Bonus : CommonCrawl over time

フィルタリングのステップを検証している間に特定のクロールデータが他のものよりも著しく優れた性能を示すことに気づいた

Benchmark performance by crawl

  • 各クロールデータについてベースフィルタリングと MinHash の重複排除後のデータから 270 億トークンをサンプリングし 1.8B モデルを 2 つ学習させた
  • 合計 192 のモデルを学習させ 6 万時間以上の GPU 時間を要した
  • 一部のダンプは他のものよりもはるかに低い性能を示すことが明らかになった

Synthetic data

  • 最近のクロールデータの高い性能が LLM によって生成された合成データの増加に起因している可能性について検討した
  • 合成データを検出する確実な方法がないため ChatGPT でよく使用されるフレーズの頻度を代理指標として測定した
  • 2023 年以降のクロールデータでこれらのフレーズの頻度が急激に増加していることがわかった
  • ChatGPT の生成物などの合成データが最新のクロールの品質を大幅に低下させているとは言えないが少なくとも大きな悪影響は与えていないと考えられる
  • ただし合成データの割合は今後も増加すると予想されるため大規模な学習における影響については不明である

Conclusion and looking forward

著者らはオープンサイエンスの取り組みを通じて高性能な大規模言語モデルの学習における「ブラックボックス」に光を当て続け、すべてのモデル開発者に最先端の LLM を作成する能力を提供したいと考えている。今後も FineWeb の改良を重ねウェブデータのより良いフィルタリング済みサブセットを完全にオープンかつ再現可能な方法で公開していく予定である

短期的には FineWeb から得られた知見を英語以外の言語に応用することを楽しみにしている。現在 LLM の世界では英語が支配的だが他の言語の高品質ウェブデータをできるだけアクセスしやすくすることは非常に大きな影響があると考えている

要約すると:大規模データセットの作成方法を研究する未来は明るくエキサイティングである 🤗

https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1/tree/main
https://huggingface.co/datasets/HuggingFaceFW/fineweb
https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu
https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu-score-2

Discussion