elevne's Study Note
KoBART 전이학습 (Colab) 본문
개인 프로젝트를 진행하며 KoBART 모델을 사용하기로 하였는데, 이를 조금 Fine Tune 시킬 필요성을 느꼈다. 다행히도 KoBART 모델은 Fine Tuning 시키기 수월하게끔 Github에 코드가 잘 정리되어 있었다. (아래 모든 코드는 Colab에서 진행되었다.)
우선 Colab에서 Drive Mount를 해준 이후 Git Clone을 할 위치로 cd 해준다.
!git clone https://github.com/seujung/KoBART-summarization.git
cd KoBART-summarization
!git clone 명령어 뒤 KoBART Github repository 링크를 넣어준다. 위 명령어가 수행되면 cd 한 위치에 Github Repo가 잘 설치되어 있는 것을 확인할 수 있을 것이다.
그럼 이제 Repository에 들어있는 학습 데이터를 압축해제 해주는 과정이 필요하다. cd data 를 해준 이후 압축해제 명령어를 입력해준다.
!tar -zxvf train.tar.gz
!tar -zxvf test.tar.gz
#Linux 명령어 기반이기에 !cat train.tsv 하여 압축해제 결과 확인 가능
압축을 해제하게 되면 Train, Test data 둘 다 tsv 형태를 띄는 것을 확인할 수 있다. 여기 Train data에 Fine Tune에 사용할 데이터를 tsv 형식으로 변환하여 추가해주고 학습을 진행하면 될 것이다.
이제 데이터도 준비되었으니 학습시킬 준비가 되었다. 필요한 라이브러리들을 설치해준다.
!pip uninstall -y torchtext
!pip install -r requirements.txt
!pip install torchmetrics==0.6.0
!pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102
!pip install pytorch_lightning==1.5.2
처음에 !pip install -r requirements.txt 만 하고 학습을 시키려고 하니까 ImportException이 계속 떠서... 계속 시도해보면서 최종적으로는 위처럼 진행하였을 때 학습이 잘 실행되는 것을 확인할 수 있었다.
학습은 아래와 같은 코드로 진행할 수 있다.
!python train.py --gradient_clip_val 1.0 --max_epochs 1 --default_root_dir logs --gpus 1 --batch_size 10 --num_workers 4
13% 진행률에 약 14분이 걸린 것을 확인할 수 있다. 기본 데이터만 사용하였을 때 1 Epoch에 약 100분쯤 생각하면 될 것 같다.
마지막으로, 학습이 완료된 후에는 학습한 Model Binary 추출 작업이 필요하다고 한다. Pytorch-lightning binary에서 Huggingface Binary 형식으로 추출을 해주는 것이다. 아래와 같은 형식으로 get_model_binary.py 파일을 실행시켜준다.
python get_model_binary.py --hparams hparam_path --model_binary model_binary_path
위의 hparam_path는 hparams.yaml 파일을 사용하면되고, model_binary_path는 .ckpt 파일을 사용한다. 위 명령을 실행하면 ./kobart_summary 디렉토리에 model binary가 추출될 것이다.
위 모든 코드는 처음 Git Clone 해온 Github Repository에서 찾을 수 있다!
'Machine Learning > NLP' 카테고리의 다른 글
KoBART 분석해보기 (1) (1) | 2022.11.24 |
---|---|
GPT에 대해서~ (0) | 2022.11.21 |
BERT - KorQuAD (2) (0) | 2022.11.19 |
BERT - KorQuAD (1) (0) | 2022.11.18 |
BART: Bidirectional and Auto-Regressive Transformer (0) | 2022.11.12 |