Generation for NLP: Pre-Training Dataset

SeongGyun Hong·2024년 11월 12일

NaverBoostCamp

목록 보기
27/64

1. Pre-Training Dataset의 역할

  • 대규모 데이터로써 모델로 하여금 언어에 대한 이해능력을 습득시킴

  • 고퀄리티의 데이터로 학습해야 좋은 언어 능력을 보임

  • 오픈 소스로 현재 많은 Pre-Train 데이터셋이 공개됨.

    • TogetherComputer, RedPajama
    • EleutherAI, The Pile
    • FalconLLM, RefinedWeb
      • 약 10억개의 웹 페이지
      • score system을 활용하여 URL Filtering 진행
    • 국립국어원, 모두의 말뭉치
    • AIHub
      • 한국어는 트릴리언 단위의 데이터셋을 구성하기가 영어보다는 힘들다...

주요 Open Source Data Processing Tools

  • CommonCrawl
    • 웹 크롤링 및 아카이빙을 지속적으로 진행하여 오픈소스로 데이터를 공개하는 비영리조직
    • HTTP 기반 크롤링 API 제공
  • FastText
    • Word Embedding 및 텍스트 분류 학습용 Python 라이브러리이다.
    • 각 word의 subword information 정보를 활용하여 벡터화
    • 의미적으로 동일한지 파악하는 용도로 사용함
  • Trafilatura
    • 긁어와도 광고 같은 것들은 필요 없으므로 그런 정규화를 위해 사용됨

이외에도

  • DataTrove
  • EleutherAI DPS
    등의 전처리 도구들이 있다.

2. Hugging Face Fine Web

15T를 제공하는 최초의 오픈소스 데이터셋

  • LLaMA 3를 재현해보자 !
  • 최초는 CommonCrawl
  • RefinedWeb의 전처리 프로세싱을 참고
  • Computing Cost를 절반 가까이 줄여줄 정도로 효과적인 데이터셋으로 알려짐
    • FineWeb-Edu
      교육적 내용만 담은 버전
    • LLaMA 70B 모델을 활용하여 Annotation model로 평점을 매개 일정 쓰레스 홀드 이상의 데이터들만 선별해 학습시킴.
    • 압도적으로 적은 데이터셋으로 좋은 성능을 이끌어 냄 ex) phi3
    • MarkDown text는 성능에 악영향이 있기에 해당 marker는 다 제거함.
    • 일반지식 5, 수학-추론 2.5 코드 1.7 다국어 0.8

3. 프로젝트에의 적용점

데이터셋을 마련하는 데 있어서
앞서 구비된 프로세스들을 잘 참고해서 적절한 정제와 필터링으로 high quality의 데이터셋을 만들자.

profile
헤매는 만큼 자기 땅이다.

0개의 댓글