인공지능 개발자 수다(유튜브 바로가기) 자세히보기

자연어처리

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

Suya_03 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)

    반응형