Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

Crawl4LLM: uma ferramenta eficiente de rastreamento da Web para pré-treinamento de LLM

Introdução geral

O Crawl4LLM é um projeto de código-fonte aberto desenvolvido em conjunto pela Universidade de Tsinghua e pela Universidade Carnegie Mellon, com foco na otimização da eficiência do rastreamento da Web para o pré-treinamento de modelos grandes (LLM). Ele reduz significativamente o rastreamento ineficaz por meio da seleção inteligente de dados de páginas da Web de alta qualidade, alegando ser capaz de reduzir a carga de trabalho da necessidade original de rastrear 100 páginas da Web para 21, mantendo o efeito de pré-treinamento. O projeto está hospedado no GitHub, com código detalhado e documentação de configuração para desenvolvedores e pesquisadores. O núcleo do Crawl4LLM está em seu algoritmo de seleção de dados, que avalia o valor das páginas da Web para o treinamento do modelo e prioriza o conteúdo útil, e já atraiu a atenção de acadêmicos e da comunidade de desenvolvedores.

Crawl4LLM: um rastreador da Web eficiente para pré-treinamento de LLM-1


 

Lista de funções

  • Seleção inteligente de dadosFiltro de conteúdo de alto valor com base na influência das páginas da Web no pré-treinamento de modelos grandes.
  • Vários modos de rastreamentoO modo Crawl4LLM, rastreamento aleatório, etc. são suportados para atender de forma flexível a diferentes necessidades.
  • Mecanismo de rastreamento eficienteUse multi-threading e configurações otimizadas para aumentar significativamente a velocidade de rastreamento.
  • Extração e armazenamento de dadosSalvar os IDs das páginas da Web rastreadas e o conteúdo do texto como arquivos que podem ser usados para o treinamento do modelo.
  • Suporte para conjuntos de dados em grande escalaCompatível com conjuntos de dados como o ClueWeb22, adequado para pesquisas acadêmicas e aplicações industriais.
  • Personalização da configuraçãoParâmetros de rastreamento, como o número de threads e o número máximo de documentos, são ajustados por meio de arquivos YAML.

 

Usando a Ajuda

Processo de instalação

O Crawl4LLM precisa ser executado em um ambiente compatível com Python. Veja a seguir as etapas detalhadas de instalação:

  1. Preparação ambiental
    • Certifique-se de que o Python 3.10 ou posterior esteja instalado em seu sistema.
    • Crie ambientes virtuais para evitar conflitos de dependência:
      python -m venv crawl4llm_env
      source crawl4llm_env/bin/activate # Linux/Mac
      crawl4llm_env\Scripts\activate # Windows
      
  2. projeto de clonagem
    • Baixe o código-fonte do GitHub:
      git clone https://github.com/cxcscmu/Crawl4LLM.git
      cd Crawl4LLM
      
  3. Instalação de dependências
    • Execute o seguinte comando para instalar as bibliotecas necessárias:
      pip install -r requirements.txt
      
    • Observação: O arquivo de dependência lista todos os pacotes Python necessários para que o rastreador seja executado, portanto, certifique-se de que você tenha uma boa rede.
  4. Baixar o Sorter
    • O projeto usa o classificador DCLM fastText para avaliar a qualidade das páginas da Web e requer o download manual do arquivo de modelo para o fasttext_scorers/ Catálogo.
    • Exemplo de caminho:fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin.
    • Disponível em recursos oficiais ou links relacionados.
  5. Preparação do conjunto de dados
    • Se estiver usando conjuntos de dados do ClueWeb22, será necessário solicitar acesso e armazená-los no SSD (o caminho precisa ser especificado na configuração).

Como usar

A operação do Crawl4LLM é feita principalmente por meio da linha de comando, que é dividida em três etapas: configuração, rastreamento e extração de dados. Veja a seguir o fluxo detalhado:

1. configurar a tarefa de rastreamento

  • existir configs/ Crie um arquivo YAML no diretório (por exemplo my_config.yaml), exemplos de conteúdo:
    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"
    ordem: "desc"
    selection_method: "dclm_fasttext_score" order: "desc" wandb: false
    selection_method: "dclm_fasttext_score" order: "desc" wandb: false
    - type: "length" (tipo: "comprimento")
    - tipo: "fasttext_score"
    nome do avaliador: "dclm_fasttext_score"
    model_path: "fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin"
  • Descrição do parâmetro::
    • cw22_root_pathCaminho do conjunto de dados do ClueWeb22.
    • arquivo_docs_sementeLista inicial de documentos semente.
    • num_workersNúmero de roscas, ajustado para o desempenho da máquina.
    • max_num_docsNúmero máximo de documentos a serem rastreados.
    • método_de_seleçãoMétodo de seleção de dados, recomendado dclm_fasttext_score.

2. executar o rastreador

  • Execute o comando crawl:
    python crawl.py crawl --config configs/my_config.yaml
    
  • Quando o rastreamento é concluído, o ID do documento é salvo no arquivo output_dir no arquivo sob o caminho especificado.

3. extração do conteúdo do documento

  • Use o seguinte comando para converter o ID do documento rastreado em texto:
    python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
    
  • A saída é um arquivo de texto que pode ser usado diretamente para o treinamento subsequente do modelo.

4. visualização de documentos individuais

  • Se precisar verificar um documento específico e seus links, você pode executar:
    python access_data.py /path/to/clueweb22
    

Operação da função em destaque

  • Seleção inteligente de páginas da Web
    • O núcleo do Crawl4LLM é seu recurso de filtragem de dados. Ele usa classificadores FastText para avaliar a extensão e a qualidade do conteúdo da Web, priorizando as páginas que são mais úteis para o treinamento do modelo. Os usuários não precisam filtrar manualmente, a otimização é feita automaticamente.
    • Como fazer isso: Defina a configuração YAML no arquivo método_de_seleção por causa de dclm_fasttext_scoree verifique se o caminho do modelo está correto.
  • Aceleração multi-threaded
    • aprovar (um projeto de lei ou inspeção etc.) num_workers para ajustar o número de threads. Por exemplo, uma CPU de 16 núcleos pode ser definida como 16 para utilizar totalmente os recursos de computação.
    • Observação: um grande número de threads pode levar a um estouro de memória; recomenda-se testar de acordo com a configuração da máquina.
  • Suporte para rastreamento em larga escala
    • O projeto foi desenvolvido para conjuntos de dados muito grandes, como o ClueWeb22, e é adequado para cenários de pesquisa que exigem o processamento de bilhões de páginas da Web.
    • Sugestão de ação: Garanta o desempenho de E/S armazenando os dados em um SSD; defina a opção max_num_docs é o número alvo de documentos (por exemplo, 20 milhões).

Dicas e truques

  • Depuração e registro em log: Habilitar wandb: true O processo de rastreamento pode ser registrado para facilitar a análise da eficiência.
  • Otimizar o armazenamentoOs resultados do rastreamento são grandes e é recomendável reservar espaço suficiente em disco (por exemplo, centenas de GB).
  • Funcionalidade estendidaEm combinação com a estrutura DCLM, o texto extraído pode ser usado diretamente para o pré-treinamento de modelos grandes.

Com as etapas acima, os usuários podem começar a usar rapidamente o Crawl4LLM para rastrear dados da Web com eficiência e otimizar o processo de pré-treinamento.

Conteúdo 1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Crawl4LLM: uma ferramenta eficiente de rastreamento da Web para pré-treinamento de LLM

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil