Crawl4LLM : un outil efficace d'exploration du Web pour le pré-entraînement LLM
Introduction générale
Crawl4LLM est un projet open source développé conjointement par l'université de Tsinghua et l'université Carnegie Mellon, qui se concentre sur l'optimisation de l'efficacité de l'exploration du web pour le pré-entraînement des grands modèles (LLM). Il réduit considérablement l'inefficacité du crawling en sélectionnant intelligemment des données de pages web de haute qualité, et prétend pouvoir réduire la charge de travail de 100 pages web à 21, tout en maintenant l'effet de pré-entraînement. Le cœur de Crawl4LLM réside dans son algorithme de sélection des données, qui évalue la valeur des pages web pour l'entraînement du modèle et donne la priorité au contenu utile, et a déjà attiré l'attention des universitaires et de la communauté des développeurs.

Liste des fonctions
- Sélection intelligente des donnéesFiltrer le contenu de grande valeur en fonction de l'influence des pages web sur le pré-entraînement des grands modèles.
- Modes d'exploration multiplesLe mode Crawl4LLM, l'exploration aléatoire, etc. sont pris en charge pour répondre de manière flexible à différents besoins.
- Moteur de recherche efficaceLes moteurs de recherche sont des outils qui utilisent le multithreading et des configurations optimisées pour augmenter de manière significative la vitesse d'exploration.
- Extraction et stockage des donnéesEnregistrer les identifiants des pages web explorées et le contenu du texte dans des fichiers qui peuvent être utilisés pour l'apprentissage du modèle.
- Prise en charge des ensembles de données à grande échelleCompatible avec des ensembles de données tels que ClueWeb22, il convient à la recherche universitaire et aux applications industrielles.
- Configuration PersonnalisationLes paramètres d'exploration, tels que le nombre de threads et le nombre maximum de documents, sont ajustés via des fichiers YAML.
Utiliser l'aide
Processus d'installation
Crawl4LLM doit fonctionner dans un environnement qui supporte Python, voici les étapes détaillées de l'installation :
- Préparation de l'environnement
- Assurez-vous que Python 3.10 ou une version ultérieure est installé sur votre système.
- Créer des environnements virtuels pour éviter les conflits de dépendance :
python -m venv crawl4llm_env source crawl4llm_env/bin/activate # Linux/Mac crawl4llm_env\Scripts\activate # Windows
- projet de clonage
- Téléchargez le code source sur GitHub :
git clone https://github.com/cxcscmu/Crawl4LLM.git cd Crawl4LLM
- Téléchargez le code source sur GitHub :
- Installation des dépendances
- Exécutez la commande suivante pour installer les bibliothèques requises :
pip install -r requirements.txt
- Note : Le fichier de dépendances liste tous les paquets Python nécessaires au fonctionnement du crawler, assurez-vous donc d'avoir un bon réseau.
- Exécutez la commande suivante pour installer les bibliothèques requises :
- Télécharger Sorter
- Le projet utilise le classificateur DCLM fastText pour évaluer la qualité des pages web, et nécessite de télécharger manuellement le fichier du modèle sur le site web du
fasttext_scorers/
Catalogue. - Exemple de chemin :
fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin
. - Disponible à partir de ressources officielles ou de liens connexes.
- Le projet utilise le classificateur DCLM fastText pour évaluer la qualité des pages web, et nécessite de télécharger manuellement le fichier du modèle sur le site web du
- Préparation du jeu de données
- Si vous utilisez des jeux de données ClueWeb22, vous devez demander l'accès et les stocker sur le SSD (le chemin d'accès doit être spécifié dans la configuration).
Comment l'utiliser
Le fonctionnement de Crawl4LLM s'effectue principalement via la ligne de commande et se divise en trois étapes : la configuration, le crawling et l'extraction des données. Voici le déroulement détaillé de l'opération :
1) Configurer la tâche d'exploration
- existent
configs/
Créer un fichier YAML dans le répertoire (par ex.my_config.yaml
), exemple de contenu :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_workers: 16 max_num_docs: 20000000 selection_method: "dclm_fasttext_score" order: "desc" wandb: false rating_methods: - type: "length" - type: "fasttext_score" rater_name: "dclm_fasttext_score" model_path: "fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin"
- Description des paramètres: :
cw22_root_path
: chemin d'accès au jeu de données ClueWeb22.seed_docs_file
Liste de documents de base : liste de documents de base initiaux.num_workers
Nombre de fils : Nombre de fils, adapté à la performance de la machine.max_num_docs
Nombre maximum de documents à explorer.selection_method
Méthode de sélection des données, recommandéedclm_fasttext_score
.
2) Exécuter le crawler
- Exécutez la commande crawl :
python crawl.py crawl --config configs/my_config.yaml
- Une fois l'extraction terminée, l'identifiant du document est sauvegardé dans le fichier
output_dir
dans le fichier sous le chemin spécifié.
3. extraire le contenu du document
- Utilisez la commande suivante pour convertir l'ID du document exploré en texte :
python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
- Le résultat est un fichier texte qui peut être utilisé directement pour l'apprentissage ultérieur du modèle.
4) Visualisation de documents individuels
- Si vous devez vérifier un document spécifique et ses liens, vous pouvez le faire :
python access_data.py /path/to/clueweb22 <document_id>
Fonction en vedette Fonctionnement
- Sélection intelligente des pages web
- Le cœur de Crawl4LLM est sa capacité de filtrage des données. Il utilise des classificateurs FastText pour évaluer la longueur et la qualité du contenu web, en donnant la priorité aux pages les plus utiles pour l'entraînement du modèle. Les utilisateurs n'ont pas besoin de filtrer manuellement, l'optimisation se fait automatiquement.
- Comment faire : Définissez la configuration YAML dans le fichier
selection_method
en raison dedclm_fasttext_score
et vérifiez que le chemin d'accès au modèle est correct.
- Accélération multithread
- faire passer (un projet de loi, une inspection, etc.)
num_workers
pour ajuster le nombre de threads. Par exemple, un processeur à 16 cœurs peut être réglé sur 16 afin d'utiliser pleinement les ressources informatiques. - Note : Un nombre élevé de threads peut entraîner un débordement de la mémoire, il est recommandé de faire des tests en fonction de la configuration de la machine.
- faire passer (un projet de loi, une inspection, etc.)
- Prise en charge de l'exploration à grande échelle
- Le projet est conçu pour les très grands ensembles de données tels que ClueWeb22, et convient aux scénarios de recherche qui nécessitent le traitement de milliards de pages web.
- Suggestion d'action : Assurez les performances des E/S en stockant les données sur un disque dur SSD ; définissez la valeur
max_num_docs
est le nombre cible de documents (par exemple, 20 millions).
Conseils et astuces
- Débogage et journalisation: Activer
wandb: true
Le processus d'exploration peut être enregistré pour faciliter l'analyse de l'efficacité. - Optimiser le stockageLes résultats du crawl sont volumineux et il est recommandé de réserver suffisamment d'espace disque (par exemple des centaines de Go).
- Fonctionnalité étendueEn combinaison avec le cadre DCLM, le texte extrait peut être utilisé directement pour le pré-entraînement d'un grand modèle.
Avec les étapes ci-dessus, les utilisateurs peuvent rapidement commencer à utiliser Crawl4LLM pour une exploration efficace des données Web et l'optimisation du processus de pré-entraînement.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...