자연어처리/LLM 모델

LLM공부를 위해 Hugging Face 데이터셋 뒤져본 후기

Suda_777 2023. 10. 11. 20:44
반응형

1. 데이터셋 뭐가 있을까?

huggingface에서 데이터셋을 불러오는 방법이다.

 

1.1. 먼저 huggingface의 datasets을 설치한다.

!pip install datasets

1.2. 다음으로 다운받을 수 있는 데이터셋의 리트스를 확인해 봅시다.

from datasets import list_datasets
datasets_list = list_datasets()
print('데이터의 개수:', len(datasets_list))
print(datasets_list)
69289
  • 데이터셋의 개수를 확인해보면 엄청 방대하다는 것을 알 수 있다. 
    그렇다면 어떠한 데이터들을 사용하는 것이 좋을까..?

1.3. LLM에서 사용한 여러 데이터셋

  • wikitext
    •  설명: 'wikitext' 시리즈는 위키백과에서 추출한 데이터셋으로, 일반적인 언어 모델 학습에 널리 사용됩니다. 'wikitext-103'은 100만 개가 넘는 문서를 포함하고 있다.
    • 사용한 모델: GPT-2 (wikitext-103)
  • bookcorpus
    • 설명: 인터넷에서 수집된 책의 텍스트로 구성되어 있습니다. 이 데이터셋은 다양한 장르의 11,038권의 책으로부터 약 1억 개의 단어를 포함하고 있습니다. 'bookcorpus'는 특히 대화, 문학적 스타일 등 다양한 언어 패턴을 포함하고 있어, 자연어 처리 모델 학습에 유용하다.
    • 사용한 모델: BERT, RoBERTa, GPT-2
  • RedPajama-Data-1T
    • 설명: LLaMA 논문에 설명된 레시피에 따라서 생성한 1.2조개의 토큰으로 구성된 완전 개방형 데이터 셋, 전체 5TB(3TB로 압축하여 배포)
    • 7개의 데이터 조각으로 구성 : 각각 전처리와 필터링하여 LLaMA 논문과 비슷한 갯수로 구성(전처리 방법 및 필터 역시 GitHub에 공개)
      • CommonCrawl (878b) - 웹 크롤링 데이터
      • C4 (175b) - Colossal, Cleaned version of Common Crawl
      • GitHub (59b) - 라이센스와 품질로 필터링된 GitHub의 데이터
      • arXiv (28b) - 과학 논문과 기사들 (boilerplate 제거)
      • Books (26b) - 콘텐츠 유사성에 따라서 중복을 제거한 공개 서적 Corpus
      • Wikipedia (24b) - 위키피디어의 일부 페이지들 (boilerplate 제거)
      • StackExchange (20b) - 스택익스체인지의 일부 페이지들 (boilerplate 제거)

* 그 외에 LLM에 사용한 데이터셋은 없는 듯 하다. ( Llama2: databricks-dolly-15k, PaLM: ??)

결론 그냥 홈페이지 가서 찾아보자 ㅡㅡ

 

1.4. huggingFace 홈페이지에서 찾기

  • huggingface에서는 수많은 데이터셋을 제공하고 있다. 그리고 데이터셋을 쉽게 찾을 수 있도록 분류해 놓았다.

  • 데이터를 아무거나 클릭하고 들어가면 데이터를 클릭할 수 있는 python 코드가 나온다.

2. 데이터셋 다운로드

from datasets import load_dataset

dataset = load_dataset("togethercomputer/RedPajama-Data-1T")
  • 이런식으로 다운로드를 받으면 된다. 용량이 매우 클 수도 있으니 주의하자.

 

3. 기존 LLM은 뭐로 학습한거야?

  • 데이터셋
    • GPT-3
      • 공개하지 않음
    • GPT-4
      • 공개하지 않음
    • PALMA
      • pretraining dataset은 무려 7800억개의 token들로 구성된 corpus
      • 웹페이지, 도서, 위키피디아, 뉴스기사, github코드 (소스코드 데이터만 200GB 정도)
      • 100개 이상의 언어로 구성
      • 3개의 PaLM(8B, 62B, 540B)은 모두 정확히 1 epoch만 학습되었다. 1536대의 서버를 통해 6144장의 TPU를 계속 가동, GPT-3의 경우 1 epoch에 460만 달러 (60억원 정도...)
  • 요약
    • 요즘 출시되고 있는 LLM은 정말로 많은 양의 데이터셋을 사용했다.
    • 개인이 돈들여 만들 수준이 아니다.
    • LLM이 어떻게 구성되어있는지 알고 그것을 어떻게 파인튜닝 할 것인지 고민하는게 맞다.

4. 결론

  • 다음장에는 파인튜닝할 데이터셋은 무엇을 쓰고 어떻게 구성되어야 하는지 알아보기위해, 먼저 어떠한 pretrained 모델이 있는지 보자... (Lama2 부터 보자...)

 

다음 글 : [자연어처리] Llama-2 모델 공부 (1)

반응형