Crawl4LLM: ein Web-Crawler für das LLM-Pretraining 195

小编 ·

Crawl4LLM: ein Web-Crawler für das LLM-Pretraining

Crawl4LLM ist ein Web-Crawler, der gemeinsam von der Tsinghua-Universität und der Carnegie Mellon University für das LLM-Pretraining entwickelt wurde. Er bewertet intelligent den Wert jeder Seite, priorisiert nützliche und überspringt irrelevante — und erreicht mit nur 21 % der Daten die gleiche Leistung wie ein vollständiger Crawl, was Datenqualität und Crawling-Geschwindigkeit deutlich steigert.

Crawl4LLM: ein Web-Crawler für das LLM-Pretraining

Was ist Crawl4LLM?

Crawl4LLM ist ein Tool, das speziell für das Pre-Training großer Sprachmodelle (LLM) entwickelt wurde und gemeinsam von der Tsinghua-Universität und der Carnegie Mellon University stammt. Es kann intelligent beurteilen, wie nützlich eine Webseite für das LLM-Pre-Training ist, zuerst wertvolle Webseiten crawlen und weniger nutzlose crawlen. Mit nur 21 % der gesamten Webdaten erreicht es die gleiche Leistung wie zuvor mit dem vollständigen Crawling. Dadurch wird die Datenqualität verbessert und die Crawling-Geschwindigkeit deutlich erhöht.

Was ist Crawl4LLM.webp

Projektinformationen:

  • Herkunft: Open-Source-Kooperation zwischen Tsinghua und Carnegie Mellon University.

  • Ziel: Die Probleme ineffizienten Crawlings und schlechter Datenqualität herkömmlicher Crawler lösen und das LLM-Pre-Training effizienter gestalten.

Hauptfunktionen von Crawl4LLM:

Intelligente Webseitenauswahl

  • Intelligente Bewertung: Kann automatisch erkennen, ob eine Webseite für das LLM-Pre-Training nützlich ist, und zuerst nützliche Seiten crawlen.

  • Hohe Effizienz: Crawlt deutlich weniger Webseiten als herkömmliche Crawler, erreicht aber eine vergleichbare oder sogar bessere Wirkung – die Effizienz kann etwa um das Fünffache gesteigert werden.

Mehrere Crawling-Methoden

  • Intelligenter Modus: Der Hauptmodus, der automatisch wertvolle Webseiten auswählt und crawlt.

  • Zufälliger Crawling-Modus: Kann verwendet werden, wenn die Auswahl der Webseiteninhalte nicht allzu präzise sein muss.

  • Crawling-Modus nach Linkanzahl: Kann eingesetzt werden, wenn große Datenmengen erfasst werden sollen.

Zustandsverwaltung und Wiederherstellung

  • Regelmäßiges Speichern: Kann den Zustand des Crawlers regelmäßig speichern. Wenn er zwischendurch stoppt, kann er an der letzten Stelle weitermachen, ohne dass Daten verloren gehen.

Datenvisualisierungstools

  • Intuitive Anzeige: Verfügt über ein Datenbrowsing-Tool, mit dem man die erfassten Daten einsehen und Fortschritt sowie Ergebnisse jederzeit überwachen kann.

Kompatibilität und Integration

  • Anbindung an das DCLM-Framework: Kann Dokument-IDs extrahieren, Dokumentinhalte abrufen und sich nahtlos mit dem Pre-Training-Framework für Deep-Learning-Modelle (DCLM) verbinden, um direkt für das Modelltraining verwendet zu werden.

Technische Details von Crawl4LLM:

  • Modulare Architektur: Verfügt über Module wie Crawler-Dispatcher, Webseiten-Parser und Datenspeicher.

  • Fehlerbehandlung: Verfügt über starke Fehlerkorrektur- und automatische Wiederholungsfunktionen, um eine stabile Datenerfassung zu gewährleisten.

  • Datenqualitätsmanagement: Kann Daten deduplizieren und bereinigen, sodass die Datenqualität gut und konsistent ist.

Anwendungsbereiche von Crawl4LLM:

  • LLM-Pre-Training: Liefert hochwertige Daten für das Pre-Training großer LLMs.

  • Datensatzkonstruktion: Eigene Datensätze erstellen.

  • Suchmaschinenoptimierung: SEO-Strategien analysieren und verbessern.

  • Netzwerküberwachung und -analyse: Netzwerkzustände in Echtzeit beobachten.

  • Anwendungen in Netzwerküberwachung und -analyse: Durchführung von Sentimentanalysen und anderer Datenanalyse.

Verwendung von Crawl4LLM:

1. Vorbereitende Arbeiten:

  • ClueWeb22-Datensatz beziehen.

  • Eine Python-Virtual-Environment erstellen und die erforderlichen Bibliotheken (numpy, tqdm, fasttext, pyyaml, wandb) installieren.

  • Den DCLM-FastText-Klassifikator herunterladen und im angegebenen Verzeichnis ablegen.

2. Konfigurationsdatei erstellen: Im Verzeichnis configs/ eine YAML-Konfigurationsdatei erstellen und Parameter wie den Datensatzpfad, die Liste der Seed-Dokumente, das Ausgabeverzeichnis, die Anzahl der pro Iteration ausgewählten Dokumente, die Anzahl der Worker-Threads, die Speicherhäufigkeit des Crawling-Zustands, die maximale Anzahl der zu crawlenden Dokumente, die Dokumentauswahlmethode, die Sortierreihenfolge und die Aktivierung des wandb-Loggings angeben.

3. Crawler starten: In der Kommandozeile python crawl.py crawl --config ausführen.

Als hochprofessionelles Crawler-System eignet sich Crawl4LLM sehr gut für das Pre-Training großer Sprachmodelle. Seine fortschrittlichen Algorithmen und technologischen Eigenschaften können sowohl die Effizienz als auch die Qualität der erfassten Daten deutlich verbessern und so den Fortschritt großer Sprachmodelle beschleunigen.

GitHub-Repository: https://github.com/cxcscmu/crawl4llm

Paper-Adresse: https://arxiv.org/pdf/2502.13347