Crawl4LLM: una herramienta eficaz de rastreo web para el preentrenamiento de LLM
Últimos recursos sobre IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 10.7K 00
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.

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:
- 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
- proyecto de clonación
- Descargue el código fuente de GitHub:
git clone https://github.com/cxcscmu/Crawl4LLM.git cd Crawl4LLM
- Descargue el código fuente de GitHub:
- 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.
- Ejecute el siguiente comando para instalar las bibliotecas necesarias:
- 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.
- 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
- 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 ejemplomy_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_file
Lista inicial de documentos de siembra.num_workers
Número de hilos, ajustado al rendimiento de la máquina.max_num_docs
Número máximo de documentos a rastrear.selection_method
Método de selección de datos recomendadodclm_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 adclm_fasttext_score
y 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.
- aprobar (una factura o inspección, etc.)
- 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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...