AIパーソナル・ラーニング
と実践的なガイダンス
資源推薦1

Crawl4LLM:LLM事前学習のための効率的なウェブクローリングツール

はじめに

Crawl4LLMは、清華大学とカーネギーメロン大学が共同で開発したオープンソースプロジェクトで、大規模モデル(LLM)の事前学習のためのウェブクローリングの効率最適化に焦点を当てている。高品質なウェブページデータをインテリジェントに選択することで、非効率なクロールを大幅に削減し、事前学習効果を維持しながら、本来100のウェブページをクロールする必要がある作業負荷を21まで削減できるとしている。Crawl4LLMの中核は、モデル学習用のウェブページの価値を評価し、有用なコンテンツを優先的に選択するデータ選択アルゴリズムにあり、すでに学者や開発者コミュニティから注目を集めている。

Crawl4LLM:LLM事前学習のための効率的なウェブクローラ-1


 

機能一覧

  • インテリジェントなデータ選択大規模モデルの事前学習において、ウェブページの影響力に基づいて価値の高いコンテンツをフィルタリングする。
  • 複数のクローリングモードCrawl4LLMモード、ランダムクローリングなど、様々なニーズに柔軟に対応します。
  • 効率的なクローリング・エンジンマルチスレッドと最適化された設定を使用して、クロール速度を大幅に向上させます。
  • データの抽出と保存クロールしたウェブページのIDとテキストコンテンツを、モデルの学習に使用できるファイルとして保存します。
  • 大規模データセットのサポートClueWeb22のようなデータセットと互換性があり、学術研究や産業用途に適しています。
  • 設定のカスタマイズスレッド数や最大文書数などのクローリングパラメータはYAMLファイルで調整される。

 

ヘルプの使用

設置プロセス

Crawl4LLMはPythonをサポートする環境で動作させる必要があります。詳しいインストール手順は以下の通りです:

  1. 環境準備
    • Python 3.10以降がシステムにインストールされていることを確認してください。
    • 依存関係の衝突を避けるために仮想環境を作成する:
      python -m venv craw4llm_env
      source craw4llm_env/bin/activate # Linux/Mac
      craw4llm_env スクリプト起動 # Windows
      
  2. クローンプロジェクト
    • GitHubからソースコードをダウンロードする:
      git clone https://github.com/cxcscmu/Crawl4LLM.git
      cd Crawl4LLM
      
  3. 依存関係のインストール
    • 以下のコマンドを実行して、必要なライブラリをインストールする:
      pip install -r requirements.txt
      
    • 注:依存関係ファイルには、クローラーの実行に必要なすべてのPythonパッケージがリストアップされているので、ネットワークが良好であることを確認すること。
  4. ソーターをダウンロード
    • このプロジェクトでは、ウェブページの品質を評価するためにDCLM fastText分類器を使用しています。 fasttext_scorers/ カタログ
    • パスの例:fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin.
    • 公式リソースまたは関連リンクから入手可能。
  5. データセットの準備
    • ClueWeb22のデータセットを使用している場合は、アクセスを要求してSSDに保存する必要があります(設定にパスを指定する必要があります)。

使用方法

Crawl4LLMの操作は主にコマンドラインを通して行われ、設定、クロール、データ抽出の3つのステップに分かれている。以下に詳細なフローを示す:

1.クローリングタスクを設定する

  • ある コンフィグ ディレクトリにYAMLファイルを作成する(例えば my_config.yaml)、内容の例:
    cw22_root_path: "/path/to/clueweb22_a"
    seed_docs_file: "seed.txt"
    output_dir: "crawl_results/my_crawl"
    num_selected_docs_per_iter:10000件
    num_selected_docs_per_iter: 10000
    max_num_docs: 20000000
    selection_method: "dclm_fasttext_score"
    order: "desc"
    selection_method: "dclm_fasttext_score" order: "desc" wandb: false
    selection_method: "dclm_fasttext_score" order: "desc" wandb: false
    - タイプ: "length"
    - タイプ: "fasttext_score"
    評価名: "dclm_fasttext_score"
    model_path: "fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin"
  • パラメータの説明::
    • cw22_root_pathClueWeb22 データセットのパス。
    • seed_docs_ファイル最初のシード文書リスト。
    • 労働者数機械性能に合わせて調整されたスレッド数。
    • max_num_docsクロールするドキュメントの最大数。
    • 選択メソッドデータ選択方法、推奨 dclm_fasttext_score.

2.クローラーの実行

  • クロールコマンドを実行する:
    python crawl.py crawl --config configs/my_config.yaml
    
  • クロールが完了すると、ドキュメントIDが 出力先 を指定されたパスの下にあるファイルに追加する。

3.文書内容の抽出

  • クロールされたドキュメントIDをテキストに変換するには、以下のコマンドを使用します:
    python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
    
  • 出力はテキストファイルで、その後のモデル学習に直接使用できる。

4.個別文書の閲覧

  • 特定の文書とそのリンクをチェックする必要がある場合は、実行することができます:
    python access_data.py /path/to/clueweb22
    

注目の機能操作

  • インテリジェントなウェブページ選択
    • Crawl4LLMの中核はデータフィルタリング機能である。FastText分類器を使い、ウェブコンテンツの長さと質を評価し、モデルのトレーニングに有用なページを優先します。ユーザーが手動でフィルタリングする必要はなく、最適化は自動的に行われます。
    • 方法: YAMLコンフィギュレーションを 選択メソッド というのも dclm_fasttext_scoreモデルパスが正しいことを確認してください。
  • マルチスレッド・アクセラレーション
    • とおす 労働者数 パラメーターでスレッド数を調整できる。例えば、16コアのCPUの場合、計算資源をフルに活用するために16に設定することができる。
    • 注:スレッド数が多いとメモリがオーバーフローする可能性があります。
  • 大規模クローリングのサポート
    • このプロジェクトは、ClueWeb22のような非常に大規模なデータセット用に設計されており、何十億ものウェブページを処理する必要がある研究シナリオに適している。
    • アクションの提案:データをSSDに保存してI/Oパフォーマンスを確保する。 max_num_docs は目標とする文書数(例えば2000万件)。

ヒントとコツ

  • デバッグとロギングイネーブル wandb: true クローリングプロセスを記録することで、効率を簡単に分析することができる。
  • ストレージの最適化クロール結果は大きいので、十分なディスク容量(例えば数百GB)を確保することをお勧めします。
  • 拡張機能DCLMフレームワークと組み合わせることで、抽出されたテキストは大規模なモデルの事前学習に直接使用することができます。

以上のステップにより、ユーザーはCrawl4LLMを使用して、効率的なウェブデータのクロールと事前学習プロセスの最適化をすぐに開始することができます。

コンテンツ1
無断転載を禁じます:チーフAIシェアリングサークル " Crawl4LLM:LLM事前学習のための効率的なウェブクローリングツール

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語