Crawl4LLM: LLM 사전 교육을 위한 효율적인 웹 크롤링 도구

최신 AI 리소스게시됨 6 개월 전 AI 공유 서클
1.2K 00

일반 소개

Crawl4LLM은 칭화대학교와 카네기멜론대학교가 공동으로 개발한 오픈 소스 프로젝트로, 대규모 모델(LLM)의 사전 학습을 위한 웹 크롤링의 효율성을 최적화하는 데 중점을 두고 있습니다. 고품질 웹 페이지 데이터를 지능적으로 선별하여 비효율적인 크롤링을 크게 줄이며, 원래 100개의 웹 페이지를 크롤링해야 하는 작업량을 21개로 줄이면서도 사전 학습 효과는 유지할 수 있다고 주장합니다. 이 프로젝트는 개발자와 연구자를 위한 자세한 코드 및 구성 문서와 함께 깃허브에서 호스팅되고 있으며, Crawl4LLM의 핵심은 모델 학습을 위해 웹 페이지의 가치를 평가하고 유용한 콘텐츠의 우선순위를 정하는 데이터 선택 알고리즘에 있으며 이미 학계와 개발자 커뮤니티에서 주목받고 있습니다.

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

 

기능 목록

  • 지능형 데이터 선택대규모 모델의 사전 학습에 대한 웹 페이지의 영향력을 기반으로 가치가 높은 콘텐츠를 필터링합니다.
  • 여러 크롤링 모드다양한 요구에 유연하게 대응할 수 있도록 크롤링4LLM 모드, 랜덤 크롤링 등이 지원됩니다.
  • 효율적인 크롤링 엔진멀티 스레딩과 최적화된 구성을 사용하여 크롤링 속도를 크게 높입니다.
  • 데이터 추출 및 저장: 크롤링된 웹 페이지 ID와 텍스트 콘텐츠를 모델 학습에 사용할 수 있는 파일로 저장합니다.
  • 대규모 데이터 세트 지원학술 연구 및 산업 응용 분야에 적합한 ClueWeb22와 같은 데이터 세트와 호환됩니다.
  • 구성 사용자 지정스레드 수 및 최대 문서 수와 같은 크롤링 매개변수는 YAML 파일을 통해 조정됩니다.

 

도움말 사용

설치 프로세스

Crawl4LLM은 Python을 지원하는 환경에서 실행해야 하며, 자세한 설치 단계는 다음과 같습니다:

  1. 환경 준비
    • 시스템에 Python 3.10 이상이 설치되어 있는지 확인합니다.
    • 종속성 충돌을 피하기 위해 가상 환경을 만듭니다:
      python -m venv crawl4llm_env  
      source crawl4llm_env/bin/activate  # Linux/Mac  
      crawl4llm_env\Scripts\activate  # Windows
      
  2. 복제 프로젝트
    • GitHub에서 소스 코드를 다운로드하세요:
      git clone https://github.com/cxcscmu/Crawl4LLM.git  
      cd Crawl4LLM
      
  3. 종속성 설치
    • 다음 명령을 실행하여 필요한 라이브러리를 설치합니다:
      pip install -r requirements.txt
      
    • 참고: 종속성 파일에는 크롤러를 실행하는 데 필요한 모든 Python 패키지가 나열되므로 네트워크가 양호한지 확인하세요.
  4. 분류기 다운로드
    • 이 프로젝트는 DCLM fastText 분류기를 사용하여 웹 페이지의 품질을 평가하며, 모델 파일을 수동으로 다운로드해야 합니다. fasttext_scorers/ 카탈로그.
    • 경로 예시:fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin.
    • 공식 리소스 또는 관련 링크에서 확인할 수 있습니다.
  5. 데이터 집합 준비하기
    • ClueWeb22 데이터 집합을 사용하는 경우 액세스를 요청하여 SSD에 저장해야 합니다(경로를 구성에 지정해야 함).

사용 방법

Crawl4LLM의 작동은 주로 명령줄을 통해 이루어지며, 구성, 크롤링, 데이터 추출의 세 단계로 나뉩니다. 자세한 흐름은 다음과 같습니다:

1. 크롤링 작업 구성

  • 존재 configs/ 디렉터리에 YAML 파일을 만듭니다(예 my_config.yaml), 콘텐츠 예시:
    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"
  • 매개변수 설명::
    • cw22_root_path: ClueWeb22 데이터 집합 경로.
    • seed_docs_file: 초기 시드 문서 목록.
    • num_workers스레드 수, 머신 성능에 맞게 조정됩니다.
    • max_num_docs크롤링할 최대 문서 수입니다.
    • selection_method데이터 선택 방법, 권장 dclm_fasttext_score.

2. 크롤러 실행

  • 크롤링 명령을 실행합니다:
    python crawl.py crawl --config configs/my_config.yaml
    
  • 크롤링이 완료되면 문서 ID가 output_dir 를 지정된 경로 아래의 파일에 추가합니다.

3. 문서 콘텐츠 추출

  • 다음 명령을 사용하여 크롤링된 문서 ID를 텍스트로 변환합니다:
    python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
    
  • 출력은 후속 모델 학습에 바로 사용할 수 있는 텍스트 파일입니다.

4. 개별 문서 보기

  • 특정 문서와 해당 링크를 확인해야 하는 경우 실행할 수 있습니다:
    python access_data.py /path/to/clueweb22 <document_id>
    

주요 기능 작동

  • 지능형 웹 페이지 선택
    • Crawl4LLM의 핵심은 데이터 필터링 기능입니다. 빠른 텍스트 분류기를 사용하여 웹 콘텐츠의 길이와 품질을 평가하여 모델 학습에 더 유용한 페이지의 우선순위를 지정합니다. 사용자가 수동으로 필터링할 필요가 없으며 최적화가 자동으로 수행됩니다.
    • 사용 방법: YAML 구성을 설정하려면 selection_method 때문에 dclm_fasttext_score를 클릭하고 모델 경로가 올바른지 확인합니다.
  • 멀티 스레드 가속
    • 통과(청구서 또는 검사 등) num_workers 매개변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 16코어 CPU를 16으로 설정하여 컴퓨팅 리소스를 최대한 활용할 수 있습니다.
    • 참고: 스레드 수가 많으면 메모리 오버플로가 발생할 수 있으므로 머신 구성에 따라 테스트하는 것이 좋습니다.
  • 대규모 크롤링 지원
    • 이 프로젝트는 ClueWeb22와 같은 초대형 데이터 세트를 위해 설계되었으며, 수십억 개의 웹 페이지를 처리해야 하는 연구 시나리오에 적합합니다.
    • 조치 제안: SSD에 데이터를 저장하여 I/O 성능을 보장합니다. max_num_docs 는 목표 문서 수입니다(예: 2,000만 개).

팁 및 유용한 정보

  • 디버깅 및 로깅: 사용 wandb: true 크롤링 프로세스를 기록하여 효율성을 쉽게 분석할 수 있습니다.
  • 스토리지 최적화: 크롤링 결과가 크므로 충분한 디스크 공간(예: 수백 GB)을 확보하는 것이 좋습니다.
  • 확장된 기능DCLM 프레임워크와 결합하여 추출된 텍스트를 대규모 모델 사전 학습에 바로 사용할 수 있습니다.

위의 단계를 통해 사용자는 효율적인 웹 데이터 크롤링과 사전 학습 프로세스 최적화를 위해 Crawl4LLM을 빠르게 시작할 수 있습니다.

© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...