Crawl4LLM: una herramienta eficaz de rastreo web para el preentrenamiento de LLM

Introducción general

Crawl4LLM es un proyecto de código abierto desarrollado conjuntamente por la Universidad de Tsinghua y la Universidad Carnegie Mellon, centrado en optimizar la eficiencia del rastreo web para el preentrenamiento de grandes modelos (LLM). Reduce significativamente el rastreo ineficaz mediante la selección inteligente de datos de páginas web de alta calidad, y afirma ser capaz de reducir la carga de trabajo de rastrear originalmente 100 páginas web a 21, manteniendo el efecto de preentrenamiento. El proyecto está alojado en GitHub, con código detallado y documentación de configuración para desarrolladores e investigadores. El núcleo de Crawl4LLM reside en su algoritmo de selección de datos, que evalúa el valor de las páginas web para el entrenamiento del modelo y da prioridad al contenido útil, y ya ha atraído la atención de académicos y de la comunidad de desarrolladores.

Crawl4LLM:为LLM预训练提供的高效网页爬取工具

 

Lista de funciones

  • Selección inteligente de datosFiltro de contenidos de alto valor basado en la influencia de las páginas web en el preentrenamiento de grandes modelos.
  • Múltiples modos de rastreoSe admiten el modo Crawl4LLM, el rastreo aleatorio, etc. para responder con flexibilidad a diferentes necesidades.
  • Motor de rastreo eficazUtiliza multi-threading y configuraciones optimizadas para aumentar significativamente la velocidad de rastreo.
  • Extracción y almacenamiento de datosGuarda los ID de las páginas web rastreadas y el contenido del texto como archivos que pueden utilizarse para el entrenamiento del modelo.
  • Soporte para grandes conjuntos de datos: Compatible con conjuntos de datos como ClueWeb22, adecuado para la investigación académica y las aplicaciones industriales.
  • Personalización de la configuración: Los parámetros de rastreo, como el número de hilos y el número máximo de documentos, se ajustan mediante archivos YAML.

 

Utilizar la ayuda

Proceso de instalación

Crawl4LLM necesita ejecutarse en un entorno que soporte Python, aquí están los pasos detallados de instalación:

  1. Preparación medioambiental
    • Asegúrese de que Python 3.10 o posterior está instalado en su sistema.
    • Cree entornos virtuales para evitar conflictos de dependencias:
      python -m venv crawl4llm_env  
      source crawl4llm_env/bin/activate  # Linux/Mac  
      crawl4llm_env\Scripts\activate  # Windows
      
  2. proyecto de clonación
    • Descargue el código fuente de GitHub:
      git clone https://github.com/cxcscmu/Crawl4LLM.git  
      cd Crawl4LLM
      
  3. Instalación de dependencias
    • Ejecute el siguiente comando para instalar las bibliotecas necesarias:
      pip install -r requirements.txt
      
    • Nota: El archivo de dependencias enumera todos los paquetes de Python necesarios para que el rastreador funcione, así que asegúrate de que tienes una buena red.
  4. Descargar Sorter
    • El proyecto utiliza el clasificador DCLM fastText para evaluar la calidad de las páginas web, y requiere descargar manualmente el archivo del modelo al fasttext_scorers/ Catálogo.
    • Ejemplo de ruta:fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin.
    • Disponible en recursos oficiales o enlaces relacionados.
  5. Preparación del conjunto de datos
    • Si utiliza conjuntos de datos ClueWeb22, deberá solicitar acceso a ellos y almacenarlos en el SSD (es necesario especificar la ruta en la configuración).

Cómo utilizarlo

El funcionamiento de Crawl4LLM se realiza principalmente a través de la línea de comandos, que se divide en tres pasos: configuración, rastreo y extracción de datos. A continuación se muestra el flujo detallado:

1. Configurar la tarea de rastreo

  • existe configs/ Cree un archivo YAML en el directorio (por ejemplo my_config.yaml), ejemplo de contenido:
    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"
  • Descripción de los parámetros::
    • cw22_root_path: Ruta del conjunto de datos ClueWeb22.
    • seed_docs_fileLista inicial de documentos de siembra.
    • num_workersNúmero de hilos, ajustado al rendimiento de la máquina.
    • max_num_docsNúmero máximo de documentos a rastrear.
    • selection_methodMétodo de selección de datos recomendado dclm_fasttext_score.

2. Ejecutar el rastreador

  • Ejecuta el comando de rastreo:
    python crawl.py crawl --config configs/my_config.yaml
    
  • Una vez finalizado el rastreo, el ID del documento se guarda en la carpeta output_dir en el archivo de la ruta especificada.

3. Extracción del contenido del documento

  • Utilice el siguiente comando para convertir el ID del documento rastreado en texto:
    python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
    
  • El resultado es un archivo de texto que puede utilizarse directamente para el posterior entrenamiento del modelo.

4. Visualización de documentos individuales

  • Si necesitas comprobar un documento concreto y sus enlaces, puedes ejecutarlo:
    python access_data.py /path/to/clueweb22 <document_id>
    

Función destacada Operación

  • Selección inteligente de páginas web
    • El núcleo de Crawl4LLM es su capacidad de filtrado de datos. Utiliza clasificadores fastText para evaluar la longitud y la calidad del contenido web, dando prioridad a las páginas más útiles para el entrenamiento del modelo. Los usuarios no necesitan filtrar manualmente, la optimización se realiza automáticamente.
    • Cómo hacerlo: Establezca la configuración YAML en el archivo selection_method debido a dclm_fasttext_scorey asegúrese de que la ruta del modelo es correcta.
  • Aceleración multihilo
    • aprobar (una factura o inspección, etc.) num_workers para ajustar el número de hilos. Por ejemplo, una CPU de 16 núcleos puede ajustarse a 16 para aprovechar al máximo los recursos informáticos.
    • Nota: Un número elevado de hilos puede provocar el desbordamiento de la memoria, se recomienda realizar la prueba según la configuración de la máquina.
  • Soporte para rastreo a gran escala
    • El proyecto está diseñado para conjuntos de datos muy grandes, como ClueWeb22, y es adecuado para escenarios de investigación que requieran procesar miles de millones de páginas web.
    • Sugerencia de acción: Garantice el rendimiento de E/S almacenando los datos en una unidad SSD; configure la opción max_num_docs es el número objetivo de documentos (por ejemplo, 20 millones).

Trucos y consejos

  • Depuración y registro: Activar wandb: true El proceso de rastreo puede grabarse para facilitar el análisis de la eficacia.
  • Optimizar el almacenamiento: Los resultados del rastreo son grandes y se recomienda reservar suficiente espacio en disco (por ejemplo, cientos de GB).
  • Funciones ampliadasEn combinación con el marco DCLM, el texto extraído puede utilizarse directamente para el preentrenamiento de grandes modelos.

Con los pasos anteriores, los usuarios pueden empezar a utilizar rápidamente Crawl4LLM para rastrear datos web de forma eficaz y optimizar el proceso de preentrenamiento.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...