Skip to content

Transformer 이후 나온 Pretrained Language Model을 간단하게 구현하였음.

License

Notifications You must be signed in to change notification settings

paul-hyun/transformer-evolution

Repository files navigation

transformer-evolution

Transformer 이후 나온 Pretrained Language Model을 이해하기 위해서 간단하게 구현 하였습니다.

환경

  • Python(=3.6)
$ pip install torch
$ pip install pandas
$ pip install tqdm
$ pip install wget
$ pip install sentencepiece
$ pip install wandb

train data 준비

$ python common_data.py --mode download
  • data 폴더 아래 'ratings_test.txt', 'ratings_train.txt' 두개의 파일을 다운로드 합니다.

pretrain data 준비

$ git clone https://github.com/paul-hyun/web-crawler.git
$ cd web-crawler
$ python kowiki.py
  • 다운로드 된 kowiki_yyyymmdd.csv 파일을 /data/kowiki.csv로 복사해 주세요.

vocab 생성

  • kowiki 데이터를 sentencepiece를 이용해서 생성 합니다.
  • vocab size는 8,000개 입니다.
$ python vocab.py
  • 'kowiki.model', 'kowiki.vocab' vocab 관련한 두개의 파일을 생성 합니다.

data 생성

  • pretrain 및 train data를 모델에서 사용하기 좋은 형태로 미리 만들어 놓습니다.
  • 세부 처리는 각 모델에서 필요에 따라 처리 합니다.
$ python common_data.py --mode prepare
  • data 폴더 아래 'kowiki.json' 파일이 생성 됩니다.

기타

  • 사용하는 GPU 자원의 한계로 config 설정은 hidden 및 관련 parameter 1/2로 줄여서 테스트 했습니다. (config_half.json)
  • GPU 자원이 충분한 경우 config.json을 사용하면 됩니다.

모델

결과

ITEM Pretrain epoch loss accuracy
transformer-pre:0 0 19 0.3054 0.8312
gpt-pre:60-lm:0 60 19 0.3015 0.8442
bert-pre:40 40 19 0.3507 0.8175

loss

accuracy

자세한 내용은 아래를 참고 하세요.

참고

About

Transformer 이후 나온 Pretrained Language Model을 간단하게 구현하였음.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published